def CFNOTTMIncomeTTMYOYDaily(beg_date, end_date): """ 因子说明: 经营活动现金净流量(TTM)/营业收入(TTM) 同比增速 披露日期 为 最近财报 """ # param ################################################################################# factor_name = 'CFNOTTMIncomeTTMYOYDaily' ipo_num = 90 # read data ################################################################################# operate_cash = Stock().get_factor_h5("NetOperateCashFlow", None, "primary_mfc") income = Stock().get_factor_h5("OperatingIncome", None, "primary_mfc") operate_cash_ttm = StockFactorOperate( ).change_single_quarter_to_ttm_quarter(operate_cash) income_ttm = StockFactorOperate().change_single_quarter_to_ttm_quarter( income) [operate_cash_ttm, income_ttm ] = Stock().make_same_index_columns([operate_cash_ttm, income_ttm]) ratio = operate_cash_ttm.div(income_ttm).T ratio_4 = ratio.shift(4) ratio_yoy = ratio / ratio_4 - 1.0 ratio_yoy = ratio_yoy.T report_data = Stock().get_factor_h5("OperatingIncome" + "Daily", "ReportDate", 'primary_mfc') ratio_yoy = StockFactorOperate( ).change_quarter_to_daily_with_disclosure_date(ratio_yoy, report_data, beg_date, end_date) # data precessing ################################################################################# pass # calculate data ################################################################################# res = ratio_yoy.T.dropna(how='all').T # save data ############################################################################# Stock().write_factor_h5(res, factor_name, "alpha_dfc") return res
def GrossProfitTTMMarketValueDaily(beg_date, end_date): """ 因子说明: 毛利润TTM/总市值 披露日期 为 最近财报 """ # param ################################################################################# factor_name = 'GrossProfitTTMMarketValueDaily' ipo_num = 90 # read data ################################################################################# income = Stock().get_factor_h5("OperatingIncome", None, "primary_mfc") cost = Stock().get_factor_h5("OperatingCost", None, "primary_mfc") total_mv = Stock().get_factor_h5("TotalMarketValue", None, "alpha_dfc") [income, cost] = Stock().make_same_index_columns([income, cost]) gross_profit = income - cost report_data = Stock().get_factor_h5("OperatingIncome" + "Daily", "ReportDate", 'primary_mfc') gross_profit = StockFactorOperate( ).change_quarter_to_daily_with_disclosure_date(gross_profit, report_data, beg_date, end_date) [total_mv, gross_profit] = Stock().make_same_index_columns([total_mv, gross_profit]) total_mv /= 100000000 ratio = gross_profit.div(total_mv) # data precessing ################################################################################# pass # calculate data daily ################################################################################# res = ratio.T.dropna(how='all').T # save data ############################################################################# Stock().write_factor_h5(res, factor_name, "alpha_dfc") return res
def ROATTMDaily(beg_date, end_date): """ 因子说明: ROA 披露日期 为 最近财报 """ # param ################################################################################# factor_name = 'ROATTMDaily' ipo_num = 90 # read data ################################################################################# net_profit = Stock().get_factor_h5("NetProfit", None, "primary_mfc") asset = Stock().get_factor_h5("TotalAsset", None, "primary_mfc") net_profit_ttm = StockFactorOperate().change_single_quarter_to_ttm_quarter( net_profit) asset = StockFactorOperate().change_single_quarter_to_ttm_quarter( asset) / 4.0 [net_profit_ttm, asset] = Stock().make_same_index_columns([net_profit_ttm, asset]) roa = net_profit_ttm.div(asset) report_data = Stock().get_factor_h5("NetProfit" + "Daily", "ReportDate", 'primary_mfc') roa = StockFactorOperate().change_quarter_to_daily_with_disclosure_date( roa, report_data, beg_date, end_date) # data precessing ################################################################################# pass # calculate data daily ################################################################################# res = roa.T.dropna(how='all').T # save data ############################################################################# Stock().write_factor_h5(res, factor_name, "alpha_dfc") return res
def ROETTM(beg_date, end_date): """ 因子说明: ROE 披露日期 为 统一财报季 """ # param ################################################################################# factor_name = 'ROETTM' ipo_num = 90 # read data ################################################################################# net_profit = Stock().get_factor_h5("NetProfit", None, "primary_mfc") holder = Stock().get_factor_h5("TotalShareHoldeRequity", None, "primary_mfc") net_profit_ttm = StockFactorOperate().change_single_quarter_to_ttm_quarter(net_profit) holder_ttm = StockFactorOperate().change_single_quarter_to_ttm_quarter(holder) / 4.0 [net_profit_ttm, holder_ttm] = Stock().make_same_index_columns([net_profit_ttm, holder_ttm]) roe = net_profit_ttm.div(holder_ttm) roe = StockFactorOperate().change_quarter_to_daily_with_report_date(roe, beg_date, end_date) # data precessing ################################################################################# pass # calculate data daily ################################################################################# res = roe.T.dropna(how='all').T # save data ############################################################################# Stock().write_factor_h5(res, factor_name, "alpha_dfc") return res