L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 554

 
Mihail Marchukajtes:

Tenete presente che qualsiasi ridondanza di dati ritarderà l'entrata in combattimento del modello. Questo influisce direttamente sulla qualità dei segnali ricevuti dopo....

Personalmente ho scelto la seguente metodologia. Ho invertito il modello ottenuto con i segnali di acquisto e l'ho testato sulla stessa parte del mercato ma per i segnali di vendita. Così, non perdo tempo prezioso e stimo adeguatamente le capacità del modello. IMHO

Voglio provare a insegnare e testare il modello usando il metodo classico train|valid|test. Se il modello funziona, allora il test sarà un commercio reale, cioè uso train|valid in NS ed eseguo un commercio reale sulle impostazioni ottenute. O forse un treno è sufficiente? In modo che la formazione sia vicina al momento del trading reale. Come ultima risorsa, possiamo convalidare sui dati prima della trama del treno.
 

A proposito, sì. La sezione di controllo può anche essere prima della sezione degli apprendisti. Lo faccio anch'io, ma ho la classificazione, non si preoccupa dell'ordine. In caso di previsione o regressione l'ordine dei dati è IMPORTANTE.

Ma nel mio caso la separazione in Buy e Sell è la più importante, perché la sezione di controllo cade nello stesso periodo di mercato della sezione di apprendimento. È solo che i dati sono diametralmente opposti, ma tutte le leggi e le notizie che sono in vigore al momento sono le stesse per entrambe le sezioni di allenamento e di controllo. In questo caso il trading inizia subito dopo la sezione Train, il che aumenta potenzialmente il tempo del TS.

 
Mihail Marchukajtes:

Personalmente, ho scelto la seguente metodologia. Ho invertito il modello ottenuto con i segnali di acquisto e l'ho testato sulla stessa parte del mercato, ma per i segnali di vendita. Così, non perdo tempo prezioso e stimo adeguatamente le capacità del modello. IMHO

Perché non insegnare un unico modello con valori di uscita di Buy e Sell, per esempio da 1.0 a -1.0, e tutto ciò che è intorno a 0.0 è piatto?

 
elibrario:
Voglio provare ad allenare e testare il modello usando la metodologia classica con train|valid|test. Se il modello funziona, allora il test sarà un vero e proprio commercio, cioè do in pasto train|valid a NS ed eseguo un vero e proprio commercio sulle impostazioni ricevute. O forse un treno è sufficiente? In modo che la formazione sia vicina al momento del trading reale. Come ultima risorsa possiamo convalidare su dati pre-training.
Qui si discute del numero e della sequenza di training, test, validazione, ma non si parla di validazione incrociata, probabilmente tutti la usano di default o nessuno la usa...
 
Ivan Negreshniy:
Discutono sul numero e la sequenza delle sezioni di training, test, validazione, ma non parlano della validazione incrociata, probabilmente tutti la usano di default o nessuno la usa...

Ho letto che la convalida incrociata si usa quando ci sono pochi dati e si ha bisogno almeno di qualcosa su cui convalidare. Nel forex ci sono molti dati - milioni di barre di minuti per diversi anni. Credo che nessuno lo usi.

 
elibrario:

In cross-validation chiall che si usa quando i dati sono scarsi e si ha bisogno di qualcosa su cui ripiegare. Nel forex, ci sono molti dati, milioni di barre di minuti per diversi anni. Credo che nessuno lo usi.

A mio parere, questo è il modo giusto per compensare l'effetto di mescolare e combinare manualmente i dati di input.
 
Ivan Negreshniy:

Perché non insegnare subito lo stesso modello con valori di Buy e Sell sull'output, per esempio da 1.0 a -1.0, e tutto ciò che è vicino a 0.0 - flat?


Non è... Non il nostro metodo. Insegnando a comprare e vendere in una sola volta l'area check.... scompare.

 
Ivan Negreshniy:

Bella idea e utile libreria MT5, ma è piuttosto fastidioso sincronizzarla con un file script Python IMHO.

Penso che sia meglio sincronizzare le variabili MQL direttamente con le variabili python tramite un dizionario locale ed eseguire frammenti di codice Python direttamente dalle costanti di stringa nel codice di EA.

Ho provato il test, compilando bcc64 da linea di comando e funziona bene in python 3.6:

Sarebbe bello aggiungere questa funzionalità alla tua libreria, stavo per scrivere la mia, ma purtroppo per ora sono impegnato con la libreria P-net per python.

A proposito, ho scritto di questa nuova rete neurale qui in un ramo, da risultati preliminari di test su esempi con Iris di Fisher è addestrato su tre ordini di grandezza più veloce di DNN in TensorFlow, con risultati di test uguali.


Ci penserò. Dalla mia libreria, è possibile eseguire qualsiasi script Python ed eseguire qualsiasi funzione da esso. La biblioteca non è complicata. Penso che sarà sufficiente per me e per molti altri.

 
Grigoriy Chaunin:

Ci penserò. Dalla mia libreria, è possibile eseguire qualsiasi script Python ed eseguire qualsiasi funzione da esso. La biblioteca non è complicata. Penso che sarà sufficiente per me e per molti altri.

Sì, la tua libreria è perfettamente utilizzabile, ma penso che potrebbe utilizzare alcuni miglioramenti, perché il caricamento degli script da file separati e la sincronizzazione degli argomenti e dei valori delle loro funzioni attraverso le variabili globali in dll non è sempre il modo migliore.
 

Credo di sì. È molto probabile che la biblioteca cambi. In questo momento ho il compito di padroneggiare Python ad un livello avanzato e di padroneggiare la scienza dei dati. Tutto il tempo per questo. E quando un modello funzionante sarà pronto. Penserò già a come attaccarlo a MT.

Renat ha scritto in un thread vicino che stanno per aggiungere Python, R e C#. Ma non capisco se sarà possibile lavorare semplicemente in MetaEditor o integrarsi con MQL. Lavorare solo in Metaeditor non è davvero conveniente, gli editor di codice sono sufficienti. Penso che l'integrazione sia più probabile. Sarebbe bello. E il mio lavoro sull'integrazione di Python è una soluzione temporanea.

Motivazione: