http://www.7klian.com

点宽专栏——ORB打破

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计策文件

function ORB(Bint,beginD,cellPar)%提取参数freq=cellPar{1};stop_rate=cellPar{2};global idexglobal Tlenglobal TTglobal newpriceglobal timeTTglobal ORBvalueglobal sglobal 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?endend

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冲破

点宽专栏——ORB冲破

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读