资源加载中... loading...

用My语言实现ORB日内交易策略

Author: 雨幕(youquant), Created: 2019-07-24 11:02:05, Updated: 2023-12-12 21:30:57

img

ORB策略简介

ORB是(Opening Range Breakout)的首字母缩写,这是Toby Crabel设计的一种交易策略。

使用这种策略,交易员在开盘价加拉伸点之上设置多头止损,在开盘价减去拉伸点之下设置空头止损。被触发的第一个止损点即是开仓点,另一个止损点即是保护性止损点。

Crabel的研究表明,在交易时段早些时候被触及的止损点的价格开仓,在收盘时,这个价格大概率会盈利。在当前交易时段迅速启动趋势的市场运动可以在收盘时为交易者的仓位增加显着的利润,简而言之,这是一个非常有效的判断真假突破的策略。

扩展Crabel的研究结果很明显表示,随着时间的推移,如果我们没有做好资金管理,那么风险就会增加,并且在日内交易中减少仓位的规模会变得非常困难。

许多专业和业余交易者使用此策略获得良好的利润回报。该策略的独特品质之一是它仅适用于日内交易。您可以使用此策略进行开仓与平仓操作。每个日内交易者都可以按照自己方便使用的时间窗口。一些人使用这种策略用于较小的时间范围和较大的成交量,而其他人使用较大的时间范围但是少量的成交量。

ORB策略的实现

  • 接下来,让我们在优宽量化平台实现这个策略,我们还是选择简洁明了的My语言进行编写

  • 策略名称:高胜率ORB交易策略

  • 数据周期:日K

  • 主图:

均线, 公式:MAC^^MA(CLOSE,LENGTH);
最高价均线,公式:MA_HH^^MA(HHV(HIGH,LENGTH),LENGTH);
最低价均线,公式:MA_LL^^MA(LLV(LOW,LENGTH),LENGTH);

上轨,公式:UPBAND^^O_TODAY+BAND;
下轨,公式:DOWNBAND^^O_TODAY-BAND;
  • 副图:

img

  • 代码:
NN:=BARSLAST(DATE<>REF(DATE,1))+1;
LENGTH_DAY:=HHV(NN,NN+62);
O_TODAY:=VALUEWHEN(NN=1,OPEN);
H_TODAY:=HHV(HIGH,NN);
L_TODAY:=LLV(LOW,NN);
H_YESTERDAY:=REF(H_TODAY,NN);
L_YESTERDAY:=REF(L_TODAY,NN);
C_YESTERDAY:=REF(C,NN);
LENGTH:=N_DAY*LENGTH_DAY;
DISTANCE:=MA(H_YESTERDAY-L_YESTERDAY,LENGTH);
ORB:=MIN(ABS(H_YESTERDAY-C_YESTERDAY),ABS(L_YESTERDAY-C_YESTERDAY));
BAND:=MAX(ORB,DISTANCE*0.1);
UPBAND^^O_TODAY+BAND;
DOWNBAND^^O_TODAY-BAND;
MAC^^MA(CLOSE,LENGTH);
MA_HH^^MA(HHV(HIGH,LENGTH),LENGTH);
MA_LL^^MA(LLV(LOW,LENGTH),LENGTH);

BUYPK:=CLOSE>UPBAND AND CLOSE>MAC AND CLOSE>MA_HH;
SELLPK:=CLOSE<DOWNBAND AND CLOSE<MAC AND CLOSE<MA_LL;
SELLY:=CLOSE<MAC AND CLOSE>BKPRICE;
BUYY:=CLOSE>MAC AND CLOSE<SKPRICE;

IF BARPOS>LENGTH THEN
BEGIN 
	BKVOL=0 AND BUYPK,BPK;
	SKVOL=0 AND SELLPK,SPK;
END
SELLY,SP(BKVOL);
BUYY,BP(SKVOL);

策略源码,请查看:https://www.youquant.com/strategy/129084


更多内容