近日开始研究均值回归策略,先从简单的入手,这里把一个策略的思路,代码和回测报告和同仁分享一下哈。
思路: 做多:收盘价大于100周期均线,收盘价小于5周期均线,连续3根K线的最低价比上一根的最低价低,则以收盘价格减去0.5倍的ATR(10)值,再减去1个价格跳动的价格挂单做多;多单出场:若收盘价大于开盘价,以收盘价加上1个价格跳动限价出场;
做空的逻辑和做多反过来即可;
利用Multicharts (MC) 平台写代码建模如下:
input: pra1(100),pra2(5), pra3(0.5),pra4(100),pra5(5), pra6(0.5);
if c > Average(c,pra1) and c< Average(c,pra2) and l<l[1] and l[1]<l[2] and l[2]<l[3] and l[3]<=l[4] then //
buy next bar at c - pra3 * AvgTrueRange(10)-1 points limit;
if c > c[1] then sell next bar at c+1 points limit;
if c < Average(c,pra4) and c> Average(c,pra5) and h>h[1] and h[1]>h[2] and h[2]>h[3] and h[3]>=h[4] then//
sellshort next bar at c + pra6 * AvgTrueRange(10)+ 1 points limit;
if c < c[1] then buytocover next bar at c-1 points limit;
因为是均值回归思路,选择国内沪铜期货指数1分钟数据最近1年进行回测,回测时加上收盘平仓逻辑,以规避隔日的跳空。历史回测绩效结果如下:
策略收益:7850元,交易次数:309次,胜率:64%,盈亏比:0.61,单笔净利 25元;策略在2018年3月份出现一波较大的回撤4000元,但是总体一年下来权益曲线还算不错,可进一步优化。