MetaTrader 5策略测试器:缺陷,缺陷,改进建议 - 页 7 1234567891011121314...84 新评论 fxsaber 2019.09.18 20:32 #61 fxsaber: 单一通道需要知道其输入参数。不太可能引入这样的功能,所以有什么想法可以做到这一点吗?WinAPI就可以了。 获取最新的MT5测试仪设置。 #include <WinAPI\fileapi.mqh> #include <WinAPI\handleapi.mqh> // Получает имя файла настроек последнего запуска MT5-Тестера. string GetTesterINIFileName( ulong &Size ) { string Str = NULL; const string Path = ::TerminalInfoString(TERMINAL_PATH)+ "\\MQL5\\Profiles\\Tester\\"; FIND_DATAW FindData; const HANDLE handle = kernel32::FindFirstFileW(Path + "*.ini", FindData); if (handle != INVALID_HANDLE) { ulong MaxTime = 0; Size = 0; do { const ulong TempTime = ((ulong)FindData.ftLastWriteTime.dwHighDateTime << 32) + FindData.ftLastWriteTime.dwLowDateTime; if (TempTime > MaxTime) { MaxTime = TempTime; Str = ::ShortArrayToString(FindData.cFileName); Size = ((ulong)FindData.nFileSizeHigh << 32) + FindData.nFileSizeLow;; } } while (kernel32::FindNextFileW(handle, FindData)); kernel32::FindClose(handle); } return((Str == NULL) ? NULL : Path + Str); } #define GENERIC_READ 0x80000000 #define SHARE_READ 1 #define OPEN_EXISTING 3 // Получает настройки последнего запуска MT5-Тестера. string GetTesterINI( void ) { string Str = NULL; ulong Size; const string FileName = GetTesterINIFileName(Size); if (FileName != NULL) { const HANDLE handle = kernel32::CreateFileW(FileName, GENERIC_READ, SHARE_READ, 0, OPEN_EXISTING, 0, 0); if (handle != INVALID_HANDLE) { uint Read; ushort Buffer[]; ::ArrayResize(Buffer, (int)Size / sizeof(ushort)); if (kernel32::ReadFile(handle, Buffer, (int)Size, Read, 0)) Str = ::ShortArrayToString(Buffer); kernel32::CloseHandle(handle); } } return(Str); } 应用 // Советник при запуске одиночного прогона возвращает свои настройки. input int inInput1 = 1; input int inInput2 = 2; int OnInit() { if (MQLInfoInteger(MQL_TESTER) && !MQLInfoInteger(MQL_OPTIMIZATION)) Print(GetTesterINI()); return(INIT_FAILED); } 结果 2019.04.01 00:00:00 ;Одиночный тест советника: Test9, EURUSD M1, цены открытия, 2019.04.01 - 2019.09.18 2019.04.01 00:00:00 [Tester] 2019.04.01 00:00:00 Expert=Test9.ex5 2019.04.01 00:00:00 Symbol=EURUSD 2019.04.01 00:00:00 Period=M1 2019.04.01 00:00:00 Optimization=0 2019.04.01 00:00:00 Model=2 2019.04.01 00:00:00 FromDate=2019.04.01 2019.04.01 00:00:00 ToDate=2019.09.18 2019.04.01 00:00:00 ForwardMode=0 2019.04.01 00:00:00 Deposit=10000 2019.04.01 00:00:00 Currency=EUR 2019.04.01 00:00:00 ProfitInPips=1 2019.04.01 00:00:00 Leverage=100 2019.04.01 00:00:00 ExecutionMode=0 2019.04.01 00:00:00 OptimizationCriterion=6 2019.04.01 00:00:00 Visual=0 2019.04.01 00:00:00 [TesterInputs] 2019.04.01 00:00:00 inInput1=123||1||1||10||N 2019.04.01 00:00:00 inInput2=2||2||1||20||N fxsaber 2019.09.18 21:53 #62 关于交易、自动交易系统和测试交易策略的论坛 脚本:平衡图HTML fxsaber, 2019.04.08 09:16 fxsaber 2019.09.24 10:34 #63 关于交易、自动交易系统和测试交易策略的论坛 新版MetaTrader 5 build 1640平台:创建和测试自己的金融工具 fxsaber, 2017.08.04 19:55 在优化过程中,是否有可能对计算机进入睡眠状态进行某种保护(至少以声音信号警告的形式)? 完全忘记了 "优化 "正在进行中,并关上了笔记本电脑的盖子......。连接中断了,醒来后恢复了连接,优化工作继续进行。但如果有人提醒我,优化正在进行,我就不会关上盖子。使用云计算时应该说什么... 另外,在优化过程中,当测试器被隐藏时,终端中唯一显示优化正在进行的是图标上的一个绿色条(就像在浏览器中下载文件一样)。关闭终端时,没有警告说正在进行优化。 fxsaber 2019.09.24 11:51 #64 在测试器中显示bool输入参数的重放问题。 这个专家顾问 input int i = 0; input bool b = false; double OnTester() { return(i); } 如截图所示,对其进行优化。 我们选择运行其中一个通道。 在参数中,我们看到的是零而不是假。 fxsaber 2019.09.24 11:54 #65 不知道如何重现。有时,当从优化结果 中运行一次时,日志会正确显示(和替换)输入参数值(如在缓存中,包括非优化的输入)。但与此同时,在参数选项卡中,一些输入参数没有更新。 事实证明,你从Optimize运行Single - 很好(与Optimize的结果相匹配)。 然后进入单一模式,通过 "开始 "按钮运行相同的运行--你会得到不同的值(因为一些输入的值与上一步不同)。 fxsaber 2019.09.24 11:57 #66 关于原木的野生尺寸,已经说过了。当你看日志时,99%的时间你都对日志的开头和结尾感兴趣。因此,由于野性的大小,根本无法看到开头。 复制日志的开头和结尾如何?特别是,要看在什么输入参数下开始。 fxsaber 2019.09.24 14:18 #67 陷入了无法看到以前优化结果的境地。唯一有帮助的是重启。 fxsaber 2019.09.24 16:11 #68 这些是测试仪现在发出的信息。 Slava 2019.09.24 18:12 #69 fxsaber: 这就是测试员现在发出的信息。 测试人员以前也曾给出过这些信息。由于现在可以下载opt文件。这是一个警告,如果运行优化,这个opt-file将被覆盖,优化将重新开始。 fxsaber 2019.09.24 18:16 #70 Slava: 在优化运行 的情况下,这个opt-file将被覆盖。 名字是否匹配? 1234567891011121314...84 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
单一通道需要知道其输入参数。不太可能引入这样的功能,所以有什么想法可以做到这一点吗?WinAPI就可以了。
获取最新的MT5测试仪设置。
应用
结果
关于交易、自动交易系统和测试交易策略的论坛
脚本:平衡图HTML
fxsaber, 2019.04.08 09:16
关于交易、自动交易系统和测试交易策略的论坛
新版MetaTrader 5 build 1640平台:创建和测试自己的金融工具
fxsaber, 2017.08.04 19:55
在优化过程中,是否有可能对计算机进入睡眠状态进行某种保护(至少以声音信号警告的形式)?
完全忘记了 "优化 "正在进行中,并关上了笔记本电脑的盖子......。连接中断了,醒来后恢复了连接,优化工作继续进行。但如果有人提醒我,优化正在进行,我就不会关上盖子。使用云计算时应该说什么...
另外,在优化过程中,当测试器被隐藏时,终端中唯一显示优化正在进行的是图标上的一个绿色条(就像在浏览器中下载文件一样)。关闭终端时,没有警告说正在进行优化。
在测试器中显示bool输入参数的重放问题。
这个专家顾问
如截图所示,对其进行优化。
我们选择运行其中一个通道。
在参数中,我们看到的是零而不是假。
不知道如何重现。有时,当从优化结果 中运行一次时,日志会正确显示(和替换)输入参数值(如在缓存中,包括非优化的输入)。但与此同时,在参数选项卡中,一些输入参数没有更新。
事实证明,你从Optimize运行Single - 很好(与Optimize的结果相匹配)。
然后进入单一模式,通过 "开始 "按钮运行相同的运行--你会得到不同的值(因为一些输入的值与上一步不同)。
关于原木的野生尺寸,已经说过了。当你看日志时,99%的时间你都对日志的开头和结尾感兴趣。因此,由于野性的大小,根本无法看到开头。
复制日志的开头和结尾如何?特别是,要看在什么输入参数下开始。
这些是测试仪现在发出的信息。
这就是测试员现在发出的信息。
测试人员以前也曾给出过这些信息。由于现在可以下载opt文件。这是一个警告,如果运行优化,这个opt-file将被覆盖,优化将重新开始。
在优化运行 的情况下,这个opt-file将被覆盖。
名字是否匹配?