请观看如何免费下载自动交易
请在Facebook上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
显示:
2764
等级:
(45)
已发布:
2019.01.04 12:01
\MQL5\Include\fxsaber\BestInterval\
Files.mqh (0.85 KB) 预览
Deal.mqh (2.28 KB) 预览
Interval.mqh (3.49 KB) 预览
\MQL5\Experts\fxsaber\
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

市场的形态依赖于一天或者一个星期的时间段,为此,限制交易策略根据时间交易就是很合理的了。

例如,有一个剥头皮的交易策略,适合在亚洲-美国交易市场期间交易交叉货币对,或者您想禁用在高波动性时的您的策略。


这就意味着我们应当定义如何找到最佳的交易策略交易时间。作为规则,这样的时间段是根据交易者机构的算法或者根据内建的测试器来选择的,机构对策略没有办法。为了使用内建的测试器来解决这种问题,这会自动增加通过数,也就是意味着增加优化时间和花费 (云计算). 另外还有些方面要提高,


优的时候,您有一个好的交易策略,但是没有时间过滤器的话,它的高质量就会被隐藏。如果您可以找到针对这个策略的有利的交易时间段,它就可以作为进一步研究的基础。


实现

这个跨平台库允许您快速地找到策略运行的最优时间段。

带有注释的实例

#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006

#include <fxsaber\BestInterval\BestInterval.mqh> // 计算最佳交易时间段

void OnDeinit( const int )
{
  BESTINTERVAL BestInterval; // 创建一个对象,用于计算最佳交易时间段
  
  BestInterval.Set(); // Place trading history
  
  const int AmountIntervals = 3; // 应当排除掉的不适合要被抛弃的交易数
  
  for (int i = 0; i < AmountIntervals; i++)
    if (BestInterval.DeleteWorseInterval()) // I抛弃了一些内容
      Print(BestInterval.ToString());       // 打印索取得的交易数据
    else
      break;                                // 否则,退出
}


现在,让我们看一下在剥头皮EA中对这个库的真实使用。


Scalper

让我们在MT5测试器中运行 round-the-clock ,我们将会看到以下内容

看一下单次通过的记录

Amount of Delete Intervals = 0
00:00:00 - 23:59:59 : Profit = 20121.00, Total = 1138, PF = 1.68, Mean = 17.68
SUMMARY: 00:00:00 - 23:59:59 : Profit = 20121.00, Total = 1138, PF = 1.68, Mean = 17.68

这里是粗的通过数据 - 没有抛弃时间段。


现在让我们提供下一个日志中的内容,它们逐渐显示除了星期时间段中的效果。


丢弃了一个时间段:

Amount of Delete Intervals = 1
00:00:00 - 10:08:04 : Profit = 6830.00, Total = 203, PF = 3.10, Mean = 33.65
11:05:24 - 23:59:59 : Profit = 17086.00, Total = 819, PF = 1.93, Mean = 20.86
SUMMARY: 00:00:00 - 23:59:59 : Profit = 23916.00, Total = 1022, PF = 2.10, Mean = 23.40

突出显示的字符串是一种交易期间,我们可以看到,在10-11am之间没人能换法拉利。这样,时间段就不要了。


抛弃了两个缩进:

Amount of Delete Intervals = 2
00:00:00 - 10:08:04 : Profit = 6830.00, Total = 203, PF = 3.10, Mean = 33.65
11:05:24 - 12:21:06 : Profit = 2767.00, Total = 112, PF = 2.46, Mean = 24.71
13:02:59 - 23:59:59 : Profit = 15915.00, Total = 664, PF = 2.17, Mean = 23.97
SUMMARY: 00:00:00 - 23:59:59 : Profit = 25512.00, Total = 979, PF = 2.36, Mean = 26.06


最后,抛弃了三个时间段:

Amount of Delete Intervals = 3
00:00:00 - 10:08:04 : Profit = 6830.00, Total = 203, PF = 3.10, Mean = 33.65
11:05:24 - 12:21:06 : Profit = 2767.00, Total = 112, PF = 2.46, Mean = 24.71
13:02:59 - 17:26:06 : Profit = 7476.00, Total = 348, PF = 1.98, Mean = 21.48
17:47:36 - 23:59:59 : Profit = 9640.00, Total = 288, PF = 3.31, Mean = 33.47
SUMMARY: 00:00:00 - 23:59:59 : Profit = 26713.00, Total = 951, PF = 2.57, Mean = 28.09


请注意,在每个抛弃的时间段中,交易参数是怎样控制的。


让我们在TS中使用计算的过滤器。

我们可以在两个图表 BEFORE和 AFTER 之间做比较。也许,有人会把它们制作成相应的 GIF 动画来澄清。

结果是,交易策略的参数大幅提高了,几乎免费:我们已经使用的尽可能少的时间和经历。


OnTester

之前的例子是基于只在初始EA交易中加入两行文字

#define BESTINTERVAL_ONTESTER // 优化标准 - 最佳时间段的利润.
#include <fxsaber\BestInterval\BestInterval.mqh> // 计算最佳时间段


突出显示的字符串可以让您在EA交易中写任何其它内容。同时,自定义优化标准也可以指定允许优化器不仅按照原有方法寻找好的时间段。标准会立即返回交易策略在计算所得的时间段的结果,并且显示交易策略比使用标准优化有更多的潜力。


为了在计算之后使用侦测到的时间段,在输入参数中设置 BestInteval Action = true



总结

所有的交易策略都应当被广泛验证,包括最佳交易时间段的计算。所以,这个工具是必需的。

应当把所有现有的、过去的和将来的交易策略都关联到搜索最佳交易时间(上面的两行代码)。那可以明显简化获利交易时间段的开发,提高已经开发好的EA的稳定性。


特性

  • 推荐使用 虚拟交易环境 来启用/禁止在侦测到的时间段交易。
  • 这个库的算法非常快,它可以在第三方交易分析工具中为了同样的目的简单实现。
  • 这是一个自定义的想法,也许有类似的。
  • 我没有足够的时间来实现星期内的时间段,我可以在未来加上...
  • 开发库是跨平台的,它在 MT4 和 MT5 都可以使用。
  • 在测试器中对最佳时间段的计算和应用不需要修改原有EA的源代码。


备注

请分享您关于应用 BEFORE and AFTER (上面所描述的) 开发库的经验,可以用屏幕截图的方式或者对应 MT4/5 单一通过记录段等等。

由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/22710

Price_Momentum_Oscillator Price_Momentum_Oscillator

价格动量振荡指标

Extreme EA Extreme EA

这个EA交易使用了 iCCI (商品通道指数, CCI) 和两个 iMA (移动平均, MA) 指标。

HLCrossSigForWPR_HTF HLCrossSigForWPR_HTF

在输入参数中带有时段选择选项的 HLCrossSigForWPR 指标

RJTX_Matches_Smoothed_Alert RJTX_Matches_Smoothed_Alert

包含了提醒、电子邮件和推送通知的 RJTX_Matches_Smoothed 指标