以下主要是Y神和GPT-o1的功劳,算是分享让AI帮忙快速解读策略并改进之思路。
原策略:https://www.joinquant.com/post/44901
提示词:请以顶级量化交易策略专家身份深入浅出解读如下交易策略,并针对运行速度较慢进行优化,保留原策略的正确性。
直接给出如下回复,第一次给的完整代码有个小bug,将bug信息与之后,就直接获得完整可执行代码,整个过程就几分钟。
对比原策略结果:回测时间减少近一半,收益差不多、最大回撤降一小点(19.9%->16.5%)
作为一名顶级量化交易策略专家,我将为您深入解读“首板低开策略”,并针对其运行速度较慢的问题进行优化,同时确保策略的正确性不受影响。
策略解读
策略概述
“首板低开策略”是一种短线交易策略,主要针对A股市场。它的核心思想是:
- 选股:在前一个交易日涨停但非连板的股票中,寻找当前价格处于最近60日相对低位(相对位置 ≤ 0.5)的股票。
- 买入条件:在开盘时,这些股票出现低开,开盘价相对于昨日收盘价下跌3%至4%(开盘价在昨日收盘价的96%至97%之间)。
- 卖出条件:
- 止盈卖出:如果在上午11:28,股票未封涨停且当前价格高于买入均价,则卖出。
- 止损卖出:如果在下午14:50,股票未封涨停,无论盈亏,都卖出。
策略细节
每日运行时间点:
- 09:30:执行买入操作。
- 11:28:执行止盈卖出操作。
- 14:50:执行止损卖出操作。
选股流程:
获取昨日涨停股票列表:
- 从全市场股票中,筛选出昨日收盘价等于涨停价的股票。
- 排除新股(上市未满250天)、ST股票、科创板和创业板股票,以及停牌股票。
排除连板股票:
- 计算这些股票在过去10个交易日中的连续涨停次数。
- 剔除连续涨停天数大于1的股票,只保留首板(昨日首次涨停)的股票。
相对位置筛选:
- 计算剩余股票在过去60个交易日中的相对位置((收盘价 - 最低价) / (最高价 - 最低价))。
- 只保留相对位置小于等于0.5的股票,即当前价格处于近60日低位的股票。
低开筛选:
- 在开盘后,检查这些股票的开盘涨跌幅。
- 只保留开盘价在昨日收盘价的96%至97%之间的股票,即低开3%至4%的股票。
交易逻辑:
买入:
- 如果账户中没有持仓,按照等额资金买入筛选出的股票。
卖出:
- 止盈卖出(11:28):如果股票未涨停,且当前价格高于买入均价,全部卖出。
- 止损卖出(14:50):如果股票未涨停,无论盈亏,全部卖出。
策略逻辑背后的原理
首板涨停的股票通常具有较强的短期资金关注度,但连板股票可能存在过热风险,且面临监管压力,因此策略选择首板而非连板股票。
相对位置低于0.5的股票,意味着这些股票的价格处于近期低位,具有一定的安全边际。
低开买入:
- 低开可能是由于市场情绪导致的短期恐慌,但对于基本面没有变化的股票,低开反而提供了更好的买入价格。
- 选择低开3%至4%的幅度,既能捕捉到价格回调的机会,又避免了过度下跌带来的风险。
及时卖出:
- 止盈卖出:在上午观察到股票未继续涨停,但已有盈利,选择落袋为安。
- 止损卖出:在收盘前卖出未涨停的股票,避免隔夜风险。
策略优化
针对原策略运行速度较慢的问题,主要优化方向如下:
减少不必要的数据获取和计算:避免重复调用数据接口,尽可能地批量获取数据。
优化数据处理方式:使用矢量化操作代替循环,提高数据处理效率。
缓存数据:对于在多个函数中重复使用的数据,进行缓存,避免重复计算。