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

 
Edgar Akhmadeev:

实际上,我说的不是特定的 MultiTester 程序,而是它的点击器底座,我把它拿走了。在优化之前,我已经设置了许多字段的单击器,而现在那里发生了一些变化。

不使用 MTTester.mqh 按钮方法也能完成所有操作。剪贴板可以完全控制。

 
fxsaber:

所有操作都无需 MTTester.mqh 按钮方法。剪贴板提供完全控制。

再次感谢您的建议。我使用剪贴板来设置参数,但优化设置 选项卡我根本没想到。

 
Edgar Akhmadeev:

再次感谢您的建议。我使用剪贴板来设置参数,但优化设置 选项卡我根本没想到。

MTTESTER::GetSettings
MTTESTER::SetSettings2
 
fxsaber:

这很好地说明了为什么连续进行多个 GA 是有用的。

这里有五个 GA。

如何连续进行多个 GA?我总是有一个峰值。画面是这样的

选项

 
HimOrik:

如何连续进行多个 GA?

运行多次。或者使用 MTTester.mqh,这样就可以轻松实现自动化。

 
fxsaber:

运行多次。或者在 MTTester.mqh 中输入烟雾,这样就可以轻松实现自动化。

谢谢,我正在尝试。"你是否需要设置非常不同的输入参数集来找到不同的极值?到目前为止,多次 GA 得到的结果都差不多。

这就是问题所在:

"

fxsaber 2020.03.10 09:09 #164 RU

请就如何正确使用 GA 分享您的经验。我遇到过这样一种情况,即 GA 只能找到一个必要的局部极值。

"

从哪里可以挖掘出不同的集合?

fxsaber
fxsaber
  • www.mql5.com
Добавил тему MT5 и скорость в боевом исполнении MT5 - шустрая платформа. Но есть узкие горлышки, которые сводят на нет все старания быстрой торговли. Хотелось бы собрать проблемы здесь, обсудить и решить их где-то своими силами, где-то с помощью Разработчиков Добавил тему Лимитники/тейки по текущей цене в Терминале (не в Тестере) Сабж...
 
HimOrik:

谢谢,我正在尝试。"你是否需要设置非常不同的输入参数集来找到不同的极值?到目前为止,多次运行 GA 得到的结果都差不多。

这就是问题所在:

"

fxsaber 2020.03.10 09:09 #164 RU

请分享一下如何正确使用 GA 的经验。我遇到的情况是,GA 只能找到一个必要的局部极值。

"

从哪里获取不同的集合?

不同的局部最大值集可能根本不存在。一组参数的局部最大值可以是一个,如果它是平缓的,就比尖锐的好)这样的 TS 比尖锐的 LokM 更稳定。

 
HimOrik:

您是如何连续完成多个 GA 的?我总是有一个峰值。图片是这样的

要想在一张图上多次通过,就必须在不改变参数的情况下运行多次。
 

如果需要从市场观察中删除所有符号(目标是单个优化文件),并需要某组符号,则可通过在终端中运行的智能交易系统(Expert Advisor)进行优化。


该智能交易系统会删除市场观察中所有不必要的符号,并在优化结束时恢复之前的符号列表。这些都是显而易见的。


MT5 的另一个功能也很有趣。如果您想从市场观察中移除欧元兑美元,而 EA 正在欧元兑美元图表上运行。这可以通过运行 ChartSetSymbolPeriod 来解决,但同时(重要!)要让 OnInit 返回成功。


这种方法也可用于市场。例如,市场专家顾问只对 AUDJPY 起作用。那么用户可以允许智能交易系统在任何符号/TF 的图表上运行。Expert Advisor 本身会将该图表更改为所需的图表。

 
// 保护终端不关闭。在实时终端上运行一次此智能交易系统。

#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/zh/code/26132

int OnInit()
{
  const bool Res = MQLInfoInteger(MQL_TESTER);
  
  if (!Res)
  {
    string Settings;
    
    while (!IsStopped() && !MTTESTER::GetSettings(Settings))
      ;
  
    if (MTTESTER::IsReady())
    {
      Settings = "[Tester]\nExpert=" + StringSubstr(MQLInfoString(MQL_PROGRAM_PATH),
                                                    StringLen(TerminalInfoString(TERMINAL_DATA_PATH)) + StringLen("\\MQL5\\Experts\\")) + 
                 "\nOptimization=0\nModel=3";
  
      while (!IsStopped())
        if (MTTESTER::SetSettings2(Settings))
        {
          MTTESTER::ClickStart(false);
          
          break;
        }
    }
    
  }
      
  return(!Res);
}

double OnTester()
{
  while (!IsStopped())
    ;
    
  return(0);
}

在 b2571 上进行了测试。