Beispiel #1
0
def calc_magic_formula_ranks():

    attributes = {
        "magic_formula_trailing": "asc",
        "magic_formula_future": "asc",
    }

    LOGGER.info('Calculating Ranks for %s' % attributes.keys())

    for f in attributes.keys():

        rankfield = "rank_" + f
        LOGGER.info('Clearing out old data from %s' % rankfield)
        zeroize = d.Company.raw('''DELETE from financialdata 
            WHERE %s''' % rankfield)

        if attributes[f] == "asc":
            LOGGER.info('Calculating %s %s' % (f, attributes[f]))

            query = d.FinancialData.select(
                d.FinancialData.symbol,
                getattr(d.FinancialData,
                        f)).where(getattr(d.FinancialData,
                                          f).is_null(False)).order_by(
                                              getattr(d.FinancialData, f))

        elif attributes[f] == "desc":
            LOGGER.info('Calculating %s %s' % (f, attributes[f]))

            query = d.FinancialData.select(
                d.FinancialData.symbol,
                getattr(d.FinancialData,
                        f)).where(getattr(d.FinancialData,
                                          f).is_null(False)).order_by(
                                              getattr(d.FinancialData,
                                                      f).desc())

        financial_data = []

        for rank, row in enumerate(query):
            company = row.symbol
            field = "rank_" + f
            rank = rank + 1
            financial_data.append({
                "company": company,
                "field": field,
                "rank": rank
            })

        for key in financial_data:
            company = key["company"]
            field = key["field"]
            rank = key["rank"]
            date = get_time()
            data.set_rank(company, date, field, rank)
def calc_magic_formula_ranks():
    
    attributes = {
        "magic_formula_trailing" : "asc",
        "magic_formula_future" : "asc",
    }

    LOGGER.info('Calculating Ranks for %s' % attributes.keys())
    
    for f in attributes.keys():
        
        rankfield = "rank_" + f
        LOGGER.info('Clearing out old data from %s' % rankfield)
        zeroize = d.Company.raw(
            '''DELETE from financialdata 
            WHERE %s''' % rankfield)
                    
        if attributes[f] == "asc":
            LOGGER.info('Calculating %s %s' % (f, attributes[f]))
            
            query = d.FinancialData.select(
                d.FinancialData.symbol,
                getattr(d.FinancialData, f)).where(
                getattr(d.FinancialData, f).is_null(False)).order_by(
                getattr(d.FinancialData, f))
        
        elif attributes[f] == "desc":
            LOGGER.info('Calculating %s %s' % (f, attributes[f]))
            
            query = d.FinancialData.select(
                d.FinancialData.symbol,
                getattr(d.FinancialData, f)).where(
                getattr(d.FinancialData, f).is_null(False)).order_by(
                getattr(d.FinancialData, f).desc())
        
        financial_data = []
	
	for rank, row in enumerate(query):
            company = row.symbol
            field = "rank_" + f
            rank = rank + 1
            financial_data.append({"company" : company, "field" : field, "rank" : rank})

        for key in financial_data:
            company = key["company"]
            field = key["field"]
            rank = key["rank"]
            date = get_time()
            data.set_rank(company, date, field, rank)
Beispiel #3
0
def calc_ranks():

    attributes = {
        #        "ask" : "desc",
        #        "book_value" : "desc",
        #        "market_cap" : "desc",
        "ebitda": "desc",
        "pe_ratio_ttm": "asc",
        "pe_ratio_ftm": "asc",
        "eps_estimate_qtr": "desc",
        "peg_ratio": "asc",
        "garp_ratio": "asc",
        "return_on_assets": "desc",
        "return_on_equity": "desc",
        "change_year_low_per": "desc",
        "change_year_high_per": "desc",
        #        "net_income" : "desc",
        #        "total_assets" : "desc",
        #        "OneyrTargetPrice" : "desc",
        "DividendYield": "desc",
        #        "EPSEstimateCurrentYear" : "desc",
        #        "EPSEstimateNextYear" : "desc",
        #        "EPSEstimateNextQuarter" : "desc"
    }

    LOGGER.info('Calculating Ranks for %s' % attributes.keys())

    for f in attributes.keys():

        rankfield = "rank_" + f
        LOGGER.info('Clearing out old data from %s' % rankfield)
        zeroize = d.Company.raw('''DELETE from financialdata 
            WHERE %s''' % rankfield)

        if attributes[f] == "asc":
            LOGGER.info('Calculating %s %s' % (f, attributes[f]))

            query = d.FinancialData.select(
                d.FinancialData.symbol,
                getattr(d.FinancialData,
                        f)).where(getattr(d.FinancialData,
                                          f).is_null(False)).order_by(
                                              getattr(d.FinancialData, f))

        elif attributes[f] == "desc":
            LOGGER.info('Calculating %s %s' % (f, attributes[f]))

            query = d.FinancialData.select(
                d.FinancialData.symbol,
                getattr(d.FinancialData,
                        f)).where(getattr(d.FinancialData,
                                          f).is_null(False)).order_by(
                                              getattr(d.FinancialData,
                                                      f).desc())

        financial_data = []

        for rank, row in enumerate(query):
            company = row.symbol
            field = "rank_" + f
            rank = rank + 1
            financial_data.append({
                "company": company,
                "field": field,
                "rank": rank
            })

        for key in financial_data:
            company = key["company"]
            field = key["field"]
            rank = key["rank"]
            date = get_time()
            data.set_rank(company, date, field, rank)
def calc_ranks():
    
    attributes = {
#        "ask" : "desc",
#        "book_value" : "desc",
#        "market_cap" : "desc",
        "ebitda" : "desc",
        "pe_ratio_ttm" : "asc",
        "pe_ratio_ftm" : "asc",
        "eps_estimate_qtr" : "desc",
        "peg_ratio" : "asc",
        "garp_ratio" : "asc",
        "return_on_assets" : "desc",
        "return_on_equity" : "desc",
        "change_year_low_per" : "desc",
        "change_year_high_per" : "desc",
#        "net_income" : "desc",
#        "total_assets" : "desc",
#        "OneyrTargetPrice" : "desc",
        "DividendYield" : "desc",
#        "EPSEstimateCurrentYear" : "desc",
#        "EPSEstimateNextYear" : "desc",
#        "EPSEstimateNextQuarter" : "desc"
    }

    LOGGER.info('Calculating Ranks for %s' % attributes.keys())
    
    for f in attributes.keys():
        
        rankfield = "rank_" + f
        LOGGER.info('Clearing out old data from %s' % rankfield)
        zeroize = d.Company.raw(
            '''DELETE from financialdata 
            WHERE %s''' % rankfield)
                    
        if attributes[f] == "asc":
            LOGGER.info('Calculating %s %s' % (f, attributes[f]))
            
            query = d.FinancialData.select(
                d.FinancialData.symbol,
                getattr(d.FinancialData, f)).where(
                getattr(d.FinancialData, f).is_null(False)).order_by(
                getattr(d.FinancialData, f))
        
        elif attributes[f] == "desc":
            LOGGER.info('Calculating %s %s' % (f, attributes[f]))
            
            query = d.FinancialData.select(
                d.FinancialData.symbol,
                getattr(d.FinancialData, f)).where(
                getattr(d.FinancialData, f).is_null(False)).order_by(
                getattr(d.FinancialData, f).desc())
        
        financial_data = []
	
	for rank, row in enumerate(query):
            company = row.symbol
            field = "rank_" + f
            rank = rank + 1
            financial_data.append({"company" : company, "field" : field, "rank" : rank})

        for key in financial_data:
            company = key["company"]
            field = key["field"]
            rank = key["rank"]
            date = get_time()
            data.set_rank(company, date, field, rank)