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)
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)