Erstellung eines Python-Handelssystems für MT.

 
Die Idee, ein Handelssystem in Python zu schreiben, kam auf, und da dies der Fall war, warum sollte es nicht der Öffentlichkeit zugänglich gemacht werden. Vielleicht ist ja außer mir noch jemand daran interessiert.
Aber warum Python?
- Das ist eine komplizierte Frage mit vielen Aspekten. Ich werde versuchen, sie zu beantworten.
In der Vergangenheit habe ich vier Terminals auf meinem Computer installiert. Einige von ihnen verfügen über eine vollwertige API, andere über ihre eigenen Nicht-Standard-Sprachen, wieder andere über beides.
Das erste, im fernen 2008, war das Terminal mit API - es wurde für die Erstellung erster Systeme verwendet, die schließlich die Sprachen C++/C# erreichten. Als weitere Terminals (mit oder ohne Sprachen) hinzukamen, wurde das System nicht umgestaltet, sondern nur eine neue Schnittstelle zwischen dem Terminal und dem System entwickelt. So ist das System einheitlich, und um mit einem anderen Terminal zu arbeiten, muss nur die gewünschte Schnittstelle angeschlossen werden. Im einfachsten Fall dauert es nicht länger als einen Tag. Und es besteht kein Wunsch, das System für ein bestimmtes Terminal umzugestalten.
Das Terminal ist nur ein Anbieter von Daten und ein Ausführer von Anfragen. Das ist alles - mehr wird nicht verlangt.
Dies ist die Ideologie des Systems.
Aber das ist nur ein Aspekt. Die anderen finden Sie in den nächsten Beiträgen. Ich verspreche nicht, oft zu schreiben.
 
In Python, wer will das schon? Ich habe vor, in etwa 3 Monaten einige Dinge nach Java zu portieren. Ich denke darüber nach. Und ich habe noch nicht einmal eine Broker-API in Python gesehen. Obwohl... vielleicht gibt es natürlich welche.
 
Ja, aber warum Python?
Eigentlich interessierte mich Python, weil es viele Bibliotheken (Module) hat, darunter auch solche für maschinelles Lernen (MO), womit ich mich seit einem Jahr beschäftige. Allerdings habe ich noch nicht mit Python gearbeitet - ich habe noch keine Zeile geschrieben). Nun, ich habe etwas Abstraktes versucht, aber ohne konkrete Ziele.
Um Python jedoch speziell auf Handelssysteme anwenden zu können, ist es zunächst notwendig, seine Interaktion mit TS und Terminal zu debuggen.
Ich halte denAufruf von Python-Funktionen aus MQL via DLL für falsch - um eine Python-Funktion auf diese Weise aufzurufen, muss ich einen Interpreter ausführen und ihn zum Aufrufen der Funktion verwenden - und das ist ein sehr langer Prozess für jeden Aufruf.
Ich habe ein anderes Konzept: TC ist eine vollwertige EXE-Anwendung, die alle bisherigen Daten und den notwendigen Verlauf speichert. Wir rufen also nur Funktionen aus einer bereits laufenden Anwendung auf - der Zeitaufwand für den Aufruf ist minimal.
Einige Leute sagen - schreiben - dass Python sehr langsam ist. Das ist nicht wahr. Für die meisten Systeme (auch Intraday) ist die Leistung von Python mehr als ausreichend, wie wir später sehen werden. Was die HFT betrifft, so können wir mit ihnen nicht konkurrieren - es geht um anderes Geld). und andere Aufstriche).
 
Viktar Dzemikhau:
Bei Python weiß ich nicht, wer das will. Ich habe vor, in etwa 3 Monaten einige Dinge nach Java zu portieren. Ich denke darüber nach. Und in Python habe ich noch nicht einmal eine API eines Brokers gesehen. Obwohl... vielleicht gibt es natürlich welche.

Bleiben Sie dran, lassen Sie uns auch die API machen. In diesem Thema. Nicht alle auf einmal). Wenn es Interesse gibt, auf der Forumsseite.

IMHO ist Java keine Option. Ich kann mich irren.

 
Konstantin Nikitin:
Als Alternative können Sie C++ mit QT schreiben. Einer der Vorteile ist, dass Sie sofort für die plattformübergreifende Kompilierung schreiben können.

Ich stimme zu. Aber die Absicht in diesem Thread ist Python und die Verwendung seiner Bibliotheken (Module). Am Ende werden wir eine plattformübergreifende (Crossterminal-) API haben. Für jede Programmiersprache.

Aber im Allgemeinen ist Python für die meisten von TC mehr als genug. Und die Schnittstelle zum Schreiben zwischen dem TC und einem beliebigen Terminal dauert, nun ja, höchstens 1 Tag.

Aber nicht auf einmal, je nach freier Zeit. Ich verspreche nichts auf regelmäßiger Basis.

 
Der Python-Interpreter wird einmal ausgeführt, dann können Sie ihn in einem EA oder Indikator verwenden. Alles ist bereits erledigt und steht im Forum zur Verfügung. Es gibt einen Thread über maschinelles Lernen. Verwenden Sie https://github.com/RandomKori/Py36MT5
 
Grigoriy Chaunin:
Der Python-Interpreter wird einmal ausgeführt und kann dann in Ihrem Expert Advisor oder Indikator verwendet werden. Alles wurde bereits erledigt und ist im Forum verfügbar. Es gibt einen Thread über maschinelles Lernen. Verwenden Sie https://github.com/RandomKori/Py36MT5

Ja, ich danke Ihnen. Aber die Idee ist anders. Sie benötigen eine vollwertige Anwendung, eine EXE, um sie zu implementieren. Aber etwas könnte sich als nützlich erweisen. Es ist schade, dass der Quellcode der DLL nicht vorhanden ist, aber das ist nicht entscheidend.

 
Die Quellen sind alle dort aufgeführt.
 
Grigoriy Chaunin:
Alle Quellen sind dort aufgeführt.

Ja, in der Tat, das gesamte DLL-Projekt ist in VS. Unerforscht.

Und irgendwie habe ich diesen Link im MoD-Thread übersehen.

Aber normale Helden machen immer die Runde (c). Und wir werden unseren eigenen Weg gehen). Dieser Thread hat andere Aufgaben.

 

Beginnen wir mit der Erstellung einer Python-Anwendung, die Daten mit dem Terminal austauscht - Daten vom Terminal empfangen und in das Ausgabefenster ausgeben sowie Daten vom SendData-Fenster an das Terminal senden. Sie wird für die Prüfung der Interaktion zwischen dem TC und dem Terminal erforderlich sein.

Bislang hat die Anwendung keine Funktionen.

Hier ist das Fenster.

Python-Code im Anhang.

Dateien:
PyTS.txt  2 kb
 
Yuriy Asaulenko:

Beginnen wir mit der Erstellung einer Python-Anwendung, die Daten mit dem Terminal austauscht - Daten vom Terminal empfangen und in das Ausgabefenster ausgeben sowie Daten vom SendData-Fenster an das Terminal senden. Sie wird für die Prüfung der Interaktion zwischen dem TC und dem Terminal erforderlich sein.

Bislang hat die Anwendung keine Funktionen.

Hier ist das Fenster.

Python-Code im Anhang.

Wo sind die Kommentare im Code? Glauben Sie, dass jeder hier Python versteht und Ihre Ideen und Kommentare überflüssig sind?

Was soll der ganze Mist?"" Окно вÐомаав """ ?

Welche Bibliothek importieren tkinter, wo die Beschreibung der Funktionen (Methoden)?