MetaTrader 5 Strategy Tester: Bugs, Bugs, Verbesserungsvorschläge - Seite 3

 

Nach der Optimierung habe ich Folgendes gefunden

Bei zwei Durchläufen, bei denen Gewinne und Absenkungen sehr nahe beieinander liegen, ist der Erholungsfaktor sehr unterschiedlich.


ZZY Der Rohmodus "nach Pips". Ich empfehle, es noch nicht zu verwenden. Vor allem, wenn Sie optimieren.

 

Der MT5-Optimierer hat keine solche MT4-Funktion.



Sie müssen es also so machen.

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;
  }
// ....


Andernfalls wird es sehr schlecht sein und lange dauern.

 

Nach der Optimierung entladen sich die Agenten für eine gewisse Zeit (einige Minuten) nicht, während sie in Kampfbereitschaft sind. Das ist eine wirklich coole Lösung.

Manchmal verbrauchen Agenten viel Speicherplatz, der nach der Optimierung benötigt wird. Also beschloss ich, sie zu deaktivieren.


Sie haben jedoch nicht entladen.


Ist es möglich, sie über den Menüpunkt "Deaktivieren" zu entladen oder den Menüpunkt "Erzwungenes Entladen" zu erstellen?

 
Berücksichtigt der Testerbericht "Maximale Positionshaltezeit" nicht die Wochenenden?
 

Leistung.

Einzelner Lauf
SSD
Einzelner Lauf
RAM-Drive
Zweiter Optimierungsdurchlauf
SSD/RAM-Laufwerk
Einzelner Pass
Virtuell
Zweiter Durchgang Optimierer
Virtuell
72 Sekunden 64 Sekunden 28 Sekunden 26 Sekunden 18 Sekunden


Die Einzelläufe wurden "heiß" durchgeführt - nach dem ersten Einzellauf wurde sofort ein zweiter Lauf gestartet.

Es muss etwas gegen die Einzellaufbremsung unternommen werden. Er ist 2,5 Mal langsamer als Optimizer.

Und es geht nicht nur um überflüssige Protokolle. Virtual protokolliert nichts, ist aber im Optimierer trotzdem viel schneller.

 

Ist es eine gute Lösung, die Bereiche der Eingabeparameteränderungen vollständig auszublenden, wenn ein einzelner Lauf ausgewählt wird?


Wenn ich eine eingestellte Datei lade, war früher sofort ersichtlich, aus welcher Optimierung sie ausgewählt wurde. Jetzt ist sie es nicht mehr.


ZZY Solange Sie das Kästchen nicht markieren, können Sie den Bereich nicht sehen. Das ist sehr lästig geworden. Und wenn das Kästchen markiert ist, können Sie den Standardwert nicht sehen.

 

Leute, ich habe die Nase voll von den Single-Pass-Protokollen. Es ist absolut unmöglich, mit RAM-Drive zu arbeiten, weil es diese gibt. Gigabytes an Müll in wenigen Durchgängen. Es ist ein wirklich fieses Stück Schrott. RAM-Drive wird sehr schnell verstopft.

Ich verwende Virtual. In diesem Sinne habe ich keine Probleme mit ihr. Dennoch möchte ich dieses Problem radikal über WinAPI lösen.


Können Sie mir raten, Tester\Agent-127.0.0.1-300x\logs\*.log-Dateien automatisch abstürzen zu lassen, bevor ein einzelner Lauf ausgeführt wird? Ich möchte einmal eine Lösung schreiben und diese Unannehmlichkeiten für immer vergessen.

Das Problem ist, dass diese Dateien nicht einmal manuell entfernt werden können, da sie vom Terminal belegt sind. Es gibt eine Option Unlocker. Ich muss sehen, ob es eine Konsolenversion gibt.


Im Allgemeinen kann ich in diesem Fall jede Hilfe gebrauchen.


SZY Und was sollte die Höchstgrenze für die Größe von logs....

 
fxsaber:

Leute, ich habe die Nase voll von den Single-Pass-Protokollen. Es ist absolut unmöglich, mit RAM-Drive zu arbeiten, weil es diese gibt. Gigabytes an Müll in wenigen Durchgängen. Es ist ein wirklich fieses Stück Schrott. RAM-Drive wird sehr schnell verstopft.

Ich verwende Virtual. In diesem Sinne habe ich keine Probleme mit ihr. Dennoch möchte ich dieses Problem radikal über WinAPI lösen.


Können Sie mir raten, Tester\Agent-127.0.0.1-300x\logs\*.log-Dateien automatisch abstürzen zu lassen, bevor ein einzelner Lauf ausgeführt wird? Ich möchte einmal eine Lösung schreiben und diese Unannehmlichkeiten für immer vergessen.

Das Problem ist, dass diese Dateien nicht einmal manuell entfernt werden können, da sie vom Terminal belegt sind. Es gibt eine Option Unlocker. Ich muss sehen, ob es eine Konsolenversion gibt.


Generell bitte ich in diesem Fall um jede Hilfe.


SZY Und was sollte die Höchstgrenze für die Größe von logs....

Schreiben in den Logs-Ordner verbieten?

 
Andrey Khatimlianskii:

Schreiben in den Logs-Ordner verbieten?

Diese Option funktioniert nicht.


Ich führe eine solche Batch-Datei im Terminal-Ordner einmal nach dem Neustart des Computers aus.

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:


Danach werden keine Protokolldateien mehr erstellt. Bislang habe ich auf der Seite des Testers keine Verzögerungen festgestellt. Scheint eine funktionierende Lösung zu sein.

 
fxsaber:

Diese Option funktioniert nicht.

Wie kann man die Aufzeichnung verbieten?