在获得BIAS指标的数值后,反趋势加日内策略。BIAS小于-2,做多;BIAS大于2,做空。反手出场。
回测曲线(由Auto-trader提供回测报告)
策略源码:
- function BIASst(freq)
- %%反趋势策略,日内策略
- targetList = traderGetTargetList();
- HandleList = traderGetHandleList();
- for i=1:length(targetList)
- marketposition=traderGetAccountPosition(HandleList(1),targetList(i).Market,targetList(i).Code);
- barnum=traderGetCurrentBar(targetList(i).Market,targetList(i).Code);
- len=40;
- dlen=20;
- [time,open,high,low,close,volume,turnover,openinterest] = traderGetKData(targetList(i).Market,targetList(i).Code,'min',freq, 0-len, 0,false,'FWard');
- [Dtime,Dopen,Dhigh,Dlow,Dclose,Dvolume,Dturnover,Dopeninterest] = traderGetKData(targetList(i).Market,targetList(i).Code,'day',1, 0-dlen, 0,false,'FWard');
- if length(close)<len+1||length(Dclose)<dlen+1
- continue
- end
- %%
- % 日内策略
- gettimeD=datevec(Dtime);
- timenumd=gettimeD(:,4)*100+gettimeD(:,5);
- cont=1;
- if timenumd(end)>0900&&timenumd(end)<1448
- cont=0;
- end
-
- %%
- %入场指标计算
- %----------------------------------基本用法------------------------------
- %乖离率指标的一般研判标准主要集中在乖离率正负值转换和乖离率取值等方面
- %1)6日BIAS>+5%为卖出时机;6日BIAS<-5%为买入时机
- %2)12日BIAS>+6%为卖出时机;12日BIAS<-5.5%为买入时机
- %3)24日BIAS>+9%为卖出时机;24日BIAS<-8%为买入时机
-
- BIASV=BIAS(close,12,0);
- con1=BIASV(end)<=-2&&cont==0;
- con2=BIASV(end)>=2&&cont==0;
-
- shareNum=1;
-
- if marketposition==0
- if con1
- % traderBuy(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','buy');%开多单
- orderID = traderBuy(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','1');
- elseif con2
- orderID = traderSellShort(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','1');
- end
- end
-
- if cont||marketposition>0 && con2
- order= traderPositionTo(HandleList(1),targetList(i).Market,targetList(i).Code,0,0,'market','sell');%平多单
- end
-
- if cont||marketposition<0 && con1
- traderBuyToCover(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','buytocover');%平空单
- end
-
-
- end
- end
- function ATRValue=ATR(High,Low,Close,Length)
- ATRValue=zeros(length(High),1);
- TRValue=zeros(length(High),1);
- TRValue(2:end)=max([High(2:end)-Low(2:end) abs(High(2:end)-Close(1:end-1)) abs(Low(2:end)-Close(1:end-1))],[],2);
- ATRValue=MA(TRValue,Length);
- end
- function MAValue=MA(Price,Length)
- MAValue=zeros(length(Price),1);
- for i=Length:length(Price)
- MAValue(i)=sum(Price(i-Length+1:i))/Length;
- end
- MAValue(1:Length-1)=Price(1:Length-1);
- end
更多免费策略源码下载请登录DigQuant社区-策略资源下载~


雷达卡



京公网安备 11010802022788号







