【策略源码分享】动态均仓反转策略经过几天研究,又测试了不少的策略,这次带来了这个相对复杂一些的策略,取名为“动态均仓反转策略”。所谓“动态均仓”,即为每次买入股票都是均仓买入,但是相较于不同交易日的仓位可能是变化的。比如,13年11月1日,手中持有现金100万,预期购买十只符合条件的股票,每只仓位10万,结果经过筛选发现只有九只股票是符合购买条件的,那么就买入九只股票,每只十万,现金剩10万,过20个交易日后,手中持有股票5只,预期购买五只,现金有55万,那么每只股票就分得仓位为11万,然后就进行购买符合条件的股票。这个过程中,每次购买均是均仓购买,不同交易日的仓位不同,这也就是动态均仓。何为反转?平常时候,我们均线买入信号为五日均线向上穿越十日均线,而卖出信号是五日信号向下穿越十日信号,反转正好相反。“反转思想”认为:均线有时滞效应,当均线表达出趋势后,此波趋势几近完成,进入相反走势。所谓表现最优入池即为若符合条件股票数目多于所需购买数目,则挑选受益最高的购买。
这次代码相对复杂,考虑了各种现实情况,不过仍然是有缺陷的,比如买卖交易的成交价是按照开盘价进行的,而实际情况并非如此。下面介绍下具体的内容:
1.原理介绍
上面已经说明基本的原理,根据均线反转策略,当5日均线向下穿越10日均线,均仓买入股票;当五日均线向上超越10日均线,卖出股票,但是手中持有股票不超过10只。这会与很多依靠技术指标分析的原则相违背,但道理也可能说得通,因为均线策略具有时滞效应,常规均线买点很可能是大势将尽,趋势反转的转折点,尤其是在震荡阶段。
2.程序逻辑
a.设定股票池(沪深300),设置滑点、佣金等
b.自定义函数:选出符合条件的备卖备买股票
c.自定义函数:对股票进行买卖交易
d.执行函数(handle_data):每日执行买卖操作
3.程序结果
长期来看,收益明显高于大盘。但是仔细分析,收益基本是在第一波牛市累积起来,后面互有涨跌,最后一波牛市又拉回点收益,整体表现并不理想
收益:
策略累计收益:434.27%
沪深300收益:305.88%
[size=12.727272033691406px]

风险指标概览:
[size=12.727272033691406px]
源码(部分):
[size=12.727272033691406px]
完整代码请去
https://www.joinquant.com/post/228 克隆策略进行深入研究。
4.程序反馈
当修改参数采用普通的均线策略时,跑完后仍然不如大盘,这是怎么回事?合理吗?还是有我的程序中某个交易逻辑有问题?请大神们指点一二!