MetaTrader 5策略测试器:缺陷,缺陷,改进建议 - 页 3

 

经过优化,我发现这个

在两张通行证中,利润和缩水非常接近,恢复系数非常不同。


ZZY "按点 "的原始模式。我还不建议使用它。特别是如果你正在进行优化。

 

MT5优化器没有这种MT4功能。



所以你必须这样做。

sinput uint inMaxOrders = 0; // Максимальное количество ордеров.
sinput double inMaxAbsoluteDD = 0; // Максимальная абсолютная просадка

bool IsMaxOrders()
{
#ifdef __MT4ORDERS__
  return(inMaxOrders && MT4ORDERS::LastTradeResult.order > inMaxOrders);
#else
  return(false);
#endif
}

bool IsMaxAbsoluteDD()
{
  static const double StartBalance = AccountInfoDouble(ACCOUNT_BALANCE);

  return(inMaxAbsoluteDD && ((StartBalance - AccountInfoDouble(ACCOUNT_EQUITY)) > inMaxAbsoluteDD));
}

void OnTick()
{
  static const bool IsTester = MQLInfoInteger(MQL_TESTER);
  
  if (IsTester && (IsMaxOrders() || IsMaxAbsoluteDD()))
  {
  #ifdef __MQL5__
    TesterStop();
  #else // __MQL5__
    ExpertRemove();
  #endif // __MQL5__
    
    return;
  }
// ....


否则就会非常糟糕,而且需要很长的时间

 

在优化之后,代理在处于战备状态时,有一段时间(相当长的时间)不会卸货。这是一个非常酷的解决方案。

有时代理商会吃掉大量的内存,而这是优化后需要的。所以决定通过禁用它们来释放它。


然而,他们,并没有卸货。


是否可以通过 "禁用 "菜单项或创建 "强制卸载 "菜单项使其卸载?

 
测试员报告中的"最大持仓时间 "是否没有考虑到周末?
 

性能。

单次运行
SSD
单次运行
RAM-Drive
第二个优化器通道
SSD/RAM-驱动器
单次通过
虚拟的
第二道优化程序
虚拟的
72秒 64秒 28秒 26秒 18秒


单次运行是 "热 "进行的--第一次单次运行后,立即开始第二次运行。

需要对单次运行的制动做些什么。它比Optimizer慢2.5倍。

而且,这不仅仅是关于多余的日志。虚拟没有记录任何东西,但在优化器中还是要快得多。

 

当选择单一运行时,完全隐藏输入参数变化的范围,这是否是一个好的解决方案?


当我加载一个设定的文件时,过去是立即可以看到它是从哪个优化中选择的。现在不是了。


ZZY 除非你勾选这个方框,否则你无法看到范围。这已经变得非常不方便了。而当方框被选中时,你无法看到默认值。

 

伙计们,我已经厌倦了单次传递的日志。由于他们的存在,绝对不可能与RAM-Drive合作。在几个单一的通道中就有几千兆字节的垃圾。这是一个真正讨厌的垃圾。RAM-Drive很快就会被堵塞。

我使用虚拟。在这个意义上,我对它没有任何问题。尽管如此,我还是想通过WinAPI从根本上解决这个问题。


你能建议我在运行一次之前自动崩溃Tester\Agent-127.0.0.1-300x\logs\*.log 文件吗?我想写一次解决方案,然后永远忘掉这些讨厌的事情。

问题是,即使是手动操作,这些文件也不能被删除,因为它们被终端占用了。有一个选项是解锁器。我将不得不看看是否有一个控制台版本。


一般来说,在这种情况下,我可以得到任何帮助。


SZY 而什么应该使logs.... 的大小的最大限制。

 
fxsaber:

伙计们,我已经厌倦了单次传递的日志。由于他们的存在,绝对不可能与RAM-Drive合作。在几个单一的通道中就有几千兆字节的垃圾。这是一个真正讨厌的垃圾。RAM-Drive很快就会被堵塞。

我使用虚拟。在这个意义上,我对它没有任何问题。尽管如此,我还是想通过WinAPI从根本上解决这个问题。


你能建议我在运行一次之前自动崩溃Tester\Agent-127.0.0.1-300x\logs\*.log 文件吗?我想写一次解决方案,然后永远忘掉这些讨厌的事情。

问题是,即使是手动操作,这些文件也不能被删除,因为它们被终端占用了。有一个选项是解锁器。我将不得不看看是否有一个控制台版本。


一般来说,在这种情况下,我可以得到任何帮助。


SZY 而什么应该使logs.... 的大小的最大限制。

禁止写到日志文件夹?

 
Andrey Khatimlianskii:

禁止写到日志文件夹?

这个选项不起作用。


我在重启计算机后,在终端文件夹 中运行一次这样的批处理文件。

rem Создали RAM-Drive для Тестера.
imdisk -a -o awe -s 3 G -m Z: -p "/fs:ntfs /q /y /v:MT5Tester"

mkdir z:\Tester
mklink /j Tester z:\Tester

rem Кеш оптимизатора будет сохраняться на диске.
mkdir cache
mklink /j z:\Tester\cache cache

rem Временный RAM-Drive, чтобы на него можно было перенаправить log-папки.
imdisk -a -o awe -s 3 M -m Y: -p "/fs:ntfs /q /y /v:MT5Tester_Logs"

mkdir y:\logs
mklink /j Tester\logs y:\logs

mkdir y:\logs0
mkdir Tester\Agent-127.0.0.1-3000
mklink /j Tester\Agent-127.0.0.1-3000\logs y:\logs0

mkdir y:\logs1
mkdir Tester\Agent-127.0.0.1-3001
mklink /j Tester\Agent-127.0.0.1-3001\logs y:\logs1

mkdir y:\logs2
mkdir Tester\Agent-127.0.0.1-3002
mklink /j Tester\Agent-127.0.0.1-3002\logs y:\logs2

mkdir y:\logs3
mkdir Tester\Agent-127.0.0.1-3003
mklink /j Tester\Agent-127.0.0.1-3003\logs y:\logs3

mkdir y:\logs4
mkdir Tester\Agent-127.0.0.1-3004
mklink /j Tester\Agent-127.0.0.1-3004\logs y:\logs4

mkdir y:\logs5
mkdir Tester\Agent-127.0.0.1-3005
mklink /j Tester\Agent-127.0.0.1-3005\logs y:\logs5

mkdir y:\logs6
mkdir Tester\Agent-127.0.0.1-3006
mklink /j Tester\Agent-127.0.0.1-3006\logs y:\logs6

mkdir y:\logs7
mkdir Tester\Agent-127.0.0.1-3007
mklink /j Tester\Agent-127.0.0.1-3007\logs y:\logs7

rem Убили временный RAM-Drive
imdisk -D -m Y:


此后,就不创建任何日志文件了。到目前为止,我还没有注意到测试者那边有任何滞后。似乎是一个可行的解决方案。

 
fxsaber:

这个选项不起作用。

你如何禁止录音?