Fare un sistema di trading Python per la MT.

 
L'idea di scrivere un sistema di trading in Python si è verificata, e dal momento che l'ha fatto, perché non renderlo disponibile al pubblico. Forse qualcuno oltre a me potrebbe essere interessato anche a questo.
Ma perché Python?
- È una domanda complicata con molti aspetti. Cercherò di rispondere.
Storicamente, ho quattro terminali installati sul mio computer. Alcuni di loro con API complete, alcuni con i loro linguaggi non standard, alcuni con entrambi.
Il primo, nel lontano 2008, è stato il terminale con API - è stato usato per creare i primi sistemi, che alla fine hanno raggiunto i linguaggi C++/C#. Quando sono stati aggiunti altri terminali (con o senza lingue), il sistema non è stato riprogettato, solo è stata sviluppata una nuova interfaccia tra il terminale e il sistema. Così, il sistema è unificato, e per lavorare con un altro terminale, basta collegare l'interfaccia richiesta. Nel caso più semplice, non ci vuole più di un giorno. E non c'è il desiderio di riprogettare il sistema per un terminale particolare.
Il terminale è solo un fornitore di dati e un esecutore di richieste. Questo è tutto - non è richiesto altro.
Questa è l'ideologia del sistema.
Ma questo è solo un aspetto. Gli altri sono nei prossimi post. Non prometto di scrivere spesso.
 
In Python, chi vuole farlo? Ho in programma di portare alcune cose a Java tra circa 3 mesi. Ci sto pensando. E non ho mai visto nessuna API di broker in python. Anche se... forse ce ne sono, naturalmente.
 
Sì, ma perché Python?
In realtà, Python mi interessava perché ha un sacco di librerie (moduli), comprese quelle per il Machine Learning (apprendimento automatico o MO), che è quello che ho fatto nell'ultimo anno. Tuttavia, non ho lavorato con Python - non ho ancora scritto una riga). Beh, ho provato qualcosa di astratto, ma senza obiettivi specifici.
Tuttavia, al fine di applicare Python specificamente ai sistemi di trading è necessario, per cominciare, debuggare la sua interazione sia con il TS che con il terminale.
Ritengo chechiamare funzioni Python da MQL via DLL sia sbagliato - per chiamare funzioni Python in questo modo, devo eseguire un interprete e usarlo per chiamare la funzione - e questo è un processo molto lungo per ogni chiamata.
Io ho un concetto diverso: TC è un'applicazione EXE completa che memorizza tutti i dati precedenti e la storia necessaria. Così chiamiamo solo la funzione dall'applicazione già in esecuzione - il tempo di chiamata è minimo.
Alcuni dicono - scrivono - che Python è molto lento. Questo non è vero. Per la maggior parte dei sistemi (anche intraday) le prestazioni di Python sono più che sufficienti, e lo vedremo più avanti. Per quanto riguarda gli HFT, non possiamo competere con loro a nessuna velocità - sono altri soldi). E altri spread).
 
Viktar Dzemikhau:
In Python, non so chi voglia farlo. Ho in programma di portare alcune cose a Java tra circa 3 mesi. Ci sto pensando. E in python non ho nemmeno visto API di nessun broker. Anche se... forse ce ne sono, naturalmente.

Aspetta, facciamo anche l'API. In questo thread. Non tutti insieme). Se c'è interesse, sul lato del forum.

IMHO, Java non è un'opzione. Potrei sbagliarmi.

 
Konstantin Nikitin:
In alternativa, potete scrivere in C++ usando QT. Uno dei vantaggi è che si può immediatamente scrivere per la compilazione multipiattaforma.

Sono d'accordo. Ma l'intenzione in questo thread è Python e l'utilizzo delle sue librerie (moduli). E ci ritroveremo con un'API multipiattaforma (crossterminale). Per qualsiasi linguaggio di programmazione.

Ma, in generale, per la maggior parte di TC Python è più che sufficiente. E l'interfaccia per scrivere tra il TC e qualsiasi terminale è, beh, 1 giorno al massimo.

Ma non subito, dipende dal tempo libero. Non prometto niente su base regolare.

 
L'interprete Python viene eseguito una volta, poi puoi usarlo in un EA o in un indicatore. Tutto è già fatto ed è disponibile sul forum. C'è un thread sull'apprendimento automatico. Usa https://github.com/RandomKori/Py36MT5
 
Grigoriy Chaunin:
L'interprete Python viene eseguito una volta e poi puoi usarlo nel tuo Expert Advisor o indicatore. Tutto è già stato fatto ed è disponibile sul forum. C'è un thread sull'apprendimento automatico. Usa https://github.com/RandomKori/Py36MT5

Sì, grazie. Ma l'idea è diversa. Avete bisogno di un'applicazione completa, un EXE, per implementarla. Ma qualcosa può tornare utile. È un peccato che il codice sorgente della DLL sia assente, ma non è cruciale.

 
Le fonti sono tutte esposte lì.
 
Grigoriy Chaunin:
Tutte le fonti sono esposte lì.

Sì, infatti, l'intero progetto DLL è in VS. Sottoesplorato.

E in qualche modo ho perso quel link nel thread del MoD.

Ma, gli eroi normali fanno sempre il giro (c). E andremo per la nostra strada). Questo thread ha altri compiti.

 

Iniziamo a creare un'applicazione Python che scambierà dati con il terminale - ricevere dati dal terminale e inviarli alla finestra di output, così come inviare dati al terminale dalla finestra SendData. Sarà necessario per testare l'interazione di TC con il terminale.

Finora, l'applicazione non esegue alcuna funzione.

Ecco la finestra.

Codice Python in allegato.

File:
PyTS.txt  2 kb
 
Yuriy Asaulenko:

Iniziamo a creare un'applicazione Python che scambierà dati con il terminale - ricevere dati dal terminale e inviarli alla finestra di output, così come inviare dati al terminale dalla finestra SendData. Sarà necessario per testare l'interazione di TC con il terminale.

Finora, l'applicazione non esegue alcuna funzione.

Ecco la finestra.

Codice Python in allegato.

Dove sono i commenti nel codice? Pensi che tutti qui capiscano Python e le tue idee, i tuoi commenti saranno superflui?

Cosa c'è in tutti questi lanci di dadi""" Окно вомаав """ ?

Quale libreria importa tkinter, dove la descrizione delle sue funzioni (metodi)?