Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Optimizer aus EA-code starten

Geschrieben

Ich brauch mal jemanden, der sich mit Windows-Programmierung auskennt. Selbst komm ich mit folgendem Problem nicht mehr weiter. http://www.tom-next.de/community//public/style_emoticons/default/fool.gif

 

Ich möchte den MT4-Optimierer aus einem EA heraus starten. Mit folgendem Code klappt es z.B. dass ich eine neue Instanz des MT4 öffne und dessen Optimierer mit dem übergebenen Setting-file starte:

#import "shell32.dll"
...
int start = ShellExecuteA(0, "open", "terminal.exe", FileOptim,OptPathTester, 3)

FileOptim ist hierbei das zuvor erstellte ini-file, mit dem ich die Optimierung steuere. OptPathTester ist der Pfad zum MT4, der gestartet wird.

Das funktioniert soweit.

Ich kann aber als Pfad nicht die aktuell laufenden MT4-Instanz angeben (kann ich schon, aber das funktioniert dann nicht).

 

Also, weiss jemand, wie ich es vermeiden kann, den Umweg über eine 2. Instanz zu gehen und wie ich den Optimierer des aktuell laufenden MT4 starten kann?

Featured Replies

Geschrieben

Glaube zwar nicht, dass dies zu deiner Lösung beiträgt aber wer weiß, grade Ahnungslose finden so etwas manchmal schneller http://www.tom-next.de/community//public/style_emoticons/default/laugh.png

 

http://iticsoftware....tion-usage.html

 

und

 

Word Link (Mit Code und Erklärungen)

Geschrieben
  • Autor

Danke Vola! http://www.tom-next.de/community//public/style_emoticons/default/door.gif

Die hatten mit Sicherheit das selbe Problem und haben es irgendwie gelöst. Verraten natürlich nicht wie...

 

Da komme ich ursprünglich her. Das Prinzip, das in diesem Artikel beschrieben wird, benutzt einen 2. MT4 für die Optimierung. Das funktioniert bei mir schon, find ich aber zu umständlich, weshalb ich es gerne mit einer einzigen Instanz machen würde.

Geschrieben

Was soll genau ausgeführt werden?

 

Man könnte die Parameter Einstellungen des Tester vorher manuell so einstellen wie er dann Testen soll

und in MQL4 programmiert man, das auto. nur der Start Button vom Tester gedrückt wird.

 

Oder sollen auch die Parameter im Tester verändert werden.

Geschrieben
  • Autor

Was soll genau ausgeführt werden?

 

Man könnte die Parameter Einstellungen des Tester vorher manuell so einstellen wie er dann Testen soll

und in MQL4 programmiert man, das auto. nur der Start Button vom Tester gedrückt wird.

 

Oder sollen auch die Parameter im Tester verändert werden.

Man übergibt dem Programmaufruf ein Ini-File, das die nötigen settings bereits beinhaltet.

Erklärt ist das in der MT4 Terminal-Hilfe (F1 => Tools => Configuration at startup) und dann "Settings of the Strategy Tester Launch"

Dieses ini-file gibt dann an, welches Setting-File verwendet werden soll, den Testzeitraum, Symbol, Timeframe... also alles, was man halt über die Oberfläche auch einstellen kann, nur automatisch.

Dadurch, dass ich dieses Ini-File über den EA-Code manipulieren kann, habe ich somit volle Flexibilität über die Optimierung, kann voll-automatische walk-forward tests machen, die EA-Parameter während der EA läuft automatisch optimieren lasse usw. Man muss sich halt nur Kriterien überlegen, was man wann testen will.

Prinzipiell funktioniert das ja auch, aber halt eben nur mit einer 2. MT4 Instanz, weil ich nicht weiss, wie man die selben Operationen innerhalb einer bereits laufenden terminal Instanz ausführt.

Geschrieben

Wie wäre es mit AutoIt, welches du aus deinem EA startest? Oder vielleicht lässt sich ja sogar alles, was du vorhast, über AutoIt scripten und MT4 führt dann aus.

 

Mit AutoIt kannst du sehr einfach Tastenkombinationen und Mausaktionen simulieren. Das ist nicht die klassische "ich nehme ein Makro auf und spiele es ab"-Sache. Die Scripte könne auf Fenster warten, INIs auslesen und verarbeiten, Steuerelemente direkt ansprechen uvm. Nutze ich sehr häufig (allerdings außerhalb des Tradings).

Geschrieben
  • Autor

Wie wäre es mit AutoIt, welches du aus deinem EA startest? Oder vielleicht lässt sich ja sogar alles, was du vorhast, über AutoIt scripten und MT4 führt dann aus.

Danke! http://www.tom-next.de/community//public/style_emoticons/default/flowers.gif

Hört sich interessant an. Werd ich mal reinschnuppern. Wirft mein Konzept jetzt etwas über den Haufen, aber wenn ich keine andere Lösung finde, dann probier ich das mal aus.

 

Mein Ansatz wäre jetzt eher in Richtung Shell32.dll gegangen. Bin mir relativ sicher, dass eine Funktion daraus das kann, was ich brauche. Leider bin ich auf dem Gebiet aber eine ziemliche Niete...

Geschrieben

Letzter Versuch, ist MT5 aber vllt. als Vorlage ?

 

//+------------------------------------------------------------------+

//| auto_optimization_204.mqh |

//| Copyright © 2006, XEON |

//| xeon@nm.ru |

//+------------------------------------------------------------------+

 

auto_optimization_204.mqh

Geschrieben
  • Autor

Letzter Versuch, ist MT5 aber vllt. als Vorlage ?

Du liegst da schon nicht schlecht http://www.tom-next.de/community//public/style_emoticons/default/friends.gif

Ist sogar MT4. Das ist ein Code, für die 2-Instanzen-Lösung. Die hab ich schon.

Geschrieben

Programmaufruf ein Ini-File, das die nötigen settings bereits beinhaltet.

 

Du könntest einen auto restart deiner MT4 Instanz durchführen lassen. Mit deiner Ini-File.

Nachteil: Deine MT4 Instanz wäre ein paar Sekunden Offline.

Geschrieben
  • Autor

Du könntest einen auto restart deiner MT4 Instanz durchführen lassen. Mit deiner Ini-File.

Wie ginge das?

Geschrieben

Man übergibt dem Programmaufruf ein Ini-File, das die nötigen settings bereits beinhaltet.

Erklärt ist das in der MT4 Terminal-Hilfe (F1 => Tools => Configuration at startup) und dann "Settings of the Strategy Tester Launch"

Dieses ini-file gibt dann an, welches Setting-File verwendet werden soll, den Testzeitraum, Symbol, Timeframe... also alles, was man halt über die Oberfläche auch einstellen kann, nur automatisch.

Dadurch, dass ich dieses Ini-File über den EA-Code manipulieren kann, habe ich somit volle Flexibilität über die Optimierung, kann voll-automatische walk-forward tests machen, die EA-Parameter während der EA läuft automatisch optimieren lasse usw. Man muss sich halt nur Kriterien überlegen, was man wann testen will.

Prinzipiell funktioniert das ja auch, aber halt eben nur mit einer 2. MT4 Instanz, weil ich nicht weiss, wie man die selben Operationen innerhalb einer bereits laufenden terminal Instanz ausführt.

RestartTerminal.bat, du musst diese Windows Batch Datei in dein MetaTrader 4 Verzeichnis kopieren.

Restart.mq4, dieses Beispiel mql4 Script startet die Batch Datei und beendet danach dein MT4, die dann noch laufende Batch Datei startet dein MT4 wieder neu und beendet sich dann selbst.

 

Jetzt musst du nur noch die RestartTerminal.bat mit einem Text editor anpassen also deine Ini-File hinzufügen.

 

Auch wenn du mehrere MT4 Instanzen installiert hast erkennt der Code welche er starten muss.

Restart.mq4

RestartTerminal.bat.zip

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.