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

仿照系统自带的海龟系统编写了一套简单的海龟交易系统 [开拓者 TB]

  • 咨询内容:
    1. //------------------------------------------------------------------------
    2. // 简称: TurtleDayTrader
    3. // 名称: TurtleDayTrader
    4. // 类别: 公式应用
    5. // 类型: 用户应用
    6. // 输出:
    7. //------------------------------------------------------------------------
    8. Params
    9.                         Numeric LongLength(20);                        // 长周期
    10.                         Numeric ShortLength(10);                // 短周期
    11.                         Numeric TrailingScale(0.5);                // 增仓比例
    12.                         Numeric StopLossSet(2);                        // 止损比例

    13.                         Numeric Lots(1);                                // 交易数量                               
    14. Vars
    15.                         Numeric MinPoint;                                // 最小变动单位
    16.                         NumericSeries AvgTR;                        // ATR
    17.                         Numeric N;                          // N 值
    18.                         NumericSeries DonchianHi;           // 唐奇安通道上轨,延后1个Bar
    19.                         NumericSeries DonchianLo;           // 唐奇安通道下轨,延后1个Bar
    20.                         Numeric ExitHighestPrice;           // 离市时判断需要的N周期最高价
    21.                         Numeric ExitLowestPrice;            // 离市时判断需要的N周期最低价
    22.                         Numeric myEntryPrice;               // 开仓价格
    23.                         Numeric myExitPrice;                // 平仓价格
    24.                         Bool SendOrderThisBar(False);   // 当前Bar有过交易
    25.                         NumericSeries preEntryPrice(0); // 前一次开仓的价格
    26. Begin
    27.                         If(BarStatus == 0)
    28.                         {
    29.                                 preEntryPrice = InvalidNumeric;
    30.                         } Else
    31.                         {
    32.                                 preEntryPrice = preEntryPrice[1];
    33.                         }
    34.        
    35.                         AvgTR = XAverage(TrueRange,LongLength);
    36.                         N = AvgTR[1];       
    37.                         DonchianHi = HighestFC(High[1],LongLength);
    38.                         DonchianLo = LowestFC(Low[1],LongLength);       
    39.                         ExitLowestPrice = LowestFC(Low[1],ShortLength);
    40.                         ExitHighestPrice = HighestFC(High[1],ShortLength);
    41.                         Commentary("N="+Text(N));
    42.                         Commentary("preEntryPrice="+Text(preEntryPrice));
    43.                         PlotNumeric("上轨",DonchianHi);
    44.                         PlotNumeric("下轨",DonchianLo);
    45.                         PlotNumeric("退出上轨",ExitHighestPrice);
    46.                         PlotNumeric("退出下轨",ExitLowestPrice);
    47.                        
    48.                         /*/////////////////////////////////开仓////////////////////////////////////////*/
    49.                         If(MarketPosition == 0 && High > DonchianHi)
    50.                         {
    51.                                 myEntryPrice = min(high,DonchianHi);
    52.                                 myEntryPrice = IIF(myEntryPrice < Open, Open,myEntryPrice); // 大跳空的时候用开盘价代替
    53.                                 preEntryPrice = myEntryPrice;
    54.                                 Buy(Lots,myEntryPrice);
    55.                                 SendOrderThisBar = True;
    56.                         }

    57.                         If(MarketPosition == 0 && Low < DonchianLo)
    58.                         {
    59.                                 myEntryPrice = max(low,DonchianLo);
    60.                                 myEntryPrice = IIF(myEntryPrice > Open, Open,myEntryPrice); // 大跳空的时候用开盘价代替
    61.                                 preEntryPrice = myEntryPrice;
    62.                                 SendOrderThisBar = True;
    63.                                 SellShort(Lots,myEntryPrice);
    64.                         }
    65.                         /*///////////////////////////////止盈加仓////////////////////////////////////*/
    66.                         If(MarketPosition == 1)
    67.                         {      
    68.                                 Commentary("ExitLowestPrice="+Text(ExitLowestPrice));
    69.                                 If(Low < ExitLowestPrice)
    70.                                 {
    71.                                         myExitPrice = max(Low,ExitLowestPrice);
    72.                                         myExitPrice = IIF(myExitPrice > Open, Open,myExitPrice); // 大跳空的时候用开盘价代替
    73.                                         Sell(0,myExitPrice);    // 数量用0的情况下将全部平
    74.                                 }Else
    75.                                 {
    76.                                         If(preEntryPrice!=InvalidNumeric)
    77.                                         {
    78.                                                 If(Open >= preEntryPrice + TrailingScale*N) // 如果开盘就超过设定的1/2N,则直接用开盘价增仓。
    79.                                                 {
    80.                                                         myEntryPrice = Open;
    81.                                                         preEntryPrice = myEntryPrice;
    82.                                                         Buy(Lots,myEntryPrice);
    83.                                                         SendOrderThisBar = True;
    84.                                                 }       

    85.                                                 while(High >= preEntryPrice + TrailingScale*N) // 以最高价为标准,判断能进行几次增仓
    86.                                                 {
    87.                                                         myEntryPrice = preEntryPrice + TrailingScale * N;
    88.                                                         preEntryPrice = myEntryPrice;
    89.                                                         Buy(Lots,myEntryPrice);
    90.                                                         SendOrderThisBar = True;                                       
    91.                                                 }
    92.                                         }                       
    93.                                         /*///////////////////////////////////止损策略///////////////////////////////*/
    94.                                         If(Low <= preEntryPrice - StopLossSet * N && SendOrderThisBar == false) // 加仓Bar不止损
    95.                                         {
    96.                                                 myExitPrice = preEntryPrice - StopLossSet * N;
    97.                                                 myExitPrice = IIF(myExitPrice > Open, Open,myExitPrice); // 大跳空的时候用开盘价代替
    98.                                                 Sell(0,myExitPrice); // 数量用0的情况下将全部平仓
    99.                                         }
    100.                                 }
    101.                         }Else If(MarketPosition ==-1) // 有空仓的情况
    102.                         {
    103.                                 Commentary("ExitHighestPrice="+Text(ExitHighestPrice));
    104.                                 If(High > ExitHighestPrice)
    105.                                 {
    106.                                         myExitPrice = Min(High,ExitHighestPrice);
    107.                                         myExitPrice = IIF(myExitPrice < Open, Open,myExitPrice); // 大跳空的时候用开盘价代替
    108.                                         BuyToCover(0,myExitPrice);    // 数量用0的情况下将全部平仓
    109.                                 }Else
    110.                                 {
    111.                                         If(preEntryPrice!=InvalidNumeric)
    112.                                         {
    113.                                                 If(Open <= preEntryPrice - TrailingScale*N) // 如果开盘就超过设定的1/2N,则直接用开盘价增仓。
    114.                                                 {
    115.                                                         myEntryPrice = Open;
    116.                                                         preEntryPrice = myEntryPrice;
    117.                                                         SellShort(Lots,myEntryPrice);
    118.                                                         SendOrderThisBar = True;
    119.                                                 }
    120.                                                 while(Low <= preEntryPrice - TrailingScale*N) // 以最低价为标准,判断能进行几次增仓
    121.                                                 {
    122.                                                         myEntryPrice = preEntryPrice - TrailingScale * N;
    123.                                                         preEntryPrice = myEntryPrice;
    124.                                                         SellShort(Lots,myEntryPrice);
    125.                                                         SendOrderThisBar = True;
    126.                                                 }
    127.                                 }
    128.                                 /*///////////////////////////////////止损策略///////////////////////////////*/
    129.                                 If(High >= preEntryPrice + StopLossSet * N && SendOrderThisBar==false) // 加仓Bar不止损
    130.                                 {
    131.                                         myExitPrice = preEntryPrice + StopLossSet * N;
    132.                                         myExitPrice = IIF(myExitPrice < Open, Open,myExitPrice); // 大跳空的时候用开盘价代替
    133.                                         BuyToCover(0,myExitPrice); // 数量用0的情况下将全部平仓
    134.                                 }
    135.                         }
    136.                 }

    137. End


    138. //------------------------------------------------------------------------
    139. // 编译版本        GS2010.12.08
    140. // 用户版本        2012/02/24 20:16
    141. // 版权所有        飞跃
    142. // 更改声明        TradeBlazer Software保留对TradeBlazer平台
    143. //                        每一版本的TrabeBlazer公式修改和重写的权利
    144. //------------------------------------------------------------------------

     

  • TB技术人员: 本帖最后由 飞跃 于 2012-3-18 11:45 编辑

    TB自带的海龟交易系统,仿照其编写了一套简单的海龟交易系统,大家可以模拟一下,表现还是不错的,全局设置我设置了交易次数为4次。

     

  • TB客服: 橡胶的30分钟周期(优化参数后的)

    0.jpg (70.74 KB, 下载次数: 7) 2012-3-18 06:58:39 上传 下载次数: 7 4.jpg (100.61 KB, 下载次数: 1) 2012-3-18 06:58:38 上传 下载次数: 1 3.jpg (64.12 KB, 下载次数: 1) 2012-3-18 06:58:39 上传 下载次数: 1 2.jpg (37.18 KB, 下载次数: 1) 2012-3-18 06:58:39 上传 下载次数: 1

     

  • 网友回复: 橡胶的30分钟周期(参数优化后)
    1.jpg (245.33 KB, 下载次数: 0) 2012-3-18 07:00:28 上传 下载次数: 0

     

  • 网友回复: PTA30分钟周期(参数优化后)
    0.jpg (204.22 KB, 下载次数: 0) 2012-3-18 07:04:04 上传 下载次数: 0 1.jpg (70.13 KB, 下载次数: 0) 2012-3-18 07:04:05 上传 下载次数: 0 2.jpg (67.17 KB, 下载次数: 0) 2012-3-18 07:04:05 上传 下载次数: 0 4.jpg (47.16 KB, 下载次数: 0) 2012-3-18 07:04:03 上传 下载次数: 0

 

如果以上指标公式不适用于您常用的行情软件

或者您想改编成选股公式,以便快速选出某种形态个股的话,

可以联系我们相关技术人员 QQ: 262069696  点击在线交流进行 有偿 改编!

 


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

相关文章

    没有相关内容