程序库: Report - 页 9

 
link76:
能否在 MT4 回溯测试生成的报告中添加 MagicNumber 或 Comment 栏?

报告中已包含这些列。

 

有些人可能会对此感兴趣。

报告顶部有一个交互式图表。如果放大它,就会出现 "重置缩放 "按钮。如果我们把这个漂亮的图表看成一条从左下角右上角 的直线,那么这个按钮就会挡住最有趣的地方,即图表最近的表现。这就是我把按钮移到左边的原因。模板中的对齐方式也从右侧改为左侧。

 
traveller00:

也许有人会感兴趣。

报告顶部有一个交互式图表。如果放大它,就会出现 "重置缩放 "按钮。如果我们把这个漂亮的图表看成一条从左下角右上角 的直线,那么这个按钮就会挡住最有趣的地方,即图表最近的表现。这就是我把按钮移到左边的原因。模板中的对齐方式也从右侧改为左侧。

我完全不懂 HTML 和脚本。这些都是从其他代码中借来的。

也许我们可以制作一份非常方便的 HTML 报告,其中包含所有细节和图表。但这不是我的能力范围。我也没有遇到过对此感兴趣的人。

当然,市场上也有将报告输出到 MT4/5 本身的产品。

 
已更新。
 

为以防万一,请注意必须按照示例中指定的顺序包含定义。

#include <MT4Orders.mqh> // https://www.mql5.com/zh/code/16006
// #include <fxsaber\Virtual\Virtual.mqh> // https://www.mql5.com/zh/code/22577
#include <Report.mqh>

否则,它可能会在某些地方构建成功,但由于定义的应用顺序不对而无法达到预期效果。

 
#define  REPORT_REJECTS            // 交易订单执行质量分析。

现在您可以看到填充率水平。


在厨房中,它当然是 100%。

 
fxsaber:

FillRate 级别现在可见。

在厨房中,它当然是 100%。

似乎只要是 100% 的地方都是厨房。例如,Signals 上的黄牛几乎都在这样的厨房工作。

 

在使用过程中,我们发现了它的两个特点。

1.增益图始终为零。这是因为还没有制作。应该是这样的。

2. 使用 REPORT_REJECTS 意味着通过止盈 平仓。统计数据只能从这里获取。如果使用限价器和 CloseBy 平仓,将始终显示 100%的补仓。该图显示的只是服务器的收益,如果设置了限价订单,但最终没有成交,并被机器人取消,则不会影响成交图。

 

更改请求。

1.删除 "增益 "图,因为它反正是空的,不会占用空间。

2.添加一天内的时间间隔。我自己在用,也许别人会用得上。这样我就不用每次更新都要测量自己的变化了。

  datetime EndTime;
+  datetime StartInterval;
+  datetime EndInterval;
  bool Anonym;
  REPORT_FILTER( void ) : Symb(ALL_SYMBOLS), Magic(ALL_MAGICS), Pending(true), Balance(true), StartTime(0), EndTime(INT_MAX),
                          StartInterval(0), EndInterval(INT_MAX), Anonym(false), MinLot(0), NegativeSlip(false), MinPositionLength(0), Swap(false)
  bool IsSingle( void ) const
  {
+    datetime OrderTimeOnly=OrderOpenTime() % (60*60*24);
    return((OrderCloseTime() >= this.StartTime) && (OrderCloseTime() < this.EndTime) &&
+           (OrderTimeOnly >= this.StartInterval) && (OrderTimeOnly < this.EndInterval) &&
           (!this.NegativeSlip || this.IsNegative()) &&
           ((this.Balance && (OrderType() > OP_SELLSTOP)) || (((this.Pending && (OrderType() > OP_SELL) && (OrderType() < OP_BALANCE)) ||
 
traveller00:

2.添加一天内的时间间隔。我自己用,也许别人会用得上。我也不用每次更新都要测量自己的变化了。

在您的变体中,它只按开盘价计算。很明显,这是 BestInterval 方法的结果。但在一般情况下,这可能不太正确。

不过,考虑到这个库有 2.5 个用户在使用,让它变得 "正确 "也没有意义。我将介绍这种过滤器


当时间间隔为午夜时,在这种形式下设置 EndInterval 就不太方便了。