入场过滤:当布林带上轨与下轨的距离明显拉开的时候考虑进场
多头入场:当前价格突破布林带上轨
空头入场:当前价格跌破布林带下轨
止损:开仓价格之下N倍ATR
止盈:开仓价格之上N倍ATR
回测曲线(由Auto-trader提供回测报告)
策略源码
- function BollTrading2(Freq,ShareNum,N,plus)
- targetList = traderGetTargetList();
- HandleList = traderGetHandleList();
- pct1=0.20;
- pct2=0.01;
- lags=35;
- for j=1:length(targetList)
-
- [timeday,openday,highday,lowday,closeday,volumeday,turnoverday,openinterestday] = traderGetKData(targetList(j).Market,targetList(j).Code,'day',1, -lags, 0,false,'FWard');
- [timemin,openmin,highmin,lowmin,closemin,volumemin,turnovermin,openinterestmin] = traderGetKData(targetList(j).Market,targetList(j).Code,'min',Freq, -lags, 0,false,'FWard');
-
- if length(closeday)<lags
- continue;
- end
-
- mp=traderGetAccountPosition(HandleList(1),targetList(j).Market,targetList(j).Code);
-
- [mid, BollUp, BollDown]=Bollin_c(closeday,N,plus);
-
- con1=(BollUp(end)-BollDown(end))>(1+pct1)*mean(BollUp-BollDown);
- con2=(BollUp(end)-BollDown(end))>(1+pct1)*mean(BollUp(end-5:end)-BollDown(end-5:end));
- con3=(min(mid)/max(mid))>(1-pct2);
-
- conlongopen1=lowmin(end)>BollUp(end);
- conshortopen1=highmin(end)<BollDown(end);
- %平仓条件
- conlongclose1=highmin(end)<mid(end);
- conshortclose1=lowmin(end)>mid(end);
-
- %开仓
- if con1&&con2&&con3&&mp==0
- if conlongopen1
- traderDirectBuy(HandleList(1), targetList(j).Market,targetList(j).Code,ShareNum,0,'market','buy');
- elseif conshortopen1
- traderDirectSell(HandleList(1), targetList(j).Market,targetList(j).Code,ShareNum,0,'market','sell');
- end
- end
-
- %平仓
- if conlongclose1&&mp>0
- traderPositionTo(HandleList(1), targetList(j).Market,targetList(j).Code,0,0,'market','close');
- end
-
- if conshortclose1&&mp<0
- traderPositionTo(HandleList(1), targetList(j).Market,targetList(j).Code,0,0,'market','close');
- end
-
-
- end
更多免费策略源码下载请登录DigQuant社区-策略资源获取~


雷达卡



京公网安备 11010802022788号







