设为首页收藏本站

 找回密码
 注册
查看: 137411|回复: 161

一个稳定盈利的日内交易系统代码.大家一起来完善. [复制链接]

Rank: 5Rank: 5

精华
0
UID
13821
积分
672
帖子
36
主题
18
阅读权限
60
注册时间
2010-7-6
最后登录
2013-1-6
发表于 2010-7-15 20:26:31 |显示全部楼层
前两天我发过一篇帖子介绍了hans123系统,今天我给大家来点硬货,一个实实在在稳定盈利的日内系统,其中还有很大完善空间,由于我学TB刚刚一周多,技术方面还不是很熟练,希望各位程序高手协助我完善系统,我很喜欢国外论坛的那种氛围,交易高手分享他们的思路和ea雏形,程序高手无偿的帮助他们实现他们的想法,在这个过程中相互提高.再此我希望更多高手分享他们系统的源码,以此来相互提高,让我们早日超过欧美同行的水平.恩,我以为真正掌握交易之道的人是不怕分享他们的思路和系统的,因为一个失效的系统略加修改就可以成为一个稳定获利的系统.为了证明这一点我将在接下来的文章中公布一个和这个系统完全相反的系统,你会发现只要调整交易周期和参数,系统就可以稳定获利.道家说道可道,非常道.名可名,非常名.无,曰天地始.有,曰万物主.常无,欲观其妙.常有,欲关其缴.玄之又玄,众妙之门.用在交易系统上来说就是可以写出来的系统肯定不是永远有效的系统,只有掌握了交易之道的人,才能随着市场变化调整他的交易策略.永远与道同在.所谓常无,就是要经常抛弃以前的所有的理论和观念,以客观观察市场的奥妙.常有,就是要带着你以前设计交易系统的经验和技巧.去审视你现在所用的系统.谨以此篇献给各位交易市场的新手老手.希望我们大家一起合作,制作出一个完善可靠的交易系统来.就算没有任何系统经验的人也来分享一下你们的想法,很多时候新手的一句话也是我灵感的源泉.实在不知道说啥的就帮顶一下吧,此帖能一直置顶我就每周发一个交易系统,呵呵.不废话了,开始说代码和思路.
***1基本思路:RangeBreak加入交易时间过滤,多周期趋势过滤,突破range过滤.Range优化.
参加过高级应用培训的人应该很熟悉这个系统,这是我在外汇市场用了很久的系统,想移植到国内来,通过搜索找到了培训的文档.然后写了出来,发现效果不是很好,于是我就对其进行了优化,优化的结果还是相当不错的资金曲线稳定增长,利润也不小,大家可以自己测试一下.用于股指期货铜,锌等品种的15分钟都是相当不错的。恩下面叙述一下基本的交易思路。
以昨日震幅为基础,今日开盘价+N*昨日震幅等于上轨 今日开盘价-昨日震幅*N等于下轨,突破上轨做多突破下轨做空。反之平仓,14点55分平掉所有仓位。N=0.8
已完成优化的思路
1。限制交易时间,最后开仓时间在下午两点以前(根据观察接近收盘的突破一般是无效的)
2。限制前一日的最小震幅(根据观察昨日震幅太小的话会出现很多无效信号)
未完成的交易思路 各位高手前辈不吝赐教协助我完成下哈。
1。根据观察与大周期趋势相反的突破一般来说是假突破。限制大周期趋势方法,日线n周期ma方向.
   处理方法:
   1.过滤掉所有与大周期趋势相反的信号
   2.所有大周期相反的信号反向操作既原来做空现在做多,原来做多现在做空。
根据我外汇自动交易的经验处理方法2更加有效,但编程比较复杂希望高手能帮助我完成这两个思路的编程。
PS:大家有什么进一步优化这个系统的思想也可以提出来我会尽我所能去实现它。
代码缺陷:
14点55分平仓在15分钟不能运行,在1分钟运行正常。不明白为什么,请高手赐教。
有其它缺陷大家也请提出来

以下是代码.
//------------------------------------------------------------------------
// 简称: RB
// 名称:15Min RangeBreak
// 类别: 交易指令
// 类型: 其他
// 输出:
//------------------------------------------------------------------------
Params
      Numeric PercentOfRange(0.8);//突破参数N
      Numeric ExitOnCloseMins(14.55);//平仓时间
      Numeric MinRange(0.2);//最小Range
      Numeric LastTradeMins(14.00);//最后交易时间
      Numeric BeginTradeMins(9.00);
      Numeric Lots(1);
      Numeric Stoplossset(1);
Vars
      NumericSeries DayOpen;
      NumericSeries preDayRange;
      NumericSeries HigherAfterEntry;
      NumericSeries LowerAfterEntry;
      Numeric preDayHigh;
      Numeric preDayLow;
      Numeric UpperBand;
      Numeric LowerBand;
      Numeric MyPrice;
      Numeric StopLine;
Begin
      DayOpen=OpenD(0);
      preDayHigh=HighD(1);
      preDayLow=LowD(1);
      preDayRange=HighD(1)-LowD(1);
      UpperBand=DayOpen+preDayRange*PercentOfRange;
      LowerBand=Dayopen-preDayRange*PercentOfRange;
     If(BarsSinceEntry==1)
     {
         HigherAfterEntry=AvgEntryPrice;
         LowerAfterEntry=HigherAfterEntry;
      }Else If(BarsSinceEntry>1)
     {
          HigherAfterEntry=max (HigherAfterEntry[1],High[1]);
          LowerAfterEntry=min(LowerAfterEntry[1],Low[1]);
     }
     If(Date!=Date[1])
     {DayOpen=Open;
      preDayRange=preDayHigh-preDayLow;
      If(preDayRange<Open*MinRange*0.01)
         PreDayRange=Open*MinRange*0.01;
      }Else
      {
       DayOpen=DayOpen[1];
       preDayRange=preDayRange[1];
       }
     If(MarketPosition!=1&&High>=UpperBand&&Time<LastTradeMins/100)
     {
              Myprice=UpperBand;
              If(Open>Myprice)Myprice=Open;
              Buy(1,Myprice);
              Return;
      }
      If(MarketPosition!=1&&Low<=LowerBand&&Time<LastTradeMins/100)
     {
              Myprice=LowerBand;
              If(Open<Myprice)Myprice=Open;
              Sellshort(1,Myprice);
              Return;
      }
      If(MarketPosition==1)
      {
            
             StopLine=UpperBand-DayOpen*StopLossSet*0.01;
             If(Low<=StopLine)
             {
                  MyPrice=StopLine;
                  If(Open<MyPrice)MyPrice=Open;
                  BuyToCover(Lots,MyPrice);
              }
       }
      
      //收盘平仓
      If(Time>=ExitOnCloseMins/100)
      {
               Sell(1,Open);
               BuyToCover(1,Open);
       }
       SetExitOncLOSE;
End
   


//------------------------------------------------------------------------
// 编译版本        GS2004.06.12
// 用户版本        2010/07/11 16:44
// 版权所有        oliverzrl 赵闰龙 qq771841107
// 更改声明        TradeBlazer Software保留对TradeBlazer平台
//                        每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------

[ 本帖最后由 oliverzrl 于 2010-7-15 20:27 编辑 ]

Rank: 5Rank: 5

精华
0
UID
13821
积分
672
帖子
36
主题
18
阅读权限
60
注册时间
2010-7-6
最后登录
2013-1-6
发表于 2010-7-15 20:29:08 |显示全部楼层

下面是股指连续的测试报告

下面是股指连续的测试报告
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
938
积分
3765
帖子
295
主题
42
阅读权限
80
注册时间
2007-12-18
最后登录
2017-9-3
发表于 2010-7-15 21:58:50 |显示全部楼层
很不错,谢谢分享。
跟DT差不多,改为日内了。
这样的简单系统我觉得没必要用过滤,做好资金管理分散即可。

在15分图中,没有bar有14点55分这个时间,测试的话,收盘价平仓差不多了。

使用道具 举报

Rank: 2

精华
0
UID
13141
积分
60
帖子
9
主题
1
阅读权限
30
注册时间
2010-6-27
最后登录
2019-3-30
发表于 2010-7-16 00:06:24 |显示全部楼层
If(MarketPosition!=1&&Low<=LowerBand&&Time<LastTradeMins/100)
似乎应该改为 If(MarketPosition!=-1&&Low<=LowerBand&&Time<LastTradeMins/100)

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
12330
积分
838
帖子
254
主题
15
阅读权限
60
注册时间
2010-6-16
最后登录
2017-4-25
发表于 2010-7-16 06:59:55 |显示全部楼层
感谢楼主分享!作为新手受益匪浅,希望楼主继续发表好的交易模型。

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
7437
积分
2872
帖子
537
主题
133
阅读权限
80
注册时间
2010-3-15
最后登录
2013-11-15
发表于 2010-7-16 08:27:27 |显示全部楼层
15分钟周期要在45分钟K线上平仓

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
1041
积分
1642
帖子
448
主题
133
阅读权限
70
注册时间
2008-1-9
最后登录
2016-12-26
发表于 2010-7-16 13:02:04 |显示全部楼层
If(Date!=Date[1])
     {DayOpen=Open;
      preDayRange=preDayHigh-preDayLow;
      If(preDayRange<Open*MinRange*0.01)
         PreDayRange=Open*MinRange*0.01;
      }Else
      {
       DayOpen=DayOpen[1];
       preDayRange=preDayRange[1];
       }
请问以上代码是什么意思呢?

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
1041
积分
1642
帖子
448
主题
133
阅读权限
70
注册时间
2008-1-9
最后登录
2016-12-26
发表于 2010-7-16 13:38:42 |显示全部楼层
还有麻烦请教
      If(preDayRange<Open*MinRange*0.01)
         PreDayRange=Open*MinRange*0.01;

这句是什么意思呢?

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
938
积分
3765
帖子
295
主题
42
阅读权限
80
注册时间
2007-12-18
最后登录
2017-9-3
发表于 2010-7-16 13:44:11 |显示全部楼层
就是,如果昨天的波幅太小,给定一个波幅

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
1041
积分
1642
帖子
448
主题
133
阅读权限
70
注册时间
2008-1-9
最后登录
2016-12-26
发表于 2010-7-16 13:55:31 |显示全部楼层
嗯 谢谢哦 理解了~~~~

使用道具 举报

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

bottom

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

GMT+8, 2024-3-28 23:48

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部