# 预计算:提前算好整个回测期所有调仓日

由 bq74n3yq创建,

  • # 预计算:提前算好整个回测期所有调仓日的股票池 sql = """ SELECT date, instrument, close, dividend_yield_ratio, pb, pe_ttm, float_market_cap, sw2021_level2, m_ta_sma(close, 3) AS ma3, m_ta_sma(close, 6) AS ma6, m_ta_sma(close, 12) AS ma12, m_ta_sma(close, 24) AS ma24, (m_ta_sma(close, 3) + m_ta_sma(close, 6) + m_ta_sma(close, 12) + m_ta_sma(close, 24)) / 4 AS bbi, c_group_avg(sw2021_level2, pe_ttm) AS ind_pe_median, 1.0 / $stock_num AS weight FROM cn_stock_prefactors WHERE st_status = 0 AND suspended = 0 AND list_sector NOT IN (3, 4) AND is_risk_warning = 0 AND list_days > 270 AND float_market_cap > 500000000 AND pb IS NOT NULL AND pb <= 1.8 AND pe_ttm IS NOT NULL AND pe_ttm > 0 AND dividend_yield_ratio IS NOT NULL AND dividend_yield_ratio > 0 QUALIFY pe_ttm <= ind_pe_median * 1.2 AND m_lag(close, 1) > bbi ORDER BY date, dividend_yield_ratio DESC """ # 批量查询历史数据(避免handle_data重复查询) df = dai.query( sql, filters={"date": [context.add_trading_days(context.start_date, -30), context.end_date]}, params={"stock_num": stock_num} ).df() 计算筛选出来的股票的市盈率和股息率的相关系数,计算股息和市值的相关系数
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -