Bibliotheken: MultiTester - Seite 49

 
fxsaber #:
Sind Sie sicher, dass Sie die aktuelle Version von MTTester.mqh verwenden? Der folgende Code ist dort enthalten.

Ich erinnere mich, dass ich auf die neueste Version aktualisiert habe, aber ich weiß nicht, warum ich es versäumt habe, diese Datei zu aktualisieren. Jetzt funktioniert alles einwandfrei.

 
Добрый день!

Перестал компилироваться прилагаемый скрипт.
Выдается ошибка:
Parameterumwandlung Typ 'short[260]' in 'ushort[] &' ist nicht erlaubt MTTester.mqh 156 39
int user32::GetClassNameW(long,ushort&[],int) winuser.mqh 1414 37

Может быть что-то нужно поменять в MTTester.mqh ?

Ранее он прекрасно компилировался.

Не могли бы помочь?

С уважением, Александр
Dateien:
_Noc.mq5  62 kb
 
klycko #:
Das angehängte Skript wurde nicht mehr kompiliert.

Forum über Handel, automatisierte Handelssysteme und das Testen von Handelsstrategien.

Bibliotheken: MultiTester

fxsaber, 2025.06.08 16:57

Von KB lade ich die Quellen nur herunter, indem ich auf die entsprechende Datei klicke, wie auf dem Bild.

Ich habe es gerade auf diese Weise heruntergeladen, um zu prüfen - kompiliert ohne Fehler.

 
fxsaber #:

Herzlichen Dank dafür!

Alles funktioniert wieder!

 

Downloaed wie im obigen Bild gezeigt, aber Fehler in cmopile

Mttester.mqh kompiliert Fehler pls überprüfen für neue Build MT5 V5 BULD 5142


ERRROS :


parameter convertion type 'short[260]' to 'ushort[] &' is not allowed MTTester.mqh 135 39

'ReadFile' - keine der Überladungen kann auf den Funktionsaufruf angewendet werden MTTester.mqh 1283 21


 
dave365 #:

Downloaed wie im obigen Bild gezeigt, aber Fehler in cmopile

Forum über Handel, automatisierte Handelssysteme und das Testen von Handelsstrategien

Bibliotheken: MultiTester

fxsaber, 2025.06.12 14:55

Die Größe der aktuellen Version der Datei MTTester.mqh beträgt derzeit 123.822 Bytes.

 

Hallo @fxsaber

Ich hoffe, es geht Ihnen gut.

Ich verfolge deine Arbeit an dem Multitester. Ich lese die Beispiele und die Beschreibung der Bibliothek, wie es zu verwenden, aber im nicht in der Lage zu wissen, wie es verwendet werden soll.

Da ich die EA, die ich geschrieben habe, um zu testen/optimieren ein inidcator über 9 Symbole. Ich implementierte den Code wie folgt in einem EA.

//+------------------------------------------------------------------+
//|MultiTesterBase.mq5 |
//|Urheberrecht 2025, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"

#include <fxsaber\MultiTester\MultiTester.mqh>

#define  EA_NAME "IndicatorTesting\\EAs\\ash_indicator_testing.ex5"

// diese Funktion ist für die Erstellung der Aufgabenliste zuständig
void SetTesterSettings()
{
   TesterSettings.Add(EA_NAME, "EURUSD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "AUDNZD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "EURGBP", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "AUDCAD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "CHFJPY", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "CADSGD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "BTCUSD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "XAUUSD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "US500", PERIOD_CURRENT);
}
//+------------------------------------------------------------------+

aber ich weiß nicht, was zu tun, nachdem es, wie ich die Parameter gegen die gegebenen Symbole optimieren wollen, in Tester musste ich die ash_indicator_testing ea wählen, denn wenn ich nicht tun, so werde ich nicht mit der Optimierung Parameter. Nachdem ich dies getan hatte, wendete ich den oben eingefügten Codeschnipsel (multitester ea) auf den Chart an! Ist es die richtige Vorgehensweise oder mache ich es falsch? weil ich nicht in der Lage war, genügend Informationen über die Verwendung zu finden.

Bitte führen Sie mich auf diese.

Mit besten Grüßen

 
Hafiz Tamur Ahmed #:

Bitte leiten Sie mich weiter

Historisch gesehen wird MultiTester.mqh nicht für das Schreiben von Interaktionen mit Tester verwendet, da es ein Ereignismodell verwendet, das zu komplex ist. Ich empfehle daher sofort einen anderen Ansatz - über MTTester.mqh.


Hier ist ein gutes Beispiel.

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien.

Bibliotheken: MultiTester

fxsaber, 2024.01.17 12:13 AM

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

#define _CS(A) ((!IsStopped()) && (A))
#define  PAUSE 200

void Run( const string Settings )
{
  while (_CS(!MTTESTER::IsReady()))
    Sleep(PAUSE);

  MTTESTER::CloseNotChart();
    
  if (_CS(MTTESTER::SetSettings2(Settings)))
    MTTESTER::ClickStart(false);

  while (_CS(!MTTESTER::IsReady()))
    Sleep(PAUSE);
}

void OnStart()
{
  string Settings[] = {"[Tester]\n" +
                       "Expert=Input_String_Example_Alternative.ex5\n" +
                       "Symbol=EURUSD\n" +
                       "Period=M1\n" +
                       "Optimization=2\n" +
                       "Model=4\n" +
                       "FromDate=2023.01.01\n" +
                       "ToDate=2024.01.01\n" +
                       "ForwardMode=0\n" +
                       "Deposit=1000000000\n" +
                       "Currency=USD\n" +
                       "ProfitInPips=1\n" +
                       "Leverage=100\n" +
                       "ExecutionMode=0\n" +
                       "OptimizationCriterion=6\n" +
                       "[TesterInputs]\n" +
                       "inAmount=1||1||1||10||N\n" +
                       "inCount=2||2||1||20||N\n" +
                       "inPeriod=3||3||1||30||N\n" +
                       "inKoef=4.56||4.56||0.456000||45.600000||N\n" +
                       "inLog=7.89||7.89||0.789000||78.900000||N\n" +
                       "inFlag=true||false||0||true||N"
                      };

  for (uint i = ArraySize(Settings); (bool)i--;)
    Run(Settings[i]);
}

Die Testereinstellungen werden mit CTRL+C/V gespeichert. Man kann sie in separaten Dateien speichern und dann das Settings[] -Array im obigen Quelltext mit Daten aus diesen Dateien füllen.


Zusätzliches Beispiel.

Optimize EA over a time window
Optimize EA over a time window
  • 2025.06.30
  • Maker
  • www.mql5.com
Is it possible to make the Strategy Tester to Optimize EA running it automatically multiple times over a range of time windows...
 

Vielen Dank für die Antwort, aber im nicht in der Lage, die Umsetzung in Controller EA zu verstehen, wie es implementiert werden sollte und wie es verwendet werden sollte! Anwendung auf Chart oder im Tester verwendet werden. Weil ich das Forum gelesen habe, aber ich habe nicht gesehen, jedes Pop-up erscheinen oder irgendetwas dieser Art das einzige, was happend auf meiner Seite, wenn ich den Controller EA auf meinem Chart angewendet ist eine Zeile, die für den Tester warten und für das, was durchgeführt wird, und die Strategie-Tester unten konsequent flackert. Ich war nicht in der Lage, irgendetwas mit dem Tester zu tun!

Wäre schön, wenn ein kompletter End-to-End-Leitfaden in den Bibliotheksdokumenten zur Verfügung gestellt würde, so dass es für Neulinge wie mich einfach ist, die Dinge zu verstehen und entsprechend ihrer Szenarien zu implementieren!

Mit freundlichen Grüßen

CC: @fxsaber

 
Ermittlung der Anzahl der Ticks in einem Kalendermonat auf eine nicht standardisierte Weise.
#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/de/code/26132

#define  PRINT(A) Print(#A + " = " + (string)(A));

void OnStart()
{
  MqlTick Ticks[];
  
  // Anzahl der Häkchen für einen Kalendermonat nach staatlicher Methode.
  PRINT(CopyTicksRange(_Symbol, Ticks, COPY_TICKS_ALL, D'2025.08.01' * 1000, D'2025.09.01' * 1000 - 1));
  
  // Die Anzahl der Ticks pro Kalendermonat auf eine nicht standardisierte Weise.
  PRINT(MTTESTER::GetAmountFileMonthTicks(D'2025.08.01'));
}


Ergebnis.

CopyTicksRange(_Symbol, Ticks, COPY_TICKS_ALL, D'2025.08.01' * 1000, D'2025.09.01' * 1000 - 1) = 10820615
MTTESTER::GetAmountFileMonthTicks(D'2025.08.01') = 10820615