程序库: 多功能测试仪 - 页 48 1...41424344454647484950515253545556 新评论 hini 2025.06.20 00:40 #471 fxsaber #:我是这么想的。https://www.mql5.com/ru/blogs/post/748365 确定 hini 2025.06.28 14:32 #472 //#include "..\utils\fxsaber\MultiTester\MTTester.mqh" //https://www.mql5.com/zh/code/26132 #include <fxsaber\MultiTester\MTTester.mqh> input group "MTTester" sinput int inA = 22; sinput int inB = 33; sinput bool inC = false; void OnInit() { const bool IsTester = MQLInfoInteger(MQL_TESTER); if (!IsTester) { string Settings; bool ok1 = MTTESTER::GetSettings2(Settings); Print(ok1, " ", Settings); } } 我试过了,似乎无法获得测试仪参数。 我必须按 Ctrl+C 才能复制一次文本吗? fxsaber 2025.06.28 15:31 #473 hini #: 我试过了,似乎无法获得测试仪参数。 请参见_LastError。 复制一次文本必须按 Ctrl+C 键吗? 不需要。 hini 2025.06.28 17:09 #474 fxsaber #: 查看_LastError。 4009 err_notinitialised_string fxsaber 2025.06.28 17:29 #475 hini #:4009 err_notinitialized_string 未重现。 2025.06.28 20:28:31.981 MACD Sample (EURUSD,M1) true [Tester] 2025.06.28 20:28:31.981 MACD Sample (EURUSD,M1) Expert=Examples\MACD\MACD Sample.ex5 2025.06.28 20:28:31.981 MACD Sample (EURUSD,M1) Symbol=EURUSD 2025.06.28 20:28:31.981 MACD Sample (EURUSD,M1) Period=M1 2025.06.28 20:28:31.981 MACD Sample (EURUSD,M1) Optimization=1 2025.06.28 20:28:31.981 MACD Sample (EURUSD,M1) Model=3 2025.06.28 20:28:31.981 MACD Sample (EURUSD,M1) [TesterInputs] 2025.06.28 20:28:31.981 MACD Sample (EURUSD,M1) ; MTTester 2025.06.28 20:28:31.981 MACD Sample (EURUSD,M1) inA=22 2025.06.28 20:28:31.981 MACD Sample (EURUSD,M1) inB=33 2025.06.28 20:28:31.981 MACD Sample (EURUSD,M1) inC=false hini 2025.06.28 18:44 #476 fxsaber #:它没在玩。 我认为这是终端版本的问题--5120 版本无法重现测试人员的输入。 #include <fxsaber\MultiTester\MTTester.mqh> input group "MTTester" sinput int inA = 22; sinput int inB = 33; sinput bool inC = false; void OnInit() { const bool IsTester = MQLInfoInteger(MQL_TESTER); ResetLastError(); if (!IsTester) { string Settings = ""; bool ok1 = MTTESTER::GetSettings2(Settings); Print(ok1, " error=", _LastError," BUILD:", __MQL5BUILD__, " ", Settings); } } fxsaber 2025.06.28 18:50 #477 hini #: 我怀疑是终端版本的问题,在 5120 上无法重现。 在 b4885 上一切正常。 hini 2025.06.28 18:54 #478 fxsaber #:在 b4885 上也能正常工作。 已安装 hini 2025.06.29 03:42 #479 hini #: 我认为这是终端版本的问题--5120 版本无法重现测试人员的输入。 static long GetHandle( const int &ControlID[] ) { long Handle = MTTESTER::GetTerminalHandle(); const int Size = ::ArraySize(ControlID); for (int i = 0; i < Size; i++) { Handle = user32::GetDlgItem(Handle, ControlID[i]); if (Handle != 0) return Handle; } return(Handle); } 在 b5120 版本中,获取测试仪输入的问题已经解决。调试过程中发现,在数组 static const int ControlID[] = {0xE81E, 0x804E} 中,第二个元素(0x804E)返回的 Handle 等于 0,而第一个元素(0xE81E)返回的 Handle 有效。使用该句柄时,接收测试仪输入数据的工作正常。 测试表明,该方法在 b4879 版本中也能正常工作,因此在 b4885 版本中应该也没有问题。 static const int ControlID[] = {0x804E, 0xE81E}; //{0xE81E, 0x804E}; 也许最简单的方法是更改顺序 fxsaber 2025.06.29 04:45 #480 hini #: 修正了 b5120 版本中获取测试仪输入数据的问题。调试过程中发现,在数组 static const int ControlID[] = {0xE81E, 0x804E} 中,第二个元素 (0x804E) 返回的句柄等于 0,而第一个元素 (0xE81E) 返回的句柄有效。使用该句柄时,接收测试仪输入数据的工作正常。测试表明,该方法在 b4879 版本中也能正常工作,因此在 b4885 版本中应该也没有问题。 也许最简单的方法是更改顺序 您确定使用的是当前版本的 MTTester.mqh?下面的代码就在其中。 static long GetHandle( const int &ControlID[] ) { static const bool MT5_b5050 = (::TerminalInfoInteger(TERMINAL_BUILD) > 5000); long Handle = MTTESTER::GetTerminalHandle(); const int Size = ::ArraySize(ControlID); for (int i = 0; i < Size; i++) if (!MT5_b5050 || (ControlID[i] != 0xE81E)) Handle = user32::GetDlgItem(Handle, ControlID[i]); return(Handle); } 1...41424344454647484950515253545556 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我是这么想的。
https://www.mql5.com/ru/blogs/post/748365
我试过了,似乎无法获得测试仪参数。
我必须按 Ctrl+C 才能复制一次文本吗?
我试过了,似乎无法获得测试仪参数。
请参见_LastError。
复制一次文本必须按 Ctrl+C 键吗?
不需要。
查看_LastError。
4009 err_notinitialised_string
4009 err_notinitialized_string
未重现。
它没在玩。
我认为这是终端版本的问题--5120 版本无法重现测试人员的输入。
我怀疑是终端版本的问题,在 5120 上无法重现。
在 b4885 上一切正常。
在 b4885 上也能正常工作。
已安装
我认为这是终端版本的问题--5120 版本无法重现测试人员的输入。
在 b5120 版本中,获取测试仪输入的问题已经解决。调试过程中发现,在数组 static const int ControlID[] = {0xE81E, 0x804E} 中,第二个元素(0x804E)返回的 Handle 等于 0,而第一个元素(0xE81E)返回的 Handle 有效。使用该句柄时,接收测试仪输入数据的工作正常。
测试表明,该方法在 b4879 版本中也能正常工作,因此在 b4885 版本中应该也没有问题。
也许最简单的方法是更改顺序
修正了 b5120 版本中获取测试仪输入数据的问题。调试过程中发现,在数组 static const int ControlID[] = {0xE81E, 0x804E} 中,第二个元素 (0x804E) 返回的句柄等于 0,而第一个元素 (0xE81E) 返回的句柄有效。使用该句柄时,接收测试仪输入数据的工作正常。
测试表明,该方法在 b4879 版本中也能正常工作,因此在 b4885 版本中应该也没有问题。
也许最简单的方法是更改顺序
您确定使用的是当前版本的 MTTester.mqh?下面的代码就在其中。