该库与标准 MT5 Tester 报告中的此类图表似乎有共同之处

下面是如何获取此类图表数据的示例
#include <MT4Orders.mqh> //https://www.mql5.com/zh/code/16006 #include <fxsaber\BestInterval\BestInterval.mqh> //https://www.mql5.com/zh/code/22710 void OnStart() { BESTINTERVAL BestInterval; // 创建一个计算最佳交易间隔的对象 BestInterval.Set(); // 发布投标历史 BestInterval.DeleteWorseInterval() // 扔掉一个坏的间隔 double Profit[24], Loss[24]; ArrayInitialize(Profit, 0); ArrayInitialize(Loss, 0); for (int i = BestInterval.GetAmount() - 1; i >= 0; i--) { const DEAL Deal = BestInterval[i]; // 重新计算的交易历史中的第 i 笔交易 const int hour = Deal.OpenTime % 3600; // 第 i 笔交易的小时数 // 将利润分配给相应的数组 if (Deal.Profit > 0) Profit[hour] += Deal.Profit; else Loss[hour] -= Deal.Profit; } }
但事实上,该库并非用于单次运行或可视化。它 99% 是 TS 优化所必需的,因为它允许您挖掘出任何 TS 的冷却模式,如果这些模式嵌入其中的话,尽管是秘密的。
库中显示的日志是优化后的分析阶段:单次运行。该日志只是显示 TS 的一个特定实例(一组输入参数)在计算时间间隔内的表现。也就是说,它是一个附加控制,但处于最后阶段。其基础是优化。
该库使用 MT4Orders 来检索交易历史。
不使用 MT4Orders 可能有各种原因。例如,第三方交易分析器。
无论如何,我们都提供了这种情况:
#include <fxsaber\BestInterval\BestInterval.mqh> // 计算最佳交易间隔 void OnDeinit( const int ) { BESTINTERVAL BestInterval; // 创建一个计算最佳交易间隔的对象 // 成交数组 DEAL Deals[]; // 我们需要为每个关闭交易编写两个字段 // Deals[i].Profit - 平仓交易的利润 // Deals[i].OpenTime--交易平仓位置的开仓(而非平仓)时间 // BestInterval.Set();//看跌交易历史 - 使用 MT4Orders BestInterval.Set(Deals); // 发布自己准备的竞标故事 const int AmountIntervals = 3; // 要放弃多少个最坏情况下的交易区间 for (int i = 0; i < AmountIntervals; i++) if (BestInterval.DeleteWorseInterval()) // 如果有东西被扔掉 Print(BestInterval.ToString()); // 让我们打印出获得的交易数据 else break; // 否则,我们就出局了 }
也就是说,您可以输入任何数据来计算最佳区间。该库与平台无关。
请注意,bibla 算法不涉及任何内部参数优化。没有超调,因为基础是单通道:O(n)(n 是交易平仓头寸 的数量)。最慢 "的环节是快速排序:O(n*log(n))。这就是为什么它非常适合优化,因为它不会减慢进程。
开发人员可以采用该算法(因为它是单通道的),将其结果放入单通道报告中,并创建一个标准指标。
标识符 | 统计指标描述 | 类型 |
STAT_PROFIT | 测试结束时的净利润,即STAT_GROSS_PROFIT 和 STAT_GROSS_LOSS 的总和(STAT_GROSS_LOSS 始终小于或等于零)。 | 双倍 |
stat_bestprofit | 最佳区间的利润。 | 双 |
该库的构思非常清晰,实施起来也非常简单易用。感谢你们所做的工作。
不过,我对作者有一个建议:我们需要一个在特定智能交易系统上使用它的例子--从开始启用库到形成过滤器。
该库的构思非常清晰,实施起来也非常简单易用。感谢你们所做的工作。
不过,我对作者有一个建议:我们需要一个在特定智能交易系统上使用它的例子--从启用库到形成过滤器。
我支持 101% :)
您需要一个在特定智能交易系统中使用它的示例--从开始启用库到 形成过滤器。
请查看 BestInterval_Example.mq5。
Чтобы применить найденный интервал после его расчета, нужно во входных параметрах указать BestInteval Action = true.

功能特点
S
请在评论中以图片和相应的 MT4/5 单程日志的形式分享应用(如上所述)库之前和之后的结果。
将计算结果应用到智能交易系统变得更加容易。为此,您只需点击几下即可。
小结如下
1. 任选一个智能交易系统,在其开头写上这几行字
#include <MT4Orders.mqh> //https://www.mql5.com/zh/code/16006 #define BESTINTERVAL_ONTESTER // 优化标准是最佳区间的利润。 #include <fxsaber\Virtual\Virtual.mqh> //https://www.mql5.com/zh/code/22577 #include <fxsaber\BestInterval\BestInterval.mqh> //https://www.mql5.com/zh/code/22710
2.设置要抛出的区间数和不应用区间的选项。

3.3. 设置优化或立即单次运行。如果您感兴趣,Tester 日志中会有计算数据。
Amount of Delete Intervals = 0 00:00:00 - 23:59:59 : Profit = 18385.00, Total = 1070, PF = 1.61, Mean = 17.18, DD = 1769.00, RF = 10.39 SUMMARY: 00:00:00 - 23:59:59 : Profit = 18385.00, Total = 1070, PF = 1.61, Mean = 17.18, DD = 1769.00, RF = 10.39 Amount of Delete Intervals = 1 00:00:00 - 10:07:47 : Profit = 4279.00, Total = 181, PF = 2.02, Mean = 23.64, DD = 834.00, RF = 5.13 11:06:12 - 23:59:59 : Profit = 17349.00, Total = 768, PF = 1.95, Mean = 22.59, DD = 933.00, RF = 18.59 SUMMARY: 00:00:00 - 23:59:59 : Profit = 21628.00, Total = 949, PF = 1.97, Mean = 22.79, DD = 862.00, RF = 25.09
4.4. 单次运行后,打开激活最佳时间间隔选项并再次开始单次运行。

5.5. 您将获得测试仪报告

以及日志中关于应用间隔的数据。
Amount of Delete Intervals = 1 00:00:00 - 10:07:47 : Profit = 4279.00, Total = 181, PF = 2.02, Mean = 23.64, DD = 834.00, RF = 5.13 11:06:12 - 23:59:59 : Profit = 17349.00, Total = 768, PF = 1.95, Mean = 22.59, DD = 933.00, RF = 18.59 SUMMARY: 00:00:00 - 23:59:59 : Profit = 0.00, Total = 0, PF = Max, Mean = 0.00
总之,最佳区间的每个子区间的所有之前和之后的结果 + 详细数据(添加的最大缩水和恢复系数 - 通过平衡)。
什么意思?
'OnTester' - function already defined and has body BestInterval.mqh 504 8
无法编译
什么意思?
无法编译。
你做了什么?
你做了什么?
我还什么都没做,我正在尝试编译这段代码:
#include <MT4Orders.mqh> //https://www.mql5.com/zh/code/16006 #define VIRTUAL_TESTER // 在虚拟交易环境中运行 #define BESTINTERVAL_ONTESTER // 优化标准是最佳区间的利润。 #include <fxsaber\Virtual\Virtual.mqh> //https://www.mql5.com/zh/code/22577 #include <fxsaber\BestInterval\BestInterval.mqh> //https://www.mql5.com/zh/code/22710 #include <..\Experts\fxsaber\TesterEA\TesterEA.mq4>
不使用Virtual ,可以编译、
没有BestInterval 也能编译、
但不能一起编译。
BestInterval:
这个开发库用于计算最佳的交易时间段。
作者: fxsaber