CMD/Subprocessing von MetaTrader5 Interaktionen mit einem Über-skript

 

hey, habe folgendes bereits gefunden und einige hilfreiche sachen raus ziehen können, sofern es praktisch klappt. https://www.metatrader5.com/en/terminal/help/start_advanced/start#command_line

Habe ein python skript was nacheinander mit MetaTrader über subprocessing interagieren soll, wenn ich so schonmal ein MQL skript im startegy-tester launchen kann ist das TOP :)


also:

1.Ich müsste noch einen Befehl haben der History Daten runterlädt, also dies nicht kurz vor dem launch sondern unabhängig davon, sodass auch sicher alles gründlich vorhanden ist.

2.desweiteren überlege ich gerade wie ich "check" befehle ableiten kann ( falls es sowas nicht schon gibt), welche prüfen sollen,

ob das Historienfenster korrekt initiiert ist,

ob die EA initialisierung aufgrund fehler abbricht,

ob der Test aufgrund fehler mittendrin abgebrochen hat und

ob der Strategy Tester Erfolgreich durchgelaufen ist

3. Desweiteren wäre es großartig irgendwie durch einen derartigen Befehl einen Screenshot der Ergebnisse zu machen und sie per befehl zu downloaden.


mit befehlen meine ich natürliche externe Befehle, die über CMD abrufbar sind/ fürs subprocessing funktionieren.

Habt ihr eine Idee ob das existiert und wie ich es alternativ umsetzen könnte?

Gruß Bayne

Platform Start - For Advanced Users - MetaTrader 5 Help
Platform Start - For Advanced Users - MetaTrader 5 Help
  • www.metatrader5.com
After installation, a group of programs of the trading platform is added to the Start menu, and the program shortcut is created on the desktop. Use them to run the platform. Two copies of the platform cannot run from the same directory. If you need to run multiple copies at the same time, install the appropriate number of programs in different...
 
Ich würde einen (oder mehr) eigenen EA oder Skript schreiben, der die Daten lädt und prüft, und das Ergebnis im Common-Verzeichnis hinterlegt, und den ich dann wie den anderen aber eben vorher bzw. unabhängig vom ersten starten würde.
 

Der Weg, den du gehen musst, ist folgend.


Eine oder mehrere neue Instanzen vom MT5 erstellen.

Einfach den Ordner "C:\Program Files\MetaTrader 5" in einen anderen Ordner kopieren. Umbenennen und einmal die terminal64.exe starten.

Danach ist die neue Instanz lauffähig.

Hier mein Beispiel


So kannst du, wenn nötig den MT5 4 mal starten und testen.Vor rausgesetzt dein PC hat genug Kerne.


Python Programm erstellen:


1. Standard config.ini laden und parsen. https://wiki.python.org/moin/ConfigParserExamples

2. Parameter ändern und config.ini in den Ordner speichern der die zu startende Instanz enthält.Name der Ini ist frei wählbar.

    In der Ini wird auch festgelegt ob ein Strategie Test gestartet werden soll.

    Hier muss auch das zu verwendene Konto angegeben werden.

3. Subprocess aufrufen:

    "Pfad zur 1. Instanz + config.ini"

4. Eventuell prüfen ob der Process gestartet ist.Bei mir dauert es manchmal bsi zu 2-3 sekunden bis der Process da ist.

    Routinen bietet python selber.

5. Parsen der Log Files vom MT5

    Erkennen von Fehlern / Ausgaben / Beenden des Tests


Steuern wie die es möchtest per "Befehl" kannst du den MT5 nicht.

Ein API bietet er nur eingeschränkt. Daten lesen ist aktuell das höchste der Gefühle

Du kannst aber den MT5 aus Python steuern. In dem die Mouse simuliert wird.

https://stackoverflow.com/questions/37990545/how-to-control-a-windows-application-from-python


Wenn du das erstmal geschafft hast kannst du dir überlegen wie man mehrere Instanz asynchron startet .


Das wird erstmal abgearbeitet. Wenn Fragen dazu entstehen frag.




   

ConfigParserExamples - Python Wiki
  • wiki.python.org
These are some examples on using ConfigParser, assuming the following INI file... Explanation: We first import the configparser, tell it to read the file, and get a listing of the sections. Sections are listed in square brackets []. Next, we are going to get some settings, after defining a helper function. The Function: Now the code:
Grund der Beschwerde: