程序库: Report - 页 3

 

关于交易、自动交易系统和测试交易策略的论坛

智能交易系统:量子 103

fxsaber, 2017.09.26 09:55 pm.

MT5 真实点差回测结果

标准 MT5 报告

自定义报告(MT4 风格)


附上 MT4 风格的 MT5 回溯测试报告,因为标准报告难以阅读 - 在预告片中可以看到这两份报告。

您可以清楚地看到滑点和佣金对该 EA MT5 回溯测试结果的影响。

 
这个奇迹是否能正确使用净额结算账户?
 
Aleksey Vyazmikin:
这个奇迹能在净额结算账户中正常工作吗?

如果有进出交易就不行。这是 MT4Orders 目前的限制,而不是报告。

 
fxsaber:

如果存在进出交易,则不行。这是 MT4Orders 当前的限制,而不是报告。

很遗憾。是否有计划朝这个方向开发 MT4Orders,还是尚未列入计划?

 
Aleksey Vyazmikin:

很遗憾。是否有计划朝这个方向开发 MT4Orders,还是尚未列入计划?

限制只涉及历史,不涉及交易。我不能做出任何承诺。

 

关于交易、自动交易系统和测试交易策略的论坛

智能交易系统:量子 103

fxsaber, 2017.09.26 09:55 pm.


附上 MT4 风格的 MT5 回测报告,因为标准报告难以阅读 - 在预告片中可以看到这两份报告。

您可以清楚地看到滑点和佣金对该 EA 的 MT5 回溯测试结果的影响。


我在 KB 中保存了一年多的旧版本,这是一个意外。已更新。


我建议在 MT4(尤其是 MT5-Hedge)上运行此脚本并查看 Report.htm。

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

void OnStart()
{
  REPORT::ToFile("Report.htm");
}


并查看 Report.htm。原因一目了然。

 
数字解释

交易、自动交易系统和交易策略测试论坛。

图书馆:虚拟

fxsaber, 2018.11.13 16:01

1663332018.11.09 21:47:21.837购买0.10 (22 672.50)欧元兑美元1.133661.133592018.11.09 22:00:00.1571.13359-0.40-0.70tp 1.13359-700:12:38.320
1673352018.11.09 22:00:00.157销售0.10 (22 671.00)欧元兑美元1.133591.133512018.11.09 22:00:09.2021.13351-0.40+0.80tp 1.13351+800:00:09.045
1683372018.11.09 22:00:09.202购买0.10 (22 670.00)欧元兑美元1.133511.133492018.11.09 22:05:14.3341.13349-0.40-0.20tp 1.13349-200:05:05.132
1693392018.11.09 22:05:14.334卖出0.10 (22 668.50)欧元兑美元1.133491.133382018.11.09 22:06:33.6221.13336-0.40+1.30 (+1.10)tp 1.13338+13 (+11)0, +200:01:19.288
1703412018.11.09 22:06:33.622购买0.10 (22 666.70)欧元兑美元1.133361.133292018.11.09 22:29:56.8061.13331-0.40-0.50 (-0.90)tp 1.13329-5 (-9)+2, +200:23:23.184
1713432018.11.09 22:29:56.806卖出0.10 (22 664.60)欧元兑美元1.133311.133162018.11.09 22:40:39.0051.13315-0.40+1.60 (+1.30)tp 1.13316+16 (+13)+2, +100:10:42.199
1723452018.11.09 22:40:39.005购买0.10 (22 665.90)欧元兑美元1.133151.133422018.11.09 22:56:02.9151.13344-0.40+2.90 (+2.60)tp 1.13342+29 (+26)+1, +200:15:23.910
1733472018.11.09 22:56:02.915出售0.10 (22 670.90)欧元兑美元1.133441.133662018.11.09 23:50:03.2451.13365-0.40-2.10 (-2.40)tp 1.13366-21 (-24)+2, +100:54:00.330
1743492018.11.09 23:50:03.245购买0.10 (22 671.40)欧元兑美元1.133652018.11.09 23:54:57.4461.13349-0.40-1.60 (-1.70)测试结束-16 (-17)+1, 000:04:54.201
1753492018.11.09 23:51:11.960卖出限制0.10欧元兑美元1.133771.133612018.11.09 23:54:57.4461.1334900:03:45.486
17.40 (3 947 682.20)-69.600.00-48.60 (-73.50)-486 (-735)+249 (+24.90)


突出显示的"+2,+1"--开盘时下跌+2 个点,收盘时下跌+ 1 个点。同一行中突出显示的"-21 (-24)"表明,由于滑动,利润为-21,但如果没有滑动,利润应为-24。也就是说,MT5 测试仪只给了我们 3 个点。突出显示的"-2.10 (-2.40)"表明,由于滑动,账户货币的利润为-2.1,但如果没有滑动,则为-2 . 4


最后,底部红线显示利润为-485 点,但这是在滑动的情况下。另一方面,如果没有滑动,利润则为-735 点。报告显示,总滑动为+249 点。

 
// 跨平台脚本创建交易历史报告,可按符号、主代码、时间和其他参数进行筛选。

// MQL4&5 代码
#property strict
#property script_show_inputs

input string inFileName = "Report.htm"; // 文件名
input bool inSymbolFilter = true;       // true - 当前符号,false - 所有符号
input long inMagicFilter = -1;          // 魔法过滤器(负数 - 所有魔法)
input bool inPending = false;           // 待定(true - 包括)
input bool inBalance = false;           // 平衡(true - 包括)
input datetime inStartTime = 0;         // OrderCloseTime >= 此时
input datetime inEndTime = INT_MAX;     // 订单关闭时间 <= 此时

input bool inOpenBrowser = true; // 使用报告 - DLL 打开浏览器!

#import "shell32.dll"
  int ShellExecuteW( int hwnd, string lpOperation, string lpFile, string lpParameters, string lpDirectory, int nShowCmd );
#import

#ifdef __MQL5__
  #include <MT4Orders.mqh> //https://www.mql5.com/zh/code/16006

  #define  BASEPATH (TerminalInfoString(TERMINAL_PATH) + "\\MQL5\\Files\\")
#else // __MQL5__
  #define  BASEPATH (TerminalInfoString(TERMINAL_PATH) + "\\MQL4\\Files\\")
#endif // __MQL5__

#include <Report.mqh> //https://www.mql5.com/zh/code/18801

void OnStart()
{
  REPORT_FILTER Filter;

  Filter.Symb = inSymbolFilter ? _Symbol : NULL;
  Filter.Magic = inMagicFilter < 0 ? -1 : inMagicFilter;
  Filter.Pending = inPending;
  Filter.Balance = inBalance;
  Filter.StartTime = inStartTime;
  Filter.EndTime = inEndTime;

  if (REPORT::ToFile(inFileName, Filter) && inOpenBrowser && MQLInfoInteger(MQL_DLLS_ALLOWED))
    ShellExecuteW(0, "Open", BASEPATH + inFileName, NULL, NULL, 3); // https://www.mql5.com/ru/forum/23223#comment_1741093
}
现在方便了。
附加的文件:
 

我有个想法,为什么不能每天(按需)发布一次报告,并编写一个脚本来处理这些报告,将不同账户的信息整合到一个报告中?

这项任务对于分析顾问在不同账户(包括具有相同法师的账户)上的工作成果,以及解决 某些经纪公司删除历史记录的问题 都很重要。

 
Aleksey Vyazmikin:

这只是一个想法,为什么不能让报告每天折现一次(按需折现),并用脚本处理这些报告,将不同账户的信息合二为一呢?

这项任务对于分析 EA 在不同账户(包括使用相同法师的账户)上的工作结果以及解决某些经纪公司删除历史记录的问题非常重要。

上面的脚本可以像***一样进行分析。只是一切都非常快速和清晰。当然,这是真的。我自己在 Tester 和虚拟中使用 bibla。

滑点信息(仅 MT5-Hedge) - 我还没有看到任何类似的信息。也许我会为 Netting 做一个。但这不是报告的任务,而是另一项工作....。