问答交流

怎么筛选只用昨日涨停的票进行训练?

由bq30zy4n创建,最终由small_q 被浏览 38 用户

如何只使用涨停股票数据做训练

  • [x] 就是为了减少噪音,减少算力压力,所以只对每天特定的股票进行学习判断

https://bigquant.com/codeshare/a9b5d501-78ac-45e2-a22e-f9eacf4e01c6

过滤出涨停数据用于训练

使用DAI读取和计算因子,很容易实现这个功能

-- 使用DAI SQL获取数据,构建因子等,如下是一个例子作为参考
-- DAI SQL 语法: https://bigquant.com/wiki/doc/dai-PLSbc1SbZX#h-sql%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B

SELECT
    price_limit_status,

    -- 日期和股票代码
    date,
    instrument
-- 预计算因子和数据 cn_stock_factors https://bigquant.com/data/datasources/cn_stock_factors
FROM cn_stock_factors
QUALIFY
    -- 去掉有空值的行
    COLUMNS(*) IS NOT NULL
    AND price_limit_status == 3

ORDER BY date, instrument
  • 在 DAI SQL里使用 price_limit_status == 3 条件可以过滤出今天收盘涨停的股票,基础这个数据训练,来预测明日信号
  • 如果要使用更上一个交易日的涨停状态,可以使用条件 m_lag(price_limit_status, 1) == 3
  • 在如下策略数据时间段,数据过滤后只有15000多条,修改 StockRanker 参数 每叶节点最小样本数 为 200,这样可以比较好适合较小的数据,树的数量也改小了为 10,因为收敛得更早。【注意风险】这个数据量太少,波动会很大
  • 结果:在这个特定的数据区间,只用涨停股票训练效果(17.94%)不如全市场数据训练效果(97.95%)

https://bigquant.com/codeshare/1d0d357c-566f-4459-b922-998d318528ce

使用上一次涨停为训练数据

https://bigquant.com/codeshare/71efc3e4-b8b0-4d98-9283-666807412ed3

\

标签

股票筛选
评论
  • 或者这样,抽取全部因子,按照 是否涨停做个过滤,把涨停的留下来训练,就实现了你的目的
  • 怎么操作啊,我是小白
  • 这个代码怎么写啊,求讲解,会一点基础python,说一下我就懂了
  • 去预计算因子里查询,调用sql即可
  • 可以尝试 N天内出现涨幅m% ,虽不是严谨的涨停,但简单实用且可动态调整
  • 例如
  • #5天内出现涨幅超过 9.8%
  • `ts_max(return_0, 5)`>1.098
  • #3天内出现涨幅超过 9.5%
  • `ts_max(return_0, 3)`>1.095
  • #5天内出现跌幅超过-5%
  • `ts_min(return_0, 5)`<0.95
  • #5天内出现2连板
  • `ts_max(return_0 +return_1 , 5)`>1.198
  • #如果只是想前一天涨停
  • return_1>1.095
  • #当天涨停 (近似)
  • return_0>1.095