开拓者 TB 【震荡+趋势混合策略】恒温器策略【源码】-开拓者公式 -程序化交易(grahamobil.com) - 365bet送体验金
您现在的位置:程序化交易>> 期货公式>> 交易开拓者(TB)>> 开拓者公式>>正文内容

365bet送体验金

  •  本帖最后由 sorakiraa 于 2013-1-14 09:08 编辑

    【震荡+趋势混合策略】恒温器策略

    by RogarZ

    源码:



    1. Params

    2.         Numeric bollinglengths(50);

    3.         Numeric trendliqlength(50);

    4.         Numeric numstddevs(2);

    5.         Numeric swingprcnt1(0.5);

    6.         Numeric swingprcnt2(0.75);

    7.         Numeric atrlength(10);

    8.         Numeric swingtrendswitch(50);

    9. Vars

    10.                 BoolSeries swing(False);

    11.                 NumericSeries cmival;

    12.                 NumericSeries buyeasierday(0);

    13.                 NumericSeries selleasierday(0);

    14.                 NumericSeries trendlokbuy;

    15.                 NumericSeries trendloksell;

    16.                 NumericSeries trendbuypt;

    17.                 NumericSeries trendsellpt;

    18.                 NumericSeries keyofday;

    19.                 NumericSeries ma1;

    20.                 NumericSeries midd;

    21.                 Numeric swingprotstop;       

    22.                 Numeric atr;

    23.                 Numeric swingbuypt;

    24.                 Numeric swingsellpt;

    25. Begin

    26.         Commentary("BarInterval= "+Text(BarInterval));

    27.                 cmival=Abs(Close[1]-Close[31])/(Highest(High[1],30)-Lowest(Low[1],30));

    28.                 trendloksell=Average(Low[1],3*240/BarInterval);

    29.                 trendlokbuy=Average(High[1],3*240/BarInterval);

    30.                 keyofday=(HighD(0)+LowD(0)+CloseD(0))/3;

    31.                 If(Date<>Date[1]){

    32.                 If(CloseD(1)>keyofday[1])

    33.                 {

    34.                 selleasierday=1;//空头日

    35.                 }Else{

    36.                 buyeasierday=1;//多头日

    37.                 }

    38. }

    39.         Atr=XAverage(TrueRange,atrlength*240/BarInterval);

    40. If(buyeasierday==1){

    41.         swingbuypt=OpenD(0)+swingprcnt1*atr;

    42.         swingsellpt=OpenD(0)-swingprcnt2*atr;

    43. }

    44. If(selleasierday==1){

    45.         swingbuypt=OpenD(0)+swingprcnt2*atr;

    46.         swingsellpt=OpenD(0)-swingprcnt1*atr;

    47. }

    48. swingbuypt=Max(swingbuypt,trendlokbuy);

    49. swingsellpt=Min(swingsellpt,trendloksell);

    50.  

    51. PlotNumeric("Buy",swingbuypt);

    52. PlotNumeric("Sell",swingsellpt);

    53.  

    54. ma1=Average(Close[1],trendliqlength);//趋势均线

    55. midd=Average(Close[1],bollinglengths);//布林中线

    56. trendbuypt=midd+numstddevs*StandardDev(Close[1],bollinglengths);

    57. trendsellpt=midd-numstddevs*StandardDev(Close[1],bollinglengths);

    58.  

    59. If(cmival<swingtrendswitch/100)

    60. {

    61.         If(MarketPosition==0&&High[1]>=swingbuypt)

    62.         //开多仓

    63. {

    64.                                 Buy(1,Max(Open,swingbuypt));

    65.                                 swing=True;

    66. }

    67.         If(MarketPosition==0&&Low[1]<=swingsellpt)

    68.         //开空仓

    69. {

    70.                                 SellShort(1,Min(Open,swingsellpt));

    71.                                 swing=True;

    72. }

    73. If(MarketPosition>0&&Low[1]<=swingsellpt)

    74. //多头反手

    75. {

    76.                                 SellShort(1, Min(Open,swingsellpt));

    77.                                 swing=True;

    78. }

    79. If(MarketPosition<0&&High[1]>=swingbuypt)

    80. //空头反手

    81. {

    82.                                 Buy(1, Max(Open,swingbuypt));

    83.                                 swing=True;

    84. }

    85. }Else{

    86.         swingprotstop=atr*3;

    87.         If(MarketPosition==0&&High[1]>=trendbuypt)

    88. //开多仓

    89. {

    90.         Buy(1,Max(Open,trendbuypt));

    91.         swing=False;

    92. }

    93. If(MarketPosition==0&&Low[1]<=trendsellpt)

    94. //开空仓

    95. {

    96.         SellShort(1,Min(Open,trendsellpt));

    97.         swing=False;

    98. }

    99. If(MarketPosition>0&&swing)

    100. //多头止损

    101. {

    102.         If(Low[1]<=EntryPrice-swingprotstop)

    103. {

    104.         Sell(1,Min(Open, EntryPrice-swingprotstop));

    105. }Else If(Low[1]<=ma1)

    106. {

    107.         Sell(1,Min(Open,ma1));

    108. }

    109. }

    110. If(MarketPosition<0&&swing)

    111. //空头止损

    112. {

    113.         If(High[1]>=EntryPrice+swingprotstop)

    114. {

    115.         BuyToCover(1,Max(Open, EntryPrice+swingprotstop));

    116. }Else If(High[1]>=ma1)

    117. {

    118.         BuyToCover (1,Max(Open,ma1));

    119. }

    120. }

    121. }

    122.  

    123. End

     

 

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

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

 


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

相关文章

    没有相关内容