程序库: 多功能测试仪 - 页 35 1...282930313233343536373839404142...56 新评论 EgorKim 2024.02.01 09:43 #341 fxsaber #:感谢您在测试中提供的帮助!已发布更新的 MTTester.mqh。 感谢您提供的程序库 fxsaber 2024.02.01 11:44 #342 MTTester.mqh 已再次更新。这一次,我将告诉大家其中的艰辛。 #include <fxsaber\Benchmark\Benchmark.mqh> //https://www.mql5.com/zh/code/31279 #include <fxsaber\MultiTester\MTTester.mqh> //https://www.mql5.com/zh/code/26132 const bool Init = EventSetTimer(3); void OnTimer() { if (MTTESTER::IsReady()) // 如果已准备好按下启动按钮 Print(_B(MTTESTER::ClickStart(), 1)); // 是否按下 "开始 "按钮以及按下按钮的时间。 }该智能交易系统每三秒钟按一次 "开始 "按钮,如果没有按 "停止 "按钮的话。我成功地按下了它 - true,否则 - false。标准情况。 按 "开始 "键 - 计算开始。Alert: Bench_Stack = 0, 1 <= Time[Test.mq5 9 in OnTimer: MTTESTER::ClickStart()] = 125248 mcs. true Alert: Bench_Stack = 0, 1 <= Time[Test.mq5 9 in OnTimer: MTTESTER::ClickStart()] = 123327 mcs. true此操作耗时约 125 毫秒。按 "开始 "键 - 开始瞬时计算,或者测试仪报告无法执行计算(例如,FromDate >= ToDate)。Alert: MTTester.mqh: Start->Stop - is not detected! Alert: Bench_Stack = 0, 1 <= Time[Test.mq5 9 in OnTimer: MTTESTER::ClickStart()] = 1001401 mcs. true Alert: MTTester.mqh: Start->Stop - is not detected! Alert: Bench_Stack = 0, 1 <= Time[Test.mq5 9 in OnTimer: MTTESTER::ClickStart()] = 1004102 mcs. true这一操作大约需要一秒钟。程序库会发出警报,但会返回 true(按钮已按下)。启动未按下。只有重启终端才能解决这一问题。我没有这种情况的日志。识别这种情况需要 <10 秒。会有这样的提示problem with Start-button!返回 false - 未按下按钮。 fxsaber 2024.03.05 06:00 #343 更新了 MTTester.mqh。 fxsaber 2024.03.06 13:29 #344 fxsaber #:未按 "开始 "键。只有重启终端才能解决这一问题。 一台远程 WinServer 机器连续进行了数百次单次通过,没有出现任何故障。 我一登录(RDP)这台机器,"开始 "按钮就不按了。解决方法一如既往,就是重启终端。 这种行为似乎与类似的机器登录有关。你可以通过 RDP 登录数十次,一切正常。但有些登录对测试者来说是致命的。 遇到 "开始 "错误的用户请注意登录机器与 "开始 "按钮之间的关系。 无论是否巧合,WinServer 都会在登录机器时检查更新。 sergego18 2024.03.30 05:11 #345 很好的库。 是否可以指定哪个 *.set 文件包含参数设置,以编程方式传递给测试? 默认情况下只使用相同的设置,这不是很方便。 fxsaber 2024.03.30 05:24 #346 sergego18 #:是否有可能以编程方式为测试指定要传递的带有参数设置的 *.set 文件? 例如 sergego18 2024.03.30 06:29 #347 fxsaber #: 举例说明。 谢谢。 以单行传递设置,行与行之间用 \n 字符隔开,这样更好吗? 还是像示例中那样以数组形式传递? 是否可以在 MTTester 类静态方法 Run static bool Run( const string ExpertName = NULL、 const string Symb = NULL、 const ENUM_TIMEFRAMES period = PERIOD_CURRENT、 const datetime iBeginTime = 0、 const datetime iEndTime = 0 ) 添加一个指定 *.set EA 设置的参数字符串(或字符串数组)? fxsaber 2024.03.30 06:40 #348 sergego18 #:谢谢。 以单行方式传递设置,行与行之间用 \n 字符隔开是否更好?还是像示例中那样以数组形式传递? 在 Tester 中,GetSettings 是 CTRL+C。 SetSettings 在 Tester 中是 CTRL+V。 看看 CTRL+C/V 对哪些数据有效。 以及是否可以在 MTTester 类静态方法 Run 我不使用此方法。它仍然是历史方法。 示例显示了所有需要的 MTTESTER 方法。 fxsaber 2024.03.30 06:42 #349 sergego18 #:是否有可能以编程方式为测试指定要传递的带有参数设置的 *.set 文件? Validate 可以使用测试仪的完整版 ini 文件和精简版 - 测试仪的 set 文件。 如果您需要运行大量的 ini/set 文件,Validate 会自动完成。使用方法 sergego18 2024.03.30 19:47 #350 fxsaber #:Validate 可使用完整的 Tester ini 文件和精简版本--Tester 的 set-files。如果你需要运行大量的 ini/set-files,Validate 可以做到这一点。使用方法 我从这条评论中找到了一种解决方案,即以所需格式加载字符串数组中的set 文件。 https://www.mql5.com/ru/forum/318305/page34#comment_51842356 我还替换了 typedef bool (*INITDEINIT)( void ); 在每次运行初始化和去初始化时调用回调的指针 改为接口 接口 InitDeInit { bool RunInit(); bool RunDeInit(); }; 的继承者中实现。 类的继承者中实现。 结构的类的继承者中实现,因此在 RunInit() 方法中也是如此。 我加载了所需工具的设置文件。 typedef bool (*INITDEINIT)( void ); - 这个指针不能让你知道哪个工具正在初始化/去初始化,所以最好使用指向接口的指针,因为 MQL 还不支持指向方法的指针。 使用这种方法无需修改 MTTester::Run 方法。 Библиотеки: MultiTester - Обновил платформу MetaTrader 5 build 3550 улучшения и исправления Fxsaber. 2024.01.21Yuriy Bykovwww.mql5.com You can add this draft function for reading settings from file to string array. автоматическим торговым системам и тестированию торговых стратегий. Validate умеет запускать последовательно много ini-задайний Libraries: MultiTester 连续前行优化 (第八部分): 程序改进和修复 1...282930313233343536373839404142...56 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
感谢您在测试中提供的帮助!已发布更新的 MTTester.mqh。
感谢您提供的程序库
该智能交易系统每三秒钟按一次 "开始 "按钮,如果没有按 "停止 "按钮的话。我成功地按下了它 - true,否则 - false。
标准情况。
按 "开始 "键 - 计算开始。
此操作耗时约 125 毫秒。
按 "开始 "键 - 开始瞬时计算,或者测试仪报告无法执行计算(例如,FromDate >= ToDate)。
这一操作大约需要一秒钟。程序库会发出警报,但会返回 true(按钮已按下)。
启动未按下。只有重启终端才能解决这一问题。
我没有这种情况的日志。识别这种情况需要 <10 秒。会有这样的提示
返回 false - 未按下按钮。
未按 "开始 "键。只有重启终端才能解决这一问题。
一台远程 WinServer 机器连续进行了数百次单次通过,没有出现任何故障。
我一登录(RDP)这台机器,"开始 "按钮就不按了。解决方法一如既往,就是重启终端。
这种行为似乎与类似的机器登录有关。你可以通过 RDP 登录数十次,一切正常。但有些登录对测试者来说是致命的。
遇到 "开始 "错误的用户请注意登录机器与 "开始 "按钮之间的关系。
无论是否巧合,WinServer 都会在登录机器时检查更新。
很好的库。
是否可以指定哪个 *.set 文件包含参数设置,以编程方式传递给测试?
默认情况下只使用相同的设置,这不是很方便。
是否有可能以编程方式为测试指定要传递的带有参数设置的 *.set 文件?
举例说明。
谢谢。
以单行传递设置,行与行之间用 \n 字符隔开,这样更好吗?
还是像示例中那样以数组形式传递?
是否可以在
MTTester 类静态方法 Run
static bool Run( const string ExpertName = NULL、
const string Symb = NULL、
const ENUM_TIMEFRAMES period = PERIOD_CURRENT、
const datetime iBeginTime = 0、
const datetime iEndTime = 0 )
添加一个指定 *.set EA 设置的参数字符串(或字符串数组)?
谢谢。
以单行方式传递设置,行与行之间用 \n 字符隔开是否更好?
还是像示例中那样以数组形式传递?
在 Tester 中,GetSettings 是 CTRL+C。
SetSettings 在 Tester 中是 CTRL+V。
看看 CTRL+C/V 对哪些数据有效。
以及是否可以在
MTTester 类静态方法 Run
我不使用此方法。它仍然是历史方法。
示例显示了所有需要的 MTTESTER 方法。
是否有可能以编程方式为测试指定要传递的带有参数设置的 *.set 文件?
Validate 可以使用测试仪的完整版 ini 文件和精简版 - 测试仪的 set 文件。
如果您需要运行大量的 ini/set 文件,Validate 会自动完成。使用方法
Validate 可使用完整的 Tester ini 文件和精简版本--Tester 的 set-files。
如果你需要运行大量的 ini/set-files,Validate 可以做到这一点。使用方法
我从这条评论中找到了一种解决方案,即以所需格式加载字符串数组中的set 文件。
https://www.mql5.com/ru/forum/318305/page34#comment_51842356
我还替换了
typedef bool (*INITDEINIT)( void );
在每次运行初始化和去初始化时调用回调的指针
改为接口
接口 InitDeInit {
bool RunInit();
bool RunDeInit();
};
的继承者中实现。
类的继承者中实现。
结构的类的继承者中实现,因此在 RunInit() 方法中也是如此。
我加载了所需工具的设置文件。
typedef bool (*INITDEINIT)( void ); - 这个指针不能让你知道哪个工具正在初始化/去初始化,所以最好使用指向接口的指针,因为 MQL 还不支持指向方法的指针。
使用这种方法无需修改 MTTester::Run 方法。