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

国外知名策略-dual thrust策略源码[开拓者公式]

 

 
  • 内容:
    dual thrust是八几年一个老外写的,目前在自动化交易里应该还能排到前三吧。
    这个系统核心相当简单,我一直都相信越简单越有效,而且作者的思想很有借鉴之处,为方便与大家分享,我重写了一个TB版本。
    原形很简单,很多人经验都比我丰富,一定能扩充不少,如加入止损,止赢,加入资金/风险管理,改成日内系统等,从而打造成为自己的一个利器。

    写在前面的话:
    从看dual thrust的原形到重写TB代码,用时大概半小时,因为我本人是从事研发工作,代码从构思开始就会首先考虑逻辑思维的严密和健壮性,但也很可能有疏忽之处,比如这个系统我就没有加入涨跌停和最小幅度控制(我只想原汁原味重写,其它的大家自己扩充吧),所以大家在提问的时候,不要先入为主的认为我会犯很多低级错误,一定要认真读过代码,并对TB机制有足够的了解,这也是对我的尊重吧,坦白说,前几次发分享系统,看到大家的回复,我有些失落。

     
  • TB源码
    1. //------------------------------------------------------------------------

    2. // 简称: dual_thrust

    3. // 名称:

    4. // 类别: 公式应用

    5. // 类型: 用户应用

    6. // 输出: 穿堂风

    7. //------------------------------------------------------------------------

    8.  

    9.  

    10. Params

    11. Numeric K1(0.5);

    12. Numeric K2(0.5);

    13. Numeric Mday(1);

    14. Numeric Nday(1);

    15. Numeric lots(1);

    16. Numeric offset(0);

    17.  

    18. Vars

    19. Numeric BuyRange(0);

    20. Numeric SellRange(0);

    21. Numeric BuyTrig(0);

    22. Numeric SellTrig(0);

    23. Numeric HH;

    24. Numeric LL;

    25. Numeric HC;

    26. Numeric LC;

    27. Numeric i_offset;

    28. Numeric BuyPosition;

    29. Numeric SellPosition;

    30.  

    31. Begin

    32. If(CurrentBar > 44*Max(Mday,Nday))//使用的是5分钟周期,其它的周期自己做相应修改

    33. {

    34.         i_offset = offset*MinMove*PriceScale;

    35.         HH = Highest(HighD(1),Mday);

    36.         HC = Highest(CloseD(1),Mday);

    37.         LL = Lowest(LowD(1),Mday);

    38.         LC = Lowest(CloseD(1),Mday);

    39.  

    40.         If((HH - LC) >= (HC - LL))

    41.         {

    42.                 SellRange = HH - LC;

    43.         }

    44.         Else

    45.         {

    46.                 SellRange = HC - LL;

    47.         }

    48.  

    49.         HH = Highest(HighD(1),Nday);

    50.         HC = Highest(CloseD(1),Nday);

    51.         LL = Lowest(LowD(1),Nday);

    52.         LC = Lowest(CloseD(1),Nday);

    53.  

    54.         If((HH - LC) >= (HC - LL))

    55.         {

    56.                 BuyRange = HH - LC;

    57.         }

    58.         Else

    59.         {

    60.                 BuyRange = HC - LL;

    61.         }

    62.  

    63.         BuyTrig = K1*BuyRange;

    64.         SellTrig = K2*SellRange;

    65.        

    66.         BuyPosition = OpenD(0)+BuyTrig;

    67.         SellPosition = OpenD(0)-SellTrig;

    68.        

    69.         PlotNumeric("BuyPosition",BuyPosition);

    70.         PlotNumeric("SellPosition",SellPosition);

    71.  

    72.         If(MarketPosition == 0)

    73.         {

    74.                 If(High>=BuyPosition)

    75.                 {

    76.                         Buy(lots,Max(Open,BuyPosition)+i_offset);

    77.                         Return;

    78.                 }

    79.                

    80.                 If(Low<=SellPosition)

    81.                 {

    82.                         SellShort(lots,Min(Open,SellPosition)-i_offset);

    83.                         Return;

    84.                 }

    85.         }

    86.  

    87.         If(MarketPosition == -1)

    88.         {

    89.                 If(High>=BuyPosition)

    90.                 {

    91.                         Buy(lots,Max(Open,BuyPosition)+i_offset);

    92.                         Return;

    93.                 }

    94.         }

    95.  

    96.         If(MarketPosition == 1)

    97.         {

    98.                 If(Low<=SellPosition)

    99.                 {

    100.                         SellShort(lots,Min(Open,SellPosition)-i_offset);

    101.                         Return;

    102.                 }

    103.         }

    104. }

    105. End

    106.  

    107. //------------------------------------------------------------------------

    108. // 编译版本        GS2010.12.08

    109. // 用户版本        2011/07/24 02:14

    110. // 版权所有        穿堂风

    111. // 更改声明        TradeBlazer Software保留对TradeBlazer平台

    112. //                        每一版本的TrabeBlazer公式修改和重写的权利

    113. //------------------------------------------------------------------------

     

 

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

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

 


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

相关文章

    没有相关内容