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

开拓者道氏理论交易策略源码[开拓者公式]




    

  • 道氏理论内容:
    1. //------------------------------------------------------------------------

    2. // 简称: D1

    3. // 名称: 道氏理论

    4. // 类别: 交易指令

    5. // 类型: 多头建仓

    6. // 输出: www.cxh99.com

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

    8.  

    9. Params

    10.         Numeric ATime(918);

    11.         Numeric CTime(1510);

    12.         Numeric Lot(1);

    13.         Numeric MoneyLoss(0.6);

    14.         Numeric BarCross(1);

    15.         Numeric Length(5);

    16.        

    17. Vars

    18.         Numeric bTime(0);

    19.         Numeric MyClose(0);

    20.         Numeric MyDiff(0);

    21.         NumericSeries estP(0);

    22.         NumericSeries ExitP(0);

    23.         NumericSeries Position(0);

    24.         NumericSeries est(0);

    25.         NumericSeries est1(0);

    26.         NumericSeries est2(0);

    27.         NumericSeries est3(0);

    28.        

    29.         Bool bTimeCon;

    30.         Bool BarUpCon;

    31.         Bool BarDownCon;

    32.         Bool BarExitCon;

    33.         Bool LongOpenCon;

    34.         Bool ShortOpenCon;

    35.         Bool LongExitCon;

    36.         Bool ShortExitCon;

    37.        

    38. Begin

    39.        

    40.         If (Date != Date[1])

    41.                 {

    42.                         est = Open;

    43.                         est1 = Open;

    44.                         est2 = Open;

    45.                         est3 = Open;

    46.                         estP = 0;

    47.                         ExitP = 0;

    48.                         Position = 0;

    49.                         MyClose = Open;

    50.                 }

    51.         Else

    52.                 {

    53.                         est = est[1];

    54.                         est1 = est1[1];

    55.                         est2 = est2[1];

    56.                         est3 = est3[1];

    57.                         estP = estP[1];

    58.                         ExitP = ExitP[1];

    59.                         Position = Position[1];

    60.                         If(Length != 0) MyClose = Average(Close[1],Length);

    61.                         Else MyClose = Close[1];

    62.                 }

    63.                

    64.         MyDiff = MyClose * BarCross / 1000;

    65.        

    66.         bTime = IntPart(Time*10000);

    67.         bTimeCon = (bTime > ATime) And (bTime < CTime);

    68.        

    69.         If((MyClose < est And MyClose < est1) Or (MyClose > est And MyClose > est1)) est = MyClose;

    70.         If(((MyClose - est) > MyDiff And est < est1) Or ((est - MyClose) > MyDiff And est > est1))

    71.                 {

    72.                         est3 = est2;

    73.                         est2 = est1;

    74.                         est1 = est;

    75.                         est = MyClose;

    76.                 }

    77.                

    78.         If(Position > 0 And High > estP) estP = High;

    79.         If(Position < 0 And Low < estP) estP = Low;

    80.         If(Position > 0) ExitP = estP * (100 - MoneyLoss) / 100;

    81.         If(Position < 0) ExitP = estP * (100 + MoneyLoss) / 100;

    82.        

    83.         If(bTime >= CTime)

    84.         {

    85.                 If (Position > 0)

    86.                         Sell(lot,Open);

    87.                 Else

    88.                         BuyToCover(lot,Open);

    89.         }

    90.          

    91.         If(bTimeCon)

    92.         {

    93.                 If (Position == 0)

    94.                 {

    95.                         If(est3 < est1 And (est2 / 2000 + est2) <= est And est3 < est2)

    96.                         {

    97.                                 Buy(lot,Open);

    98.                                 Position = lot;

    99.                                 estP = Open;

    100.                                 ExitP = estP * (100 - MoneyLoss) / 100;

    101.                                 Commentary("LongOpen");

    102.                                

    103.                         }

    104.                          

    105.                         Else If(est3 > est1 And (est2 - est2 / 2000) >= est And est3 > est2)

    106.                         {

    107.                                 SellShort(lot,Open);

    108.                                 Position = lot * -1;

    109.                                 estP = Open;

    110.                                 ExitP = estP * (100 + MoneyLoss) / 100;

    111.                                 Commentary("ShortOpen");

    112.                         }

    113.                 }

    114.                

    115.                 Else

    116.                

    117.                 {

    118.                         If(Position > 0 And est3 > est1)

    119.                         {

    120.                                 Sell(lot,Open);

    121.                                 Position = 0;

    122.                                 Commentary("LongExit1");

    123.                         }

    124.                        

    125.                         Else If(Position < 0 And est3 < est1)

    126.                         {

    127.                                 BuyToCover(lot,Open);

    128.                                 Position = 0;

    129.                                 Commentary("ShortExit1");

    130.                         }

    131.                        

    132.                         Else If(Position > 0 And Open < ExitP)

    133.                         {

    134.                                 Sell(lot,Open);

    135.                                 Position = 0;

    136.                                 Commentary("LongExit2");

    137.                         }

    138.                        

    139.                         Else If(Position < 0 And Open > ExitP)

    140.                         {

    141.                                 BuyToCover(lot,Open);

    142.                                 Position = 0;

    143.                                 Commentary("ShortExit2");

    144.                         }

    145.                 }

    146.         }

    147.        

    148.         Commentary("Position = "+Text(Position));

    149.         Commentary("ExitP = "+Text(ExitP));

    150. End

    151.  

    152. //------------------------------------------------------------------------

    153. // 编译版本        GS2004.06.12

    154. // 用户版本        2011/05/03 13:21

    155. // 版权所有        www.cxh99.com

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

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

    158. //------------------------------------------------------------------------

     

 

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

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

 


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

相关文章

    没有相关内容