您现在的位置:程序化交易>> 期货公式>> 交易开拓者(TB)>> 开拓者知识>>正文内容

国外成熟策略R-Breaker分享,提供翻译后的TB源码,日内系统 [开拓者 TB]

  • 咨询内容: 本帖最后由 穿堂风 于 2011-6-27 17:25 编辑

    R-Breaker这个系统,可能很多人比我熟悉,也更为了解,有错误处还请谅解
    另外我并没实盘验证,在信号那加入了一个逻辑锁,用于控制实盘时有信号,但又不会多次满足反复开仓,这个逻辑锁我很多系统都会有,实战很好用。

     

  • TB技术人员: 先上TS源码
    1. {R-Breaker}
    2. {***********SystemSetup*******************
    3. Trading between 9:15 and 14:29 ChicagoTime only
    4. MMStop $1000
    5. Close End of Day
    6. 10 min Time Frame
    7. ******************************************}


    8. input:notbef(715),notaft(1229);
    9. var:{input:}f1(.35),f2(0.07),f3(.25),reverse(2.00),
    10. rangemin(1.15),xdiv(3);

    11. var:ssetup(0),bsetup(0),senter(0),benter(0),bbreak(0),sbreak(0),
    12. ltoday(0),hitoday(9999),startnow(0),div(0),
    13. rfilter(false);


    14. if currentbar=1 then startnow=0;
    15. div=maxlist(xdiv,1);
    16. if d>d[1] then begin

    17. startnow=startnow+1;

    18. ssetup=hitoday[1]+f1*(c[1]-ltoday[1]);
    19. senter=((1+f2)/2)*(hitoday[1]+c[1])-(f2)*ltoday[1];
    20. benter=((1+f2)/2)*(ltoday[1]+c[1])-(f2)*hitoday[1];
    21. bsetup=ltoday[1]-f1*(hitoday[1]-c[1]);
    22. bbreak=ssetup+f3*(ssetup-bsetup){(1.3625*hitoday[1]+.45*c[1])-.8125*ltoday[1]};
    23. sbreak=bsetup-f3*(ssetup-bsetup){(1.3625*ltoday[1]+.45*c[1])-.8125*hitoday[1]};

    24. hitoday=h;
    25. ltoday=l;

    26. rfilter=hitoday[1]-ltoday[1]>=rangemin;

    27. end;

    28. if h>hitoday then hitoday=h;
    29. if l<ltoday then ltoday=l;

    30. if t>=notbef and t<notaft and startnow>=2 and rfilter and
    31. date>entrydate(1) then begin

    32. if hitoday>=ssetup and marketposition>-1 then
    33. SELL("Rlev SE") senter+(hitoday-ssetup)/div stop;
    34. if ltoday<=bsetup and marketposition<1 then
    35. BUY("Rlev LE") benter-(bsetup-ltoday)/div stop;

    36. if marketposition=-1 then
    37. BUY("RbUP LE") entryprice+reverse stop;
    38. if marketposition=1 then
    39. SELL("RbDN SE") entryprice-reverse stop;

    40. if marketposition=0 then
    41. BUY("Break LE") bbreak stop;
    42. if marketposition=0 then
    43. SELL("Break SE") sbreak stop;

    44. end;

    45. if t>=notaft and t<>sess1endtime then begin

    46. if marketposition=-1 then
    47. EXITSHORT("RbUP SX") entryprice+reverse stop;
    48. if marketposition=1 then
    49. EXITLONG("RbDN LX") entryprice-reverse stop;

    50. EXITSHORT("Late SX") h+.05 stop;
    51. EXITLONG("Late LX") l-.05 stop;
    52. END;
    复制代码

     

  • TB客服: 本帖最后由 穿堂风 于 2011-6-27 17:28 编辑

    TB源码
    1. //------------------------------------------------------------------------
    2. // 简称: R_Breaker
    3. // 名称:
    4. // 类别: 公式应用
    5. // 类型: 用户应用
    6. // 输出: 穿堂风
    7. //------------------------------------------------------------------------

    8. /*R-Breaker*/


    9. Params
    10. Numeric notbef(9.00);
    11. Numeric notaft(14.55);
    12. Numeric f1(0.35);
    13. Numeric f2(0.07);
    14. Numeric f3(0.25);
    15. Numeric reverse(1.00);
    16. Numeric rangemin(0.2);
    17. Numeric xdiv(3);

    18. Vars
    19. NumericSeries ssetup(0);
    20. NumericSeries bsetup(0);
    21. NumericSeries senter(0);
    22. NumericSeries benter(0);
    23. NumericSeries bbreak(0);
    24. NumericSeries sbreak(0);
    25. NumericSeries ltoday(0);
    26. NumericSeries hitoday(9999);
    27. NumericSeries startnow(0);
    28. NumericSeries div(0);
    29. BoolSeries rfilter(false);
    30. Numeric i_reverse;
    31. Numeric i_rangemin;
    32. Numeric i_vB;
    33. Numeric i_vS;

    34. Begin
    35. i_reverse = reverse*(OpenD(0)/100);
    36. i_rangemin = rangemin*(OpenD(0)/100);
    37. if(BarStatus==0)
    38. {
    39.         startnow=0;
    40.         div=max(xdiv,1);
    41. }

    42. if(Date != Date[1])
    43. {
    44.         SetGlobalVar(0,0);
    45.         SetGlobalVar(1,0);
    46.         startnow=startnow+1;
    47.         ssetup=hitoday[1]+f1*(Close[1]-ltoday[1]);
    48.         senter=((1+f2)/2)*(hitoday[1]+Close[1])-(f2)*ltoday[1];
    49.         benter=((1+f2)/2)*(ltoday[1]+Close[1])-(f2)*hitoday[1];
    50.         bsetup=ltoday[1]-f1*(hitoday[1]-Close[1]);
    51.         bbreak=ssetup+f3*(ssetup-bsetup);
    52.         sbreak=bsetup-f3*(ssetup-bsetup);

    53.         hitoday=High;
    54.         ltoday=Low;

    55.         rfilter=(hitoday[1]-ltoday[1])>=i_rangemin;
    56. }

    57. if(High>hitoday)
    58. {
    59.         hitoday=High;
    60. }
    61. if(Low<ltoday)
    62. {
    63.         ltoday=Low;
    64. }
    65. if(Time*100>=notbef and Time*100<notaft and startnow>=2 and rfilter)
    66. {

    67.         if(Time != GetGlobalVar(1) and GetGlobalVar(1) != 0)
    68.         {
    69.                 SetGlobalVar(1,10000);
    70.         }
    71.         if(hitoday>=ssetup and marketposition>-1 and GetGlobalVar(1)<1)
    72.         {
    73.                 If(Low<=(senter+(hitoday-ssetup)/div))
    74.                 {
    75.                         SellShort(1,senter+(hitoday-ssetup)/div);
    76.                         SetGlobalVar(1,Time);
    77.                         Return;
    78.                 }
    79.         }
    80.         if(ltoday<=bsetup and marketposition<1  and GetGlobalVar(1)<1)
    81.         {
    82.                 If(High>=(benter-(bsetup-ltoday)/div))
    83.                 {
    84.                         Buy(1,benter-(bsetup-ltoday)/div);
    85.                         SetGlobalVar(1,Time);
    86.                         Return;
    87.                 }
    88.         }

    89.         if(marketposition==-1)
    90.         {
    91.                 SetGlobalVar(0,1);
    92.                 if(High-EntryPrice>=i_reverse)
    93.                 {
    94.                         BuyToCover(1,entryprice+i_reverse);
    95.                         Return;
    96.                 }
    97.         }
    98.         if(marketposition==1)
    99.         {
    100.                 SetGlobalVar(0,1);
    101.                 if(EntryPrice-Low>=i_reverse)
    102.                 {
    103.                         Sell(1,entryprice-i_reverse);
    104.                         Return;
    105.                 }
    106.         }

    107.         if(marketposition==0)
    108.         {
    109.                 if(High>=bbreak and GetGlobalVar(0) == 0)
    110.                 {
    111.                         Buy(1,bbreak);
    112.                         Return;
    113.                 }
    114.         }
    115.         if(marketposition==0)
    116.         {
    117.                 if(low<=sbreak  and GetGlobalVar(0) == 0)
    118.                 {
    119.                         SellShort(1,sbreak);
    120.                         Return;
    121.                 }
    122.         }

    123. }

    124. if(Time*100>=notaft and Time<0.1600)
    125. {

    126.         if(marketposition==-1)
    127.         {
    128.                 BuyToCover(1,Open);
    129.         }
    130.         if(marketposition==1)
    131.         {
    132.                 Sell(1,Open);
    133.         }

    134. }
    135. End

    136. //------------------------------------------------------------------------
    137. // 编译版本        GS2010.12.08
    138. // 用户版本        2011/06/27 14:29
    139. // 版权所有       
    140. // 更改声明        TradeBlazer Software保留对TradeBlazer平台
    141. //                        每一版本的TrabeBlazer公式修改和重写的权利
    142. //------------------------------------------------------------------------
    复制代码

     

  • 网友回复: 这个系统本身是用在SP上,多次出现在实盘赛的前列。
    我觉得这个系统的构架和思维非常好,直接拿着套国内商品可能表现很差,不过大家能看到这个系统的核心思想就足够了,可以借鉴。

     

  • 网友回复: 忘了说了,得用TB V4,要不V3的系列值传递那还得接力一下。

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 262069696  点击在线交流进行 有偿 编写!不贵!点击查看价格!

 


【字体: 】【打印文章】【查看评论

相关文章

    指定的模型还没有相关内容!