Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Tutto è pronto ora, ed è il momento di collegare il nostro TS Python al terminale MT. Tuttavia, ci sono alcune azioni da fare per farlo.
Il nostro futuro TC legge e scrive file nella cartella C:\PyTS, ma il terminale MT, per qualche capriccio sconosciuto di MQ, può leggere-scrivere file solo nella propria directory - C:\<molte lettere e numeri>\Files, e in nessun altro modo. Naturalmente, è possibile cambiare le impostazioni nel codice Python, e lasciare che si scambi nella cartella nativa MQ, ma ho bisogno che il terminale legga-scriva i file da lì e dove voglio io, non dove vuole lui, il terminale. Tanto più che sarà necessario in futuro.
In realtà, questa domanda è stata risolta un paio di anni fa, nel mio topic - https://www.mql5.com/ru/forum/79922.
Tutto si risolve con gli strumenti di Windows. Nella cartella del terminale C:\<un sacco di lettere e numeri> \Files si mette il riferimento alla cartella C:\PyTS, che viene interpretata dal terminale (e anche dal sistema operativo) come sottocartella Files\PyTS e il terminale scrive lì, in C:\PyTS, come nella sua nativa).
Questo viene fatto dalla linea di comando, usando l'utilità nativa MKLINK di Windows. Per coloro che non possono farlo da soli, ecco una descrizione dettagliata:
Digitare in execute - cmd, o dal menu - Utilities-Windows -> Command Prompt. Si ottiene una finestra dove si digita MKLINK o mklink. Qui abbiamo:
Ora scrivi cd... più volte fino ad arrivare a C:\.
Poi apri Windows Explorer, e vai a C:\<un sacco di lettere e numeri> \Files, dove il terminale mette i file, e seleziona e copia il percorso Ctrl-Ins.
Tornate alla finestra del prompt dei comandi e lì scrivete cd <spazio>, usate Shift-Ins per incollare il percorso di ... \Files, e Invio. Abbiamo capito:
Ora nella linea di comando scriviamo - mklink /D PyTS c:\PyTS , e come al solito - Invio. Qui lo prendiamo:
Vediamo che è stato creato un collegamento. Vediamo che è apparso nella cartella ......\Files e vi accediamo - vediamo i file nella cartella C:\PyTS. )) Questo è tutto.
Ora, tutti i file scritti dal terminale nella cartella ...Files\PyTS saranno, infatti, scritti nella cartella C:\PyTS.
.
Il codice MQL è anche nell'allegato. - MQL legge la storia e la passa all'applicazione Python. Python lo accetta e lo stampa. In Python non dimenticare di premere il pulsante Start. )
Spero che non ci sia bisogno di scrivere commenti sul codice MQL - c'è un riferimento). Sì, il trasferimento dei dati da MT è fatto su timer, è più conveniente per me, in questa fase.
Mi fermerò per ora - ora abbiamo bisogno di risolvere le questioni con la strategia. Se avete dei suggerimenti - li prenderemo in considerazione).
Ancora una volta, la condivisione dei file è ideale per lo sviluppo e il debugging delle strategie, poiché non richiede alcuno sforzo di modifica. Per la maggior parte delle strategie del mondo reale, è ancora adatto. Ma, se necessario, possiamo sempre sostituirlo con qualcos'altro, senza cambiamenti significativi al programma - una questione di 1-2 giorni.
Non prometto di scrivere spesso, solo quando mi capita. Il progetto viene fatto in background, con poco o nessun tempo a disposizione.
Ho pensato che sarebbe bene che il sistema visualizzasse dei grafici
In generale, Python è un linguaggio semplice - un paio di giorni per studiarlo sono sufficienti. Ma avere a che fare con i moduli è molto più difficile - ce ne sono migliaia, e chi fa cosa e perché non è sempre ovvio. Con la grafica, è quello che è successo - ho dovuto risolverlo per molto tempo. Ma il risultato è il seguente:
Il programma legge un file CSV e disegna un grafico.
Il grafico mostra i prezzi per Close, circa 50 mila candele.
Se cliccate sulla lente d'ingrandimento e selezionate un rettangolo nell'area del grafico come questo:
potete ingrandire il grafico e lo otterrete:
Questo può essere fatto ripetutamente. Il grafico può anche essere spostato e salvato come immagine, e naturalmente espanso a schermo intero.
Tutti i file di cui avete bisogno sono nell'applicazione. Decomprimere lo zip in una cartella ed eseguire CSVGraph.py
Prima di eseguirlo, non dimenticate di controllare se i moduli che volete importare sono installati.
Lasciamo le sciocchezze ai vicini e alla cassa di risonanza amatoriale, ma riassumiamo noi stessi i risultati preliminari.
Se hai già familiarità con l'argomento Se sei un professionista, conosci già un po' di Python, sai come lavorare con i file CSV, sai come costruire grafici e scambiare dati con il terminale. Questo è già abbastanza per sviluppare, simulare e testare strategie di trading. Se la vostra strategia lavora con TF 1 min e più senza usare tick e accede al terminale con intervalli di 5-10 sec, potete già creare strategie funzionanti direttamente in Phyton, lasciando solo la consegna dei dati e "l'esecuzione" dei vostri ordini al terminale.
Inoltre, conosci già la programmazione e l'ambiente Phyton, a un livello superiore al linguaggio e all'ambiente R, così popolare tra gli apologeti locali dell'apprendimento automatico. Sarete già in grado di costruire strategie di indicatori anche molto complessi in Python, ma tutte le caratteristiche di Python (in modo simile a R) possono essere implementate utilizzando moduli. In questo argomento abbiamo usato solo 3 moduli - tkinter, numpy e matplotlib.
Ora, ciò di cui Python ha bisogno per costruire strategie più avanzate, ad esempio utilizzando l'apprendimento automatico. Il modulo -scikit-learn può essere usato per questo. Con l'uso discikit-learn sono disponibili le seguenti caratteristiche - Guida all'uso. Ti piace l'insieme dei metodi? - Ha già praticamente tutto, incluso, non sconosciuto da R e dall'argomento Machine Learning, dalla classificazione bayesiana alle foreste casuali e alle reti neurali.
Questo è solo uno dei moduli di apprendimento automatico in Python, e ce ne sono circa una dozzina. Si dice che il moduloscikit-learn non sia il migliore, né il più avanzato. Dipende da chi ha bisogno di cosa. Gli altri non sono difficili da trovare su internet.
PS Per coloro che stanno iniziando o hanno appena iniziato con Python.
Ho provato diversi ambienti di sviluppo Python e mi sono fermato al più conveniente per i principianti (che includono me stesso) - Anaconda. Ciò che lo rende conveniente è che tutto ciò di cui ho bisogno è già installato, incluso Python. Editor io uso Spyder - installato conAnaconda. Ti consiglio anche di installare l'editor VSCode - anch'esso molto bello e installato direttamente daAnaconda.
Potresti non essere contento della mia scelta.
Gli indicatori richiesti sono tutti pronti. Vedere la figura fatta in Python (In Python è molto comodo e veloce disegnare tutti i tipi di grafici). Questa è la risposta a un singolo salto - 1(t), o la funzione di transizione. In realtà, uno dei test standard.
La fm è la media mobile convenzionale (che serve solo per la calibrazione), f1 è l'EMA, con un calcolo del coefficiente modificato, e f2 è un indicatore non standard.
Tuttavia, come diceva un nostro conoscente comune:
L'ho detto un milione di volte, e probabilmente lo dirò ancora... Nessuno ha inventato niente di meglio degli indicatori della fornitura MT (standard... per dire vecchi indicatori slavi... pagani!!!).
Quindi, per non ingannare la tua testa con la scienza, otterrai le fonti standard di EMA e strategia. Tuttavia, realizzerò e testerò la strategia sui miei indicatori. Forse, nasconderò qualcos'altro da occhi indiscreti, ma senza perdita di funzionalità.
Ma non è per la traversata dell'EMA che si tratta. L'obiettivo di tutto questo sono le strategie di apprendimento automatico. Finora sto testando diversi metodi di classificazione. Ed ecco i risultati dei test:
Gaussiana, RBF SVM, Reti Neurali e classificazione bayesiana ingenua sono al top finora. Il programma Python è già pronto, disponibile da qualche parte su internet, ma la preparazione dei dati spetta all'utente.
Andiamo.
Gli indicatori richiesti sono tutti pronti. Vedere la figura fatta in Python (In Python è molto comodo e veloce disegnare tutti i tipi di grafici). Questa è la risposta a un singolo salto - 1(t), o funzione transitoria. In realtà, uno dei test standard.
La fm è la media mobile convenzionale (che serve solo per la calibrazione), f1 è l'EMA, con un calcolo del coefficiente modificato, e f2 è un indicatore non standard.
Tuttavia, come diceva un nostro conoscente comune:
Quindi, per evitare di ingannare la tua testa con la scienza, otterrai l'EMA standard e le fonti della strategia. Tuttavia, realizzerò e testerò la strategia sui miei indicatori. Forse, nasconderò qualcos'altro da occhi indiscreti, ma senza perdita di funzionalità.
Ma non è per la traversata dell'EMA che si tratta. L'obiettivo di tutto questo sono le strategie di apprendimento automatico. Finora sto testando diversi metodi di classificazione. Ed ecco i risultati del test:
Gaussiana, RBF SVM, Reti Neurali e classificazione bayesiana ingenua sono al top finora. Il programma Python è già pronto, disponibile da qualche parte su internet, ma la preparazione dei dati spetta all'utente.
Andiamo.
È un peccato che siano passati alle reti neurali. Ma soprattutto molto utile, penso che tornerà utile.
Forum sul trading, sistemi di trading automatico e test di strategia
Robot ad apprendimento automatico
Yuriy Asaulenko, 2018.09.21 00:45
Non lo faranno. Il massimo che faranno è lo stesso di prima.
È un peccato che siano passati alle reti neurali. Ma soprattutto molto utile, penso che tornerà utile.
Non ci sono piani per passare a NS e altri metodi MoD in questo thread. Per ora, almeno). Vedremo.
Quello che viene fatto qui è un modello di sistema in Python. Il riempimento specifico di questo modello è una questione di utente specifico.
Beh, mostrare le capacità delle librerie Python, penso, non è superfluo.
Quando il programma viene avviato, la strategia viene testata, il rapporto di tutte le compravendite viene salvato in un file CSV, il grafico dei profitti viene visualizzato sulla console, che può essere salvato sul disco - vedi Fig.