快速 JavaScript 版报告 库,用于通过MT4Orders 或Virtual 实现 MT4 风格的交易指令。
运行速度比 Report 快 10 倍,NTML 文件更小,可上传和显示多达 540 万行报告(截图如下)。
功能:(与报告相同)
与报告的区别:

翻转图表被一个包含买入、卖出盈亏及其金额的图表所取代。通过这种方式,您可以了解自己的策略是看涨还是看跌。如果其中一个交易方向无利可图,您可以决定将其关闭。下面显示的是交易品种收盘价的图表,可以方便地跟踪汇率上升时买入如何获利,汇率下降时卖出如何亏损,反之亦然。如果有多个交易品种,它们的价格会显示在一起,最好通过过滤器只选择其中一个品种,以便只查看其价格。

添加了开盘、收盘时的滑点和累计滑点及其总和的图表,该想法来自https://www.mql5.com/ru/blogs/post/760817。

使用示例:
#include <MT4Orders.mqh> #define REPORT_BROWSER // Open report in browswer automatically. Require DLL. //#include <Report.mqh> #include <MT4Orders_QuickReport.mqh>// void OnInit(){} void OnTick(){ strategy (); } void OnDeinit(const int reason ){ QuickReport("report", true); } int TimeHour ( datetime time ){return((int)((time / 3600) % 24));}//current hour in day.每小时 3600 秒 void strategy (){ string Symb = _Symbol; MqlTick Tick; if (SymbolInfoTick(Symb, Tick)){ if(TimeHour(TimeCurrent())<23 && TimeHour(TimeCurrent())>0 ){return;} OrderSend(Symb, OP_BUY, 10, Tick.ask, 0, Tick.bid, Tick.bid, NULL, 1000); OrderSend(Symb, OP_SELL, 10, Tick.bid, 0, Tick.ask, Tick.ask, NULL, 1000); } }
#include <MT4Orders.mqh> #include <fxsaber\Virtual\Virtual.mqh> #define REPORT_BROWSER // Open report in browswer automatically. Require DLL. //#include <Report.mqh> #include <MT4Orders_QuickReport.mqh> double OnTester() { //or OnDeinit() for (int v = 0 ; v <= VIRTUAL::Total(); v++){if (VIRTUAL::SelectByIndex(v)){QuickReport("report_"+(string)v, true, v);}} //显示每个测试人员的报告 return(AccountInfoDouble(ACCOUNT_BALANCE)); }
void QuickReport(string file_name, bool is_open_file_in_browser=true, int virtual_number=0, bool hide_account_and_name=false, bool common_path=false, bool fileANSI=true){...}file_name - 用于记录的文件名
540 万笔交易的报告示例:
(在我的电脑上,虚拟报告超过 10 万行就会耗尽内存并挂起,因此我制作了 JavaScript 版本)。
该报告显示的是 Firefox 浏览器。Chrome 浏览器会挂起,因为它需要更小的文件。
一个文件可以上传超过 540 万行,但 Firefox 浏览器无法处理更多。
加载该报告时,浏览器使用了约 6GB 内存(处理时间约为 1 分钟),然后释放了内存,之后报告就显示在页面上了:(8-10 万行的报告使用了 5-6GB 内存)。

带有缩放功能的详细图表。
点击任何图表都会打开该图表的交互式图表,并可放大查看详细内容。
有两个选项:
您可以选择Logarithmic -对数 刻度(如果余额呈指数增长,可能会有用)。对于Highcharts,您还可以选择Ordinal - 统一步长(如 MetaQuotes 测试报告)。更改这些项目后,您需要再次单击所需的图表以应用所选选项。
来自Google.chart 的示例:(使用鼠标滚轮缩放)。
来自Highcharts 的示例:(通过鼠标选择必要区域来更改缩放比例)。
已执行的 MT5 挂单
对于因触发挂单而出现的订单,类型字段以深蓝色显示挂单类型(买入限价、卖出限价、买入止损或卖出止损)、从设置到触发订单的时间(秒)以及激活订单/头寸的类型。这些信息只在 MT5 终端或测试仪上显示,虚拟测试仪或 MT4 不提供这些信息。

按小时和星期显示的盈亏图。
与 MQ 测试仪不同,盈利和亏损不是在发生时显示,而是按进入交易的时间显示。这样就更容易理解在某一小时进场大多是无利可图的,只需关闭这一小时的进场即可。
此外,还制作了买卖图表。
如果点击其中任何一个图表,就会看到按小时和天数分列的精确金额表。您还可以通过复选框禁用输入的小时和天数--图表和表格将被重建,您无需额外测试即可评估结果。它与 Fxsaber 中的BestInterval 类似,但更粗略(步长为 1 小时),且不带自动化功能。增加了 M10 间隔,以减少步长。

在这些图表中,可以看到在较小的测试期内,每小时或每天都有一些利润爆发。上图显示的是 1 个月的测试,呈上升趋势。因此买入是盈利的,卖出是亏损的。如果将测试时间延长到一年或更长,届时两个方向上的几个大趋势都会过去,所有的东西都会变得均匀,通常都是无利可图的,因此你不太可能关掉某些东西,从而获得显著的利润变化。
以下是同一策略经过 1 年测试后的结果:(几乎所有的东西都应该关掉)。
因此,它很难成为您策略的基础。
订单过滤。
添加了许多筛选器,可按不同参数显示订单。
买入、卖出、买入限价、卖出限价、买入止损、卖出止损、余额 - 您可以从报告中删除任何类型的订单。
Symbols - 将显示所有使用的工具列表,您可以只选择必要的工具。
Magic - 您可以只显示指定 Magic 的订单
Min Lot, Max Lot - 您可以选择所需手数的订单
Negative Slippage - 您可以分别显示开仓或平仓订单的负滑点
Swap - 将显示掉期 > 0 的订单。0
Min LengthTime - 持续时间超过指定时间(以天数、小时数、分钟数和秒数指定)的订单
Max LengthTime - 持续时间少于指定时间的订单
Open Time - 从指定日期开始到结束的订单开仓时间
Close Time - 从指定日期开始到结束的订单平仓时间
TP、SL - 以触发 TP 或 SL 结束的订单
Profits, Losses - 处于盈利或亏损状态的订单(不包括佣金和掉期,它们会使最终盈利为负)
Rejects - 未执行的订单。
重置按钮允许您将筛选器重置为默认值,并在不进行筛选的情况下显示所有订单。
附加选项:

附注:交易评论越多,可显示的行数越少。一份有 540 万行的报告中,除了 "测试结束 "外,没有任何注释。因此,如果报告的交易量超过 400 万笔,最好不要添加注释。
附注:可在 MT5 和 MT4 中使用。感谢 fxsaber 为 MT4 所做的修改。
改进选项:
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/47816
iCHO 趋势 CCIDualOnMA 过滤器
基于标准指标 iCHO(柴金振荡器,CHO)和自定义指标 "CCIDualOnMA "的策略
手动位置跟踪面板
基于 CDialog 类的面板。对当前符号进行操作。删除、设置止盈、设置一组头寸的盈亏平衡点