程序库: 多功能测试仪 - 页 23

 
fxsaber:

在 OnTesterInit 中执行 GetSettings,并通过 ParametersSetRange 将获得的值传递给 sinput 变量。

谢谢,这有部分帮助。

当我把GetSettings() 调用移到 OnTesterInit() 时,测试仪不再切换到设置选项卡,但本地代理出了问题。

没有在任何地方使用 GetSettings 数据,只是调用了该函数。

void OnTesterInit()
  {
   // 获取测试仪设置
   string  Str;
   if(MQLInfoInteger(MQL_TESTER) && MTTESTER::GetSettings(Str))
     {
      // Print(Str);
     }
  }
  
 void  OnTesterDeinit()
  {
  }


 
Sunriser:

当地代理商出了问题。

GetSettings 只能在本地代理(运行终端的机器)上调用。无法在其他机器上运行。

这就是为什么 OnTesterInit 是唯一的选择。

 
已更新。
 

我想在每次测试通过后将有关该单次测试的信息写入一个文件

在哪里插入记录块?在库中?还是只在智能交易系统中执行?

在没有库的通常情况下,我将其插入到 ondeinit 块中。我还没找到在这里插入的位置。

Документация по MQL5: Файловые операции / FileWrite
Документация по MQL5: Файловые операции / FileWrite
  • www.mql5.com
FileWrite - Файловые операции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Aleksei Skrypnev:

我想在每次测试通过后,将有关该单次测试的信息写入一个文件

在哪里插入记录块?在库中?还是只能在 Expert Advisor 中实现?

在没有库的通常情况下,我将其插入到 ondeinit 块中。我还没找到在这里插入的位置。

如果您运行的智能交易系统没有源代码:只有 EX5,那么您需要通过生成的 tst 文件从单次运行中提取信息(在 MultiTester 中)。

如果有源代码,则在 Expert Advisor 的 OnDeinit 中向 Common 文件插入记录。

 
fxsaber:

如果没有要运行的智能交易系统的源代码:只有 EX5,则应通过生成的 tst 文件从单次运行中获取信息(在 MultiTester 中)。

如果有源代码,则应在 Expert Advisor 的 OnDeinit 中向 Common 文件插入记录。

听起来很清楚,但实施起来还不是很清楚。我会继续研究)。

但据我了解,仅仅在库文件的正确位置插入一个块来记录信息,并不能轻易解决这种情况?(也就是说,没有现成的块将每次传递保存到文件中)。

 
fxsaber:

如果没有要运行的智能交易系统的源代码:只有 EX5,则应通过生成的 tst 文件从单次运行中获取信息(在 MultiTester 中)。

如果有源代码,则应在 Expert Advisor 的 OnDeinit 中向 Common 文件插入记录。

顺便说一下,由于某些原因,我只有最后一个 Expert Advisor 才有记录。也就是说,3 个相同的脚本相继测试,并将数据写入 3 个不同的文件,但只有最后一个写入了自己的文件

好吧,我复制了更多的智能交易系统,但仍然只有最后一个智能交易系统有记录。 文件写入的方法是在每个智能交易系统的 OnDeinit 中使用标准文件写入

根据终端日志,同样的东西被打开并写入最后一个。
Документация по MQL5: Файловые операции / FileWrite
Документация по MQL5: Файловые операции / FileWrite
  • www.mql5.com
FileWrite - Файловые операции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Aleksei Skrypnev:

但据我了解,仅仅在库文件的正确位置插入一个信息记录块并不能轻易解决这个问题?(也就是说,没有一个现成的块可以将每次传递保存到文件中)。

我做了一个组合器,在优化后从 opt 文件中挑选出最好的通道。然后在此基础上进行转发并创建其他优化工作。

但这确实很少有人能做到。

 
Aleksei Skrypnev:

顺便说一下,由于某些原因,我只记录了最后一个 EA。

我不明白。

 
fxsaber:

我不明白。

在库中有一个 MultiTester_Example2 文件。

我把它添加到现有的 4 个 EA 中,又添加了 3 个完全相同的 EA,它们只是相互复制。

在每个顾问的 ondeinit 中都指定了文件中的记录,例如顾问 1 在文件 1 中创建记录,顾问 2 在文件 2 中创建记录,顾问 3 在文件 3 中创建记录。

我将 MultiTester_Example2 扔到图表上。线路运行 - 显示完成。我进入记录文件夹,只看到名为 file3 的记录文件。

(我还不明白原因)。

例如,我添加了 EA4,运行测试并在文件 EA4.- 中看到输出记录(即只有 file4 和 file1、2、3,没有)。

也就是说,只有最后一个智能交易系统被写入最后一个文件。

(也就是说,在列表的最后一个 EA 中使用库或其他工具执行 OnDeinit 1 次 (而不是列表中每个 EA 的结尾)。

(在此之前,我曾尝试将 3-4 个 EA 中每个 EA 的信息写入一个文件,但文件中的信息也仅来自最后一个 EA。

Документация по MQL5: Файловые операции / FileWrite
Документация по MQL5: Файловые операции / FileWrite
  • www.mql5.com
FileWrite - Файловые операции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5