📅 财经日历 📊 实时波动 📈 大盘云图 📶 行情走势 🆚 投机情绪 🚀 今日热点

    Hans123 BreakOut TR0.9版不自量力部分试解

    2011-10-15 · 15021 阅读
    我最近在学习研究Hans123系统,之前用的是《24堂课》提供的源码,今天从论坛上又下得另外几个版本,如获至宝,拿来学习研究一下。用的是号称有人做过测试1年4倍的TR 0.9版,刚好另一帖看到有朋友求解,把自己的心得和大家分享一下。
      
      说不自量力,因为我接触外汇仅2个半月,接触MT4和MQL4不足一个月,接触Hans123仅半个月,读这个代码仅5个小时,自知这点水平看代码难免谬误不少,对系统也缺乏深刻的理解。姑且献丑,也希望能抛砖引玉,有高人肯不吝赐教,让我进一步学习,则不胜感激。
      
      源代码较长,这里仅发前面的外部参数部分,加一点个人心得
      
      extern double    Lots=2;   
      这个没什么说的,每笔交易的手数
      
      extern int       blOneTradeOnly=1;
      这个参数若为1,则当一个挂单成交后,会取消另一方向的挂单,同时不再下新的挂单
      
      extern bool      AdjustDSTwhenBacktesting?=true;   
      若为真,则在历史测试模式中,会在4月-10月中开/平仓时间提前1小时,以适应夏令时。对实时交易无影响
      
      extern bool      Skip1stFriOfMonthIfBacktesting?=true;   
      这个变量设为true,则每月第一个周五不做交易
      
      extern int       ClosedBarLowTrailAfterBE=0;
      一个移动止损点位,设为非0时,则以K线最低价为基准,保持其数值大小点位的移动止损。就是普通的移动止损,点位由自己设定
      
      extern int       Multiplier15mATR3TrailAfterBE=0;
      一个移动止损点位,设为非0时,以15分钟图3期ATR乘以这个数值作为移动止损点位,以K线Open价为基准
      
      extern int       MultiplierH1ATR4TrailAfterBE=4;
      与上一参数类似,不过是以小时图4期ATR乘以这个数值作为移动止损点位,也是以K线Open价为基准。默认为4,也就是移动止损设为“4小时真实平均波幅的4倍”
      
      extern int       OrderHoursExpiry=0;  
      挂单保持时间,若非0,则超出设定值就取消挂单
      
      //extern int       blTakePartialProfitAtBEtime=0; //Disabled since the code is only backtest-safe and it doesn\'t help anyway
      这是一个隐藏参数,用来实现当达到一定盈利时平仓一半的功能,主程序中隐藏了这个功能的代码,可以自调
      
      extern bool      TakeRemainingSettingsFromCode?=false;
      设为真时,则可以对不同品种设置不同的初始止损、盈利、盈亏平衡条件等参数。否则使用统一设置
      
      extern int       TradeOpenTime=10;
      开始交易时间,从代码看,应该是此时间之后1小时内可以下单,超出1小时则不再下单。另外在历史测试模式中,4月到10月使用夏令时,开始交易时间自动提前1小时。不知道是不是因为真实交易中,平台本身时间会改变,所以不用改变这个参数
      
      extern int       LookBackHrs=2;
      用来指定寻找在多长时间内的最高价和最低价以设定开仓价,默认是2,传统Hnas123应该是4
      
      extern int       EOD=21;
      这个很多见了,平仓/取消挂单的时间,传统Hans系统一般是北京时间早上7点,这个不知道是什么时区的
      
      extern int       blCloseAtEOD=0;
      设为1,则EOD平仓功能可用,设为0则EOD无效
      
      extern int       PipsAddedToRange=0;
      这个就是入场价在最高/低价上加多少个点的设置了,欧元/英镑为5,其余为10
      
      extern int       StopLossMax=60;
      初始止损点数
      extern int       BreakEven=20;
      盈亏平衡点数,当盈利达到设定值时,将止损挪至盈亏平衡点
      
      extern int       TakeProfit=999;
      获利点数,也就是限价
      
      extern int       RangeMax=60;
      买/卖挂单之间最大相距区间,如果超过这个区间,可以选择是否下单
      
      extern int       blIfRangeMaxStillOpenFarTrade=1;
      这就是控制上面那个功能的参数,设为1,则即使两个方向的挂单间距过大也允许下单(但只允许下离限价较远的那个方向)
      
      注意最后几项对交易的设置比如止损、获利等,在程序外部有一个统一的默认设置,当TakeRemainingSettingsFromCode?参数为true时,则对不同品种使用不同的参数。
      
      目前主要困惑我的是时间的设置,因为不同平台用的时区是不一致的,不知道平台对代码中的时间是怎么认的。是不是按照本平台的时区来认呢?比如代码中写一个1:00,则GMT+1的平台就认为是+1时区的1:00,而GMT+4的时区就认为是+4时区的1:00?如果是这样那倒也方便修改。
      
      另外这个版本里似乎没有用17:00点和21:00分别下单,而只设置了一个TradeOpenTime,在这个时间之后1小时内下单,而且被触及止损之后不会再下一个同样的单。这样在某些震荡行情中不会被反复触及止损,当然也失去了一些盈利机会。
      
      最后的心得。我学习Hans123系统大约有半个月,用蒂娜的数据复盘了一个月,然后一直做实时测试,首先是发现了自身一些在计划执行、临场应变上的不足,其次也在琢磨怎么能改进这个系统。我目前的主要想法就是振幅,不过一直觉得需要一点更“先进”的东西,今天看了这个系统,也是加了一个振幅条件,而且条件非常的简单。看来我不知不觉中还是违背了“奥卡姆剃刀”原则,陷入了心理陷阱。潜意识和情绪这个敌人,总是在不知不觉中占领自己的内心,《24课》中的潜意识交流法,应该是首先格外注重练习的。
    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 34 个

    美丽天使 LV4

    发表于 2012-11-22 01:36:01 | 显示全部楼层

    好人一个  

    chinahugo LV4

    发表于 2012-11-22 01:36:01 | 显示全部楼层

    #无语  

    饿狼 LV4

    发表于 2012-11-22 01:36:01 | 显示全部楼层

    加油站加油  

    2641318963 LV5

    发表于 2012-11-22 01:36:01 | 显示全部楼层

    就为赚分嘛  

    EA定制 LV6

    发表于 2012-11-22 01:36:01 | 显示全部楼层

    这个不可信,没有保险的保赚钱的软件   

    操盘手 LV9

    发表于 2012-11-22 01:36:01 | 显示全部楼层

    希望可以用些时间了~````  

    music LV5

    发表于 2012-11-22 01:36:01 | 显示全部楼层

    不知道说些什么  

    MCEydvyt LV0

    发表于 2014-11-12 19:30:48 | 显示全部楼层

    赚钱,赚积分。顶....

    twrej LV3

    发表于 2014-12-3 18:55:18 | 显示全部楼层

    看看什么EA,,,
    1234下一页
    您需要登录后才可以回帖 登录 | 注册

    提醒: 禁止引战、谩骂、灌水内容

    微信二维码

    有问题联系客服