Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Vielen Dank für Ihre Hilfe beim Testen! Aktualisiert MTTester.mqh gebucht.
Herzlichen Dank für die Bibliothek
Dieser Expert Advisor drückt alle drei Sekunden auf die Schaltfläche Start, wenn er nicht auf Stop steht. Ich habe es geschafft, es zu drücken - wahr, sonst - falsch.
Standard-Situation.
Drücken Sie Start - die Berechnung beginnt.
Dieser Vorgang dauert ~125 ms.
Das ist keine Seltenheit.
Drücken Sie Start - entweder wird die sofortige Berechnung gestartet oder der Tester meldet, dass er die Berechnung nicht durchführen kann (z. B. FromDate >= ToDate).
Dieser Vorgang dauert etwa eine Sekunde. Die Bibliothek gibt einen Alarm aus, meldet aber true - die Schaltfläche wurde gedrückt.
Seltene Situation.
Start wird nicht gedrückt. Dies kann nur durch einen Neustart des Terminals behoben werden.
Ich habe keine Protokolle über diese Situation. Es dauert <10 Sekunden, um eine solche Situation zu erkennen. Es wird eine Meldung wie diese erscheinen.
Return false - die Taste wurde nicht gedrückt.
Das ist eine seltene Situation.
Start wird nicht gedrückt. Dies kann nur durch einen Neustart des Terminals behoben werden.
Ein entfernter WinServer-Rechner machte kontinuierlich Hunderte von einzelnen Durchläufen, ohne dass es zu Fehlern kam.
Sobald ich mich per RDP bei diesem Rechner anmeldete, hörte die Start-Taste auf zu klicken. Die Abhilfe besteht wie immer darin, das Terminal neu zu starten.
Es scheint, dass dieses Verhalten etwas mit ähnlichen Anmeldungen an dem Rechner zu tun hat. Sie können sich dutzende Male über RDP anmelden - alles funktioniert einwandfrei. Aber einige Anmeldungen werden für den Tester fatal.
Diejenigen, die auf den Start-Bug stoßen - achten Sie auf den Zusammenhang zwischen der Anmeldung am Rechner und dem Start-Button.
ZY Zufall oder nicht, WinServer bot an, seine Updates während dieser Anmeldung an der Maschine zu überprüfen.
Gute Bibliothek.
Ist es möglich, anzugeben, welche *.set-Datei mit Parametereinstellungen programmatisch für den Test übergeben werden soll?
Standardmäßig werden nur die gleichen Einstellungen verwendet, was nicht sehr praktisch ist.
Ist es möglich, die *.set-Datei mit den Parametereinstellungen für den Test programmatisch zu übergeben?
Beispiel.
Danke.
Ist es besser, die Einstellungen in einer einzigen Zeile zu übergeben, in der die Zeilen durch das Zeichen \n getrennt sind.
oder ein Array von Zeilen wie im Beispiel?
Und ist es möglich, die Einstellungen in der
MTTester Klasse statische Methode Run
static bool Run( const string ExpertName = NULL,
const string Symb = NULL,
const ENUM_TIMEFRAMES period = PERIOD_CURRENT,
const datetime iBeginTime = 0,
const datetime iEndTime = 0 )
einen Parameterstring (oder ein Array von Strings) hinzufügen, der die *.set EA-Einstellungen angibt?
Vielen Dank.
Ist es besser, die Einstellungen in einer einzigen Zeile zu übergeben, wobei die Zeilen durch das Zeichen \n getrennt sind?
oder ein Array von Zeilen wie in dem Beispiel?
GetSettings ist CTRL+C im Tester.
SetSettings ist CTRL+V im Tester.
Sehen Sie nach, mit welchen Daten CTRL+C/V funktioniert.
Und ob es möglich ist, in der
MTTester Klasse statische Methode Run
Ich verwende diese Methode nicht. Sie bleibt als Geschichte.
Das Beispiel zeigt alle MTTESTER-Methoden, die benötigt werden.
Ist es möglich, die *.set-Datei mit den Parametereinstellungen für den Test programmatisch zu übergeben?
Validate arbeitet mit vollwertigen ini-Dateien des Testers und einer reduzierten Version - set-Dateien für den Tester.
Wenn Sie viele ini/set-Dateien ausführen müssen, macht Validate das von Haus aus. Benutzen.
Validate arbeitet mit vollwertigen Tester-ini-Dateien und einer abgespeckten Version - set-files for Tester.
Wenn Sie viele ini/set-Dateien ausführen müssen, kann Validate das von Haus aus. Verwenden.
Danke.
Ich habe in diesem Kommentar eine Lösung gefunden, bei der die Set-Datei im erforderlichen Format als String-Array geladen wird.
https://www.mql5.com/ru/forum/318305/page34#comment_51842356
Ich habe auch ersetzt
typedef bool (*INITDEINIT)( void );
Zeiger der Callback-Aufrufe bei der Initialisierung und Deinitialisierung jedes Laufs
durch die Schnittstelle
Schnittstelle InitDeInit {
bool RunInit();
bool RunDeInit();
};
das in dem Erben
einer Klasse ähnlich der Struktur SETTINGS
und damit in der Methode RunInit().
Ich lade die Set-Datei des gewünschten Tools.
typedef bool (*INITDEINIT)( void ); - dieser Zeiger erlaubt es nicht zu wissen, welches Werkzeug initialisiert/de-initialisiert wird, daher ist es besser, einen Zeiger auf die Schnittstelle zu verwenden, da Zeiger auf Methoden noch nicht von MQL unterstützt werden.
Bei diesem Ansatz besteht keine Notwendigkeit, die Methode MTTester::Run zu ändern.