MetaTrader 5 Python User Group - wie man Python in Metatrader verwendet - Seite 15

 
Maxim Dmitrievsky:

ein Befehl und eine Liste von Parametern können als Zeichenkette, getrennt durch Trennzeichen, übergeben werden. Wenn der Expert Advisor die Nachricht entpackt, weiß er, was zu tun ist


Der Befehl OrderSend ?

Welches Format sollte die Zeichenkette haben? Zeichenfolge ? Im Socket-Beispiel wird der String vom mql5-Socketan result übergeben: socketreceive(int sock,int timeout)...result+=CharArrayToString(rsp,0,rsp_len);. Ergebniszurückgeben;

 
slukin:

Befehl OrderSend ?

Welches Format sollte die Zeichenkette haben? Zeichenfolge ? Im Socket-Beispiel wird der String vom mql5-Socket-Clientan result übergeben: socketreceive(int sock,int timeout)...result+=CharArrayToString(rsp,0,rsp_len);. Ergebniszurückgeben;

nicht OrderSend(), sondern nur eine Zeichenkette mit den ersten 3 Buchstaben, z.B. "BUY", gefolgt von einer Liste von Argumenten: lot, take, sl. Der Expert Advisor liest die Zeichenkette, sieht die ersten 3 Buchstaben buy und stellt eine Trog-Anfrage

d.h. einfach ein einfaches Austauschprotokoll zwischen Anwendungen in freier Form entwerfen
 
Maxim Dmitrievsky:

nicht OrderSend(), sondern nur eine Zeichenkette mit den ersten 3 Buchstaben, z.B. "BUY", und dann eine Liste von Argumenten: lot, take, sl. Der Expert Advisor liest die Zeichenkette, sieht, dass die ersten 3 Buchstaben "buy" sind und stellt eine Trog-Anfrage

Denken Sie z.B. an ein einfaches Austauschprotokoll zwischen Anwendungen, in freier Form


Ein Beispiel von einem erfahrenen Entwickler wäre sehr hilfreich.

 
Roffild:

Ich habe bereits ein vollwertiges Python an das Terminal angeschlossen, und Sie verwenden immer noch langsam laufende Sockets und Pipes, um den Austausch vorzunehmen.

Wenn es nicht zu schwierig ist, wie lange dauert ein einziger Test in einem beliebigen Zeitrahmen?

Das heißt, uns interessiert die Frage, wie lang die Optimierungszeit im Tester ist und ob Fehlberechnungen möglich sind?

In früheren Kommentaren haben Sie geschrieben, dass ich Hintergrundwissen in JAVA brauche, um es zu verstehen.

Ich kenne auch einige C# und Python, ich kann in MQL4,5 programmieren, kann ich Ihre Bibliotheken ziemlich leicht zu meistern, wie viel schwieriger kann sie sein?

 
slukin:

Ein Beispiel von einem erfahrenen Entwickler wäre sehr hilfreich.

es bleibt keine Zeit für Erklärungen, es sei denn, es gibt später einen Artikel mit Beispielen

 
forexman77:

Ist es nicht schwierig zu schreiben, wie lange ein einzelner Test in einem beliebigen Zeitrahmen dauert?

Das heißt, ich bin in der Frage interessiert, wie lange die Optimierung in der Tester und ob es falsche Berechnungen?

In früheren Kommentaren haben Sie geschrieben, dass ich Hintergrundwissen in JAVA brauche, um es zu verstehen.

Ich weiß, einige C# und Python, ich kann in MQL4,5 programmieren, kann ich Ihre Bibliotheken ziemlich leicht zu meistern, wie viel schwieriger kann sie sein?

Die Optimierung im Strategy Tester ist die gleiche wie die übliche. Fehlerhafte Berechnungen aufgrund beschädigter Daten während der Übertragung zu Python und zurück sind ausgeschlossen, da die Übertragung über den Arbeitsspeicher und nicht über instabile Sockets oder Dateien erfolgt.

Ja, ich habe in meiner Bibliothek Code in MQL, Java und Python. Sie müssen jedoch nicht Java verwenden, wenn Sie Apache Spark usw. nicht benötigen.

 

MetaTrader 5 build 2055 beta: Integration mit Python, C++-ähnlicher Umfang und massive Verbesserungen im Strategie-Tester

Terminal: Добавлено API для запроса данных из терминала MetaTrader 5 через приложения, использующие язык Python

Python ist eine moderne High-Level-Programmiersprache für die Entwicklung von Skripten und Anwendungen. Enthält zahlreiche Bibliotheken für maschinelles Lernen, Prozessautomatisierung, Datenanalyse und Visualisierung.

DasMetaTrader-Paket für Python wurde entwickelt, um einfach und schnell Börsendaten über Interprozesskommunikation direkt vom MetaTrader 5-Terminal zu erhalten. Die so gewonnenen Daten können für statistische Berechnungen und maschinelles Lernen weiterverwendet werden.



Verbinden Sie

  1. Laden Sie die neueste Version von Python vonhttps://www.python.org/downloads/windows herunter.
  2. Aktivieren Sie bei der Installation von Python das Kontrollkästchen "Python X.X zu PATH% hinzufügen", damit Sie Skripte in Python von der Kommandozeile aus ausführen können.
  3. Installieren Sie das MetaTrader 5 Modul von der Kommandozeile aus
    pip install MetaTrader5
  4. Hinzufügen der Pakete matplotlib und pytz
    pip install matplotlib
    pip install pytz

Funktionen

  • MT5Initialize- stellt die Verbindung zum MetaTrader 5 Terminal her
  • MT5Shutdown- schließt die zuvor aufgebaute Verbindung zum MetaTrader 5 Terminal
  • MT5TerminalInfo- empfängt den Zustand und die Parameter des angeschlossenen MetaTrader 5 Terminals
  • MT5Version- liefert die Terminalversion MetaTrader 5
  • MT5WaitForTerminal- wartet, bis das Terminal MetaTrader 5 sich mit dem Handelsserver verbindet
  • MT5CopyRatesFrom- empfängt Balken vom MetaTrader 5 Terminal ab dem angegebenen Datum
  • MT5CopyRatesFromPos- empfängt Balken vom MetaTrader 5 Terminal ab dem angegebenen Index
  • MT5CopyRatesRange- empfängt Balken im angegebenen Datumsbereich vom MetaTrader 5 Terminal
  • MT5CopyTicksFrom- empfängt Ticks vom MetaTrader 5 Terminal ab dem angegebenen Datum
  • MT5CopyTicksRange- empfängt Ticks für einen bestimmten Datumsbereich vom MetaTrader 5 Terminal
Welcome to Python.org
Welcome to Python.org
  • 2019.05.15
  • www.python.org
The official home of the Python Programming Language
 

Und? Arbeitet jemand in dieser Richtung? Sie scheint nicht begeistert zu sein.

Viel Glück!

 
Vladimir Perervenko:

Und? Arbeitet jemand in dieser Richtung? Er scheint nicht begeistert zu sein.

Viel Glück!

Nicht in diesem Fall. Und ich verwende Python für NS-Tests.
 
Roffild:

Die Optimierung im Prüfgerät erfolgt wie gewohnt. Fehlerhafte Berechnungen aufgrund von Datenbeschädigungen während der Übertragung von und zu Python sind ausgeschlossen, da die Übertragung über den Arbeitsspeicher und nicht über instabile Sockets oder Dateien erfolgt.

Ja, ich habe in meiner Bibliothek Code in MQL, Java und Python. Sie müssen jedoch nicht Java verwenden, wenn Sie Apache Spark usw. nicht benötigen.

Ich stimme zu, daß es über den Speicher schneller geht, aber ich stimme nicht zu, daß Sockets oder Pips nicht stabil sind, und die verrückte Speichergeschwindigkeit bei der Organisation eines Connectors ist unnötig, weil es einen Latenzaustausch <--- (Zwischenserver ist möglich) ---> Terminal gibt, für den selbst Hunderte von aufeinanderfolgenden Sockets innerhalb einer Maschine übermäßig viel sind...