q = query(
fundamentals.eod_derivative_indicator.pe_ratio,
fundamentals.eod_derivative_indicator.pb_ratio,
fundamentals.eod_derivative_indicator.market_cap,
fundamentals.financial_indicator.ev,
fundamentals.financial_indicator.return_on_asset_net_profit,
fundamentals.financial_indicator.du_return_on_equity,
fundamentals.financial_indicator.earnings_per_share,
fundamentals.income_statement.revenue,
fundamentals.income_statement.total_expense
).filter(
fundamentals.stockcode.in_(context.hs300)
)
fund = get_fundamentals(q)
context.factors_data = fund.T
# 2. 数据预处理
process_data(context)
# 3. 根据每月预测下月的收益率
select_stocklist(context)
# 4. 调仓
reblance(context)
def process_data(context):
“”“删除空值, 去极值, 标准化, 因子的市值中性化”“”
# 删除空值
context.factors_data = context.factors_data.dropna()
# 市值因子不进行去极值, 标准化处理
market_cap_factor = context.factors_data["market_cap"]