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

 
Slava:

Tester gestoppt, weil OnInit einen Nicht-Null-Code zurückgibt

Deshalb gibt es auch keine Statistiken.

Danke, ich werde Sie auf dem Laufenden halten. Interessant ist, dass die Charts immer noch mit den getätigten Geschäften erstellt werden.

 
Andrey Pogoreltsev:

Die Agenten überlasten den Speicher, wenn sie versuchen, durch das mexikanische Land zu gehen und nichts zu tun, und die Anzahl ihrer Aufgaben wächst. Die Protokolle zeigen die folgenden Fehler:

Sie müssen sich die Agentenprotokolle ansehen.

Fehler 14 bedeutet, dass der Gebotspreis für dieses Werkzeug null ist. Das heißt, es gibt einen linken Balken in der Historie

PS Es ist besser, einen einzigen Test durchzuführen. Dann wird der Fehler mit Sicherheit im Protokoll des Testagenten erscheinen. Bei der Optimierung werden Fehler nur angezeigt, bis OnInit abgeschlossen ist

 

Das Gruppensymbol verschwindet, wenn alle geschlossen sind, und die Option, einen Parameter für die Optimierung auszuwählen, verschwindet.


input group "ORDER"
input double K = 30;
input double TP_0 = 500;
input double MaxLoss = 0.25;
input group "FUNCTIONS"
input bool MultipleStopOrders = true;
input bool CloseAllPosReversSig = true;
input group "MONEY MANAGEMENT SETTING"
input double StartLot = -0.01;
input group "ORDERS SETTING"
input int MagicNumber_ = 2000; // Magic Number
input int Slippage = 50;       // Slippage
 
Slava:

Große Bitte, keine Eingabeparameter von EA zu ändern, die nicht in der Zwischenablage gesetzt sind.

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Bibliotheken: MultiTester

fxsaber, 2019.11.06 11:24

Wenn Sie eine große Anzahl von Optimierungs-Caches nach einem Multitester-Lauf betrachten, tun Sie das Gleiche.

  1. Sie wählen den besten Durchgang für einen einzelnen Lauf (über PCM).
  2. Wenn es Ihnen gefällt, deaktivieren Sie die Optimierung und erhöhen das Intervall.
  3. Sie drücken auf Start.

Die meiste Zeit wird auf Schritt 2 verwendet, was häufig zu Fehlern führt. Wir würden gerne halbautomatisch arbeiten. Und es gibt eine Lösung!


Kopieren Sie diesen Text in die Zwischenablage.

[Tester]
Optimization=0
FromDate=2019.01.01


Drücken Sie dann einfach STRG+V auf der Registerkarte Einstellungen. Dadurch wird die Optimierung automatisch deaktiviert und das richtige Datum eingestellt.


ZZZ hatte es eilig, sich aufzuregen. Mit diesem Puffer werden die EA-Eingabeparameter auf die Standardwerte zurückgesetzt.

 
fxsaber:

Eine große Bitte, die Eingabeparameter eines EAs nicht zu ändern, die nicht in der Zwischenablage eingestellt sind.

Ja, korrigieren Sie das Verhalten.

PS Das beschriebene Verhalten ist nicht reproduzierbar. Wenn der eingefügte Text keinen [TesterInputs]-Abschnitt enthält, wird die Registerkarte mit den Einstellungen des Expert Advisors überhaupt nicht berührt.

 
Slava:
Ja. Korrektur des Verhaltens

Ich danke Ihnen!

 
fxsaber:

Ich danke Ihnen!

Nicht spielen
 
Slava:

PS Das beschriebene Verhalten wird nicht reproduziert. Wenn der einzufügende Text keinen [TesterInputs]-Abschnitt enthält, wird die Registerkarte "Expert Advisor settings" überhaupt nicht berührt

Expert Advisor

input int Range = 0; // 0 .. 100

double OnTester() { return(Range); }


Wiedergabe


 
Wahrscheinlich wird diese Standardfunktionalität niemanden benachteiligen.

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Merkmale der Sprache mql5, Tipps und Tricks

fxsaber, 2019.11.06 16:57

Bei der genetischen Optimierung reichen manchmal schon die ersten paar tausend Durchläufe aus, um das Ergebnis mehr oder weniger zu verstehen.

Wenn Sie automatisch viele Optimierungen durchführen, möchten Sie, dass alles schneller funktioniert. Deshalb brauchen wir einen Mechanismus zur Unterbrechung der Optimierung.

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

// Выключает Оптимизацию ( и одиночный проход)
bool OptimizationStop( void )
{
  return(!MTTESTER::IsReady() && MTTESTER::ClickStart(false));
}


Anwendung.

// Демонстрация прерывания Оптимизации.

sinput int inAmountPasses = 20; // Через сколько проходов закончить
input int Range = 0; // 0..10000

double OnTester()
{
  int Data[];
  
  return(FrameAdd(NULL, 0, 0, Data)); // Сгенерировали TesterPass
}

void OnTesterPass()
{
  static int Amount = 0;
  
  ulong Pass;
  string Name;
  long ID;
  double Value;
  int Data[];

  while (FrameNext(Pass, Name, ID, Value, Data))
    if (++Amount > inAmountPasses)
    {
      OptimizationStop(); // Как достигли нужного количества проходов, выключили оптимизатор.
      
      break;
    }
}
 
fxsaber:

Berater


Wiedergabe


Gehen wir der Sache auf den Grund