|
老外的作品,国人的翻译。自1993 年公开发布以来,系统的交易法则没有改变过,该系统已经在市场上存活了14 年之久。该系统为日内交易策略,不持仓过夜。出场指令为止损或是收盘。该系统的特点是,交易量低,结合了趋势和反转两种交易方法,既进行趋势交易也进行反转交易。尤其是当指数的日内波动较大时,该系统的收益更好;
如下图,测试时间为2019年4月1日至2019年11月11日15点44分
源码如下:
- //------------------------------------------------------------------------
- // 简称: IF4
- // 名称: IF4
- // 类别: 公式应用
- // 类型: 用户应用
- // 输出:
- //------------------------------------------------------------------------
- // 简称: R_Breaker
- Params
- Numeric notbef(9.00);
- Numeric notaft(14.55);
- Numeric f1(0.35);
- Numeric f2(0.07);
- Numeric f3(0.25);
- Numeric reverse(1.00);
- Numeric rangemin(0.2);
- Numeric xdiv(3);
- Vars
- NumericSeries ssetup(0);
- NumericSeries bsetup(0);
- NumericSeries senter(0);
- NumericSeries benter(0);
- NumericSeries bbreak(0);
- NumericSeries sbreak(0);
- NumericSeries ltoday(0);
- NumericSeries hitoday(9999);
- NumericSeries startnow(0);
- NumericSeries div(0);
- BoolSeries rfilter(false);
- Numeric i_reverse;
- Numeric i_rangemin;
- Numeric i_vB;
- Numeric i_vS;
- Begin
- i_reverse = reverse*(OpenD(0)/100);
- i_rangemin = rangemin*(OpenD(0)/100);
- if(BarStatus==0)
- {
- startnow=0;
- div=max(xdiv,1);
- }
- if(Date != Date[1])
- {
- SetGlobalVar(0,0);
- SetGlobalVar(1,0);
- startnow=startnow+1;
- ssetup=hitoday[1]+f1*(Close[1]-ltoday[1]);
- senter=((1+f2)/2)*(hitoday[1]+Close[1])-(f2)*ltoday[1];
- benter=((1+f2)/2)*(ltoday[1]+Close[1])-(f2)*hitoday[1];
- bsetup=ltoday[1]-f1*(hitoday[1]-Close[1]);
- bbreak=ssetup+f3*(ssetup-bsetup);
- sbreak=bsetup-f3*(ssetup-bsetup);
- hitoday=High;
- ltoday=Low;
- rfilter=(hitoday[1]-ltoday[1])>=i_rangemin;
- }
- if(High>hitoday)
- {
- hitoday=High;
- }
- if(Low<ltoday)
- {
- ltoday=Low;
- }
- if(Time*100>=notbef and Time*100<notaft and startnow>=2 and rfilter)
- {
- if(Time != GetGlobalVar(1) and GetGlobalVar(1) != 0)
- {
- SetGlobalVar(1,10000);
- }
- if(hitoday>=ssetup and marketposition>-1 and GetGlobalVar(1)<1)
- {
- If(Low<=(senter+(hitoday-ssetup)/div))
- {
- SellShort(1,senter+(hitoday-ssetup)/div);
- SetGlobalVar(1,Time);
- Return;
- }
- }
- if(ltoday<=bsetup and marketposition<1 and GetGlobalVar(1)<1)
- {
- If(High>=(benter-(bsetup-ltoday)/div))
- {
- Buy(1,benter-(bsetup-ltoday)/div);
- SetGlobalVar(1,Time);
- Return;
- }
- }
- if(marketposition==-1)
- {
- SetGlobalVar(0,1);
- if(High-EntryPrice>=i_reverse)
- {
- BuyToCover(1,entryprice+i_reverse);
- Return;
- }
- }
- if(marketposition==1)
- {
- SetGlobalVar(0,1);
- if(EntryPrice-Low>=i_reverse)
- {
- Sell(1,entryprice-i_reverse);
- Return;
- }
- }
- if(marketposition==0)
- {
- if(High>=bbreak and GetGlobalVar(0) == 0)
- {
- Buy(1,bbreak);
- Return;
- }
- }
- if(marketposition==0)
- {
- if(low<=sbreak and GetGlobalVar(0) == 0)
- {
- SellShort(1,sbreak);
- Return;
- }
- }
- }
- if(Time*100>=notaft and Time<0.1600)
- {
- if(marketposition==-1)
- {
- BuyToCover(1,Open);
- }
- if(marketposition==1)
- {
- Sell(1,Open);
- }
- }
- End
- //------------------------------------------------------------------------
- // 编译版本 GS2015.12.25
- // 用户版本 2019/11/11 15:21:34
- // 版权所有 24KRMB
复制代码 |
|