设为首页收藏本站

 找回密码
 注册
查看: 13486|回复: 21

仿照系统自带的海龟系统编写了一套简单的海龟交易系统 [复制链接]

Rank: 3Rank: 3

精华
0
UID
21521
积分
210
帖子
34
主题
3
阅读权限
40
注册时间
2010-12-14
最后登录
2016-9-1
发表于 2012-3-18 06:51:54 |显示全部楼层
  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. //------------------------------------------------------------------------
复制代码

Rank: 3Rank: 3

精华
0
UID
21521
积分
210
帖子
34
主题
3
阅读权限
40
注册时间
2010-12-14
最后登录
2016-9-1
发表于 2012-3-18 06:54:19 |显示全部楼层
本帖最后由 飞跃 于 2012-3-18 11:45 编辑

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

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
21521
积分
210
帖子
34
主题
3
阅读权限
40
注册时间
2010-12-14
最后登录
2016-9-1
发表于 2012-3-18 06:59:23 |显示全部楼层
橡胶的30分钟周期(优化参数后的)

附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
21521
积分
210
帖子
34
主题
3
阅读权限
40
注册时间
2010-12-14
最后登录
2016-9-1
发表于 2012-3-18 07:00:54 |显示全部楼层
橡胶的30分钟周期(参数优化后)
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
21521
积分
210
帖子
34
主题
3
阅读权限
40
注册时间
2010-12-14
最后登录
2016-9-1
发表于 2012-3-18 07:04:56 |显示全部楼层
PTA30分钟周期(参数优化后)
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
21521
积分
210
帖子
34
主题
3
阅读权限
40
注册时间
2010-12-14
最后登录
2016-9-1
发表于 2012-3-18 07:09:16 |显示全部楼层
本帖最后由 飞跃 于 2012-3-18 07:15 编辑

其它品种就不一一测试了,大家可以自己拿着去优化,不过不要过度优化!最后提醒一句,期市有风险,入市需谨慎!呵呵

使用道具 举报

Rank: 2

精华
0
UID
92443
积分
74
帖子
41
主题
10
阅读权限
30
注册时间
2012-1-11
最后登录
2013-7-10
发表于 2012-10-17 11:31:01 |显示全部楼层
LZ辛苦了,支持下

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15203
积分
1411
帖子
397
主题
35
阅读权限
60
注册时间
2010-8-14
最后登录
2017-12-29
发表于 2012-10-17 11:50:56 |显示全部楼层
看曲线不错。

使用道具 举报

Rank: 4

精华
0
UID
112594
积分
333
帖子
281
主题
8
阅读权限
50
注册时间
2012-9-20
最后登录
2013-12-4
发表于 2012-10-17 15:27:52 |显示全部楼层
测试了几个品种,感觉不是很理想

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
86268
积分
2261
帖子
947
主题
67
阅读权限
70
注册时间
2011-12-13
最后登录
2021-6-6
发表于 2012-10-19 22:09:12 |显示全部楼层
有连续建仓的,橡胶那样的盈利不算高,单口的话这种表现就是相当好的系统了。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-3-29 21:11

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部