请选择 进入手机版 | 继续访问电脑版
楼主: 点宽DigQuant
1210 0

[其他] 【点宽专栏】——ORB突破 [推广有奖]

  • 0关注
  • 4粉丝

本科生

25%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
1.5552
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
990 点
帖子
35
精华
0
在线时间
34 小时
注册时间
2020-12-14
最后登录
2023-3-24

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

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 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年进行回测



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:accountinf position function Multiple Account

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-16 16:22