小伙伴关心的问题:日间策略和日内策略的区别(日间策略和日内策略哪个好),本文通过数据整理汇集了日间策略和日内策略的区别(日间策略和日内策略哪个好)相关信息,下面一起看看。

日间策略和日内策略的区别(日间策略和日内策略哪个好)

文章来源:点宽量化社区

文章传送门:十大经典日内策略之——ORB突破

本系列由点宽DigQuant量化人才俱乐部独家发布

未经允许,不得转载

1.ORB突破思想

1.1起源

ORB突破交易最早于1988年由美国基金经理托比提出。他通过衡量开盘价与最高价、最低价距离的较小者,为失败突破幅度,后市一旦超过这个幅度,便认为是真正的突破。在实际应用中,早盘的突破、窄幅波动后的突破,可作为有效的过滤条件。

1.2主要特点:

日内交易策略,收盘平仓;

ORB失败突破基于过去N个交易日ORB指标;

上轨=今日开盘价+N天ORB*M;

下轨=今日开盘价-N天ORB*M;

当价格突破上轨,买入开仓;

当价格跌穿下轨,卖出开仓。

2.对于ORB思想的改进

2.1发现问题

通过行情图研究发现突破ORB下轨做空需要比突破ORB上轨做多更为严格一日内多次突破ORB轨道导致多次开平仓抬高了手续费又降低了胜率仅每日收盘平仓对于行情的把握太过迟钝

2.2改进想法

设定ORB上轨于下轨振幅比为1:2在开仓条件中加入均线过滤与日历过滤去噪,同时控制每一天最多开仓一次平仓条件加入滚动止盈止损平仓同时止盈止损基础价格为每次开仓时刻的均价

3.策略代码分享

3.1策略文件

functionORB(Bint,beginD,cellPar)%提取参数 freq=cellPar{1}; stop_rate=cellPar{2}; global idex global Tlen global TT global newprice global timeTT global ORBvalue global s global maketime %初始化 if Bint traderSetParalMode(false); idex=traderRegKData(min,freq); Tlen=length(idex(:,1)); newprice=zeros(Tlen,1); TT=zeros(Tlen,1); timeTT=zeros(Tlen,1); ORBvalue=0; else if isempty(s) [ValidCash,MarketCap,~,~,~] = traderGetAccountInfoV2(1); s=ValidCash+MarketCap; end %获取数据 iddexK = traderGetRegKData(idex, 61, false); for i=1:Tlen idddexK=iddexK(1+8*(i-1):8*i,:); time=idddexK(1,:); open=idddexK(2,:); high=idddexK(3,:); low=idddexK(4,:); close=idddexK(5,:); [Position,~,AvgPrice] = traderGetAccountPositionV2(1,i); [Multiple, ~, ~, ~, ~, ~, ~] = traderGetFutureInfoV2(i); %时间格式转换 gettime=datevec(time(end)); nowtime=10000*gettime(end,4)+100*gettime(end,5)+gettime(end,6); %时间控制 if nowtime>=90000&&nowtime<=110000 timeTT=1; elseif nowtime>=123000&&nowtime<=143000 timeTT=2; else timeTT=0; end %资金管理 sharenum=floor(s*0.8/Multiple/close(end)/Tlen); %ORB振幅描述 if nowtime>=110500&&nowtime<111500 a=mean(open(end-5:end)); b=mean(high(end-5:end)); c=mean(low(end-5:end)); ORBvalue=max(abs(a-b),abs(a-c)); end %开仓 if Position==0&&timeTT==2 if close(end)>(open(end)+ORBvalue)&&close(end)>mean(close(end-19:end))&&weekday(time(end))~=6&&maketime==0 orderID= traderPositionToV2(1,i,sharenum,0,market,buy); if orderID~=0 TT(i)=1; maketime=1; end elseif close(end)<(open(end)-2*ORBvalue)&&close(end)<mean(close(end-19:end))&&weekday(time(end))~=6&&maketime==0 orderID= traderPositionToV2(1,i,-sharenum,0,market,sell); if orderID~=0 TT(i)=1; maketime=1; end end end %开仓时刻均价记录 if TT(i)==1 newprice(i)=AvgPrice; TT(i)=0; end %时间控制平仓 if timeTT==0 traderPositionToV2(1,i,0,0,market,stop); maketime=0; end %滚动止盈止损平仓 if Position<0 if close(end)> newprice(i)*(1+stop_rate) traderPositionToV2(1,i,0,0,market,stop); if close(end)< newprice(i)*(1-3*stop_rate) newprice(i)=close(end); end end end if Position>0 if close(end)<newprice(i)*(1-stop_rate) traderPositionToV2(1,i,0,0,market,stop); if close(end)>newprice(i)*(1+3*stop_rate) newprice(i)=close(end); end end end end end

3.2执行文件

TargetList(1).Market = CFFEX; TargetList(1).Code = IF0000; stop_rate=0.02; freq=10; AccountList(1) = {FutureBackReplay}; traderRunBacktestV2(ORB,@ORB,{freq,stop_rate},AccountList(1),TargetList,min,10,20100101,20170820,FWard);

4.回测表现

对沪深300指数期货2010年至2017年进行回测

文章传送门:十大经典日内策略之——ORB突破

更多日间策略和日内策略的区别(日间策略和日内策略哪个好)相关信息请关注本站,本文仅仅做为展示!