MQL5时间过滤器的编码与实现

QuantPoint3周前MQL5开发14

MQL5时间过滤器可以定制允许交易的时间,屏蔽掉那些波动特别小的时间段。对于大多数EA来说,时间过滤器都可以很好的提升盈亏比,扩大盈利。下面是其具体实现过程。


第一步:在EA顶部加入时间的设定:

input int startMiniutes = 600;                     //开始交易分钟数
input int durationMiniutes = 240;                  //交易持续时间,0=不启用时间过滤


第二步:在OnTick函数中加入过滤代码:

   if(durationMiniutes>0) {   //检查是否在交易时间内
      MqlDateTime dt;
      TimeToStruct(TimeCurrent(), dt);
      if(dt.min+dt.hour*60<startMiniutes || dt.min+dt.hour*60>startMiniutes+durationMiniutes) return;
   }


可能有些读者会有疑问,对于时间设定,为什么采用整型的分钟,而不是字符串或枚举之类的呢?

这里面主要考虑以下因素:

  1. 分钟虽然没有字符串(如0130)之类的设置简便,但代码实现却特别简单;

  2. 设置分钟和持续时间,在回测的时候特别方便,比如我们测试欧美时段,如果服务器采用gmt2时区,只需令startMiniutes=360,durationMiniutes=720,就代表交易时间从gmt的早8点到晚8点交易。在优化参数的时候,分钟数更容易控制时间范围。


标签: MQL5过滤器

相关文章

MQL5星期过滤器-可设定星期几不交易

MQL5星期过滤器-可设定星期几不交易

MQL5中的星期过滤器是用于自动化交易策略的时间管理工具,通过设定交易时段限制来避免特定交易时段的价格波动干扰。该工具允许用户指定交易策略仅在特定星期几执行交易。此过滤器分成三个部分:在头部添加过滤器...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。