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

 
Alexey Burnakov:
Questa è una descrizione delle uscite multivariate. L'ho implementato io stesso. Aumenta la possibilità di un adattamento.
Aumenta? È strano. Lo diminuisce per me.
Come al solito, a quanto pare, il diavolo sta nei dettagli.
 
SanSanych Fomenko:

Il problema principale è l'overtraining, quando nei campioni futuri gli alberi esistenti non predicono correttamente la classe, o piuttosto predicono la classe sempre peggio. Questo è il problema affrontato in questo thread, vale a dire, cerchiamo di dimostrare che gli alberi ottenuti si verificheranno in futuro e l'errore di classificazione sui campioni futuri sarà circa lo stesso del campione di allenamento.

Anche se è implicito, preferisco aggiungerlo per renderlo più chiaro.

Di solito il sovrallenamento nei modelli ha l'effetto che il modello ricorda gli esempi di allenamento molto accuratamente. L'apprendimento inizia con la derivazione da parte del modello di alcune regole generali, dipendenze di valori target sui predittori, ma più l'apprendimento va avanti, più queste regole nel modello diventano rigide, portando alla fine ad esempi completamente memorizzati, con la completa incapacità del modello di predire su nuovi dati. Questo è gestito dalla convalida incrociata, e fermando l'addestramento quando il modello ha imparato alcune regole generalizzate ma non ha ancora iniziato ad imparare esempi specifici, che daranno migliori prestazioni predittive su nuovi dati.

Questo funziona alla grande su dati in cui le dipendenze rimangono costanti nel tempo - riconoscimento di immagini o di suoni, per esempio. Ma il forex è diverso in quanto molte delle dipendenze trovate non sono persistenti nel tempo. Il problema non è solo quello di imparare senza memorizzare gli esempi di allenamento, ma anche di assicurarsi in qualche modo che i modelli trovati rimangano in futuro.

Il compito è più completo: sviluppare un modo per stimare i predittori rispetto a una variabile obiettivo che garantisca che la relazione tra predittori e variabile obiettivo sia costante e che esista anche su nuovi dati.

Quali valori target utilizzare(colore della barra, o inversione, o tendenza), o quali predittori (prezzi, indicatori, indici) sono le sfumature. Se possiamo valutare l'insieme dei predittori e la loro capacità predittiva dei valori target, e il cambiamento di questa capacità predittiva nel tempo, allora possiamo anche trovare tali combinazioni di predittori e valori target, che hanno la migliore stima.
Poi possiamo prendere qualsiasi modello, addestrarlo (forse anche con il controllo di riqualificazione, che è importante per la neuronica per esempio), e c'è un graal.

 
Dr.Trader:


Tipicamente, l'apprendimento eccessivo nei modelli ha l'effetto che il modello ricorda gli esempi di allenamento in modo molto accurato. L'apprendimento inizia con il modello che deriva alcune regole generali, la dipendenza dei valori target dai predittori, ma più l'apprendimento va avanti, più queste regole nel modello diventano rigide, portando alla fine ad esempi completamente memorizzati, con una completa incapacità del modello di prevedere su nuovi dati.

Sembra che siamo solo noi due qui, dato che la posizione di Alexey non mi è del tutto chiara.

Il resto è l'esperienza di persone che sono sul mercato da molto tempo. Credo che siano commercianti di successo. Conosco dalla letteratura alcune persone che hanno avuto successo usando l'euristica per molti anni, ma l'unico risultato era una triste monotonia - una perdita del depo. Qualsiasi euristica non risponde alla questione del riapprendimento, per questo la fine arriverà: tra un giorno, un mese, un anno... ma sempre in modo inaspettato ed estremamente inopportuno.

PS.

Il sovraapprendimento è un problema fondamentale della scienza, nel senso che l'oggetto della scienza è l'estrazione di alcune leggi fondamentali, dalle quali si possono spiegare molti particolari.

Per esempio, la legge di Newton.

Prendete un pezzo di carta - è destinato a cadere a terra. Accartoccia quel pezzo di carta - è destinato a cadere, ma più velocemente. Newton dice che tutto cade con la stessa accelerazione. Com'è? È così che l'uomo riesce a scartare il particolare, che è un gran numero, la realtà grezza e ottenere una legge universale, e se non funziona, allora queste deviazioni possono sempre essere spiegate.

Questo è il modo in cui funziona la scienza.

Quello che facciamo è cercare di "coartare" il quoziente, di rappresentare questo quoziente sotto forma di modello per avere un'idea di tutti i quozienti futuri.

Lottare contro il sovrallenamento è un problema fondamentale del trading.

 
Dr.Trader:

Questo funziona bene su dati in cui le dipendenze rimangono costanti nel tempo - riconoscimento di immagini o di suoni, per esempio. Ma il forex è diverso in quanto molte delle dipendenze trovate non sono persistenti nel tempo. Il problema non è solo quello di ottenere l'apprendimento senza memorizzare gli esempi di allenamento, ma anche di assicurarsi in qualche modo che i modelli trovati rimangano in futuro.

Un po' fuori tema ma solo un po' di informazioni...

Nel riconoscimento vocale in particolare il discorso è un problema quando una persona dice una parola - un modello spettrale della parola alimentato all'algoritmo "HMM" o "RNN" ...ma il problema è che se l'altra persona dice la stessa parola, la dirà almeno a una velocità diversa, quei modelli sono gli stessi ma allungati nel tempo, e ora l'analogia - la larghezza del modello testa e spalle di 33 candele e la stessa larghezza del modello testa e spalle di 88 candele, la larghezza è diversa, ma il modello è lo stesso .....

Per risolvere il problema con l'algoritmo di riconoscimento vocale è stato sviluppato - un time warp dinamico "DTW" Il compito dell'algoritmo è quello di trovare due vettori simili anche se di lunghezza diversa. Così, quando diverse persone dicono la stessa parola, questo modello spettrale della parola passa prima attraverso il "DTW" e poi all'algoritmo "MO" e la parola viene riconosciuta con successo. Non l'ho ancora usato quindi non posso dire nulla, ma credo che dovrò provarlo, anche se se dici che non ci sono modelli nel mercato allora ovviamente questo algoritmo non funzionerà, non ho ancora deciso quale sia la mia visione del mondo...

Pacchetti R: "DTW" , "dtwclust"

 
Alexey Burnakov:
Questa è la descrizione dell'uscita multivariata da un trade. L'ho implementato io stesso. Aumenta la possibilità di ottenere un buon adattamento.
Andrey Dik:

Il metodo è il seguente (tutto ciò che segue si applica ugualmente sia alla ML che alla TS classica).

Il punto è quello di sbarazzarsi dell'incertezza, il che significa sbarazzarsi del fitting nell'addestramento e nell'ottimizzazione da un lato, e dall'altro formulare senza ambiguità dei requisiti "soft" al sistema. TP e SL all'entrata è anche un'incertezza, quindi lo usiamo solo per l'uscita di emergenza (dipende dalla volatilità dello strumento e lo selezioniamo empiricamente, quindi il 100% dei trade fa scattare gli stop il più raramente possibile, idealmente - mai. Prevedere l'intero commercio, dall'entrata all'uscita. Consideriamo il risultato con un profitto escluso lo spread e le commissioni come un trade di successo (il funzionamento del sistema è determinato dopo aver controllato se lo spread e le commissioni sono coperti). Non appena il segnale di entrata viene ricevuto, il sistema entra e poi aspetta un certo numero di barre (è determinato empiricamente e dipende dai predittori e dallo strumento). - Chiudere l'affare, se sta perdendo, aspettiamo un'altra barra. A volte uso due parametri: minimo e massimo (se un trade non viene chiuso dopo il numero massimo di barre - viene chiuso comunque), e a volte ne uso solo uno - il numero minimo di barre.

Molte persone saranno sorprese, ma molti sistemi, anche quelli apparentemente senza speranza, iniziano a funzionare, incluso TS su bacchette, per non parlare di tutti i tipi di sistemi con ML. Il trucco è di non esigere regole ferree di TC da te stesso e dalla macchina, di non cercare di descrivere completamente i movimenti del mercato e dare quelle regole molto "morbide" per il ML. Inoltre, ci sbarazziamo della cattiva eredità del mercato sotto forma di code pesanti (o più precisamente, le code smettono di avere importanza), la mancanza di stazionarietà nella BP smette di avere importanza - perché sappiamo che le forme del mercato possono essere scalate verticalmente e orizzontalmente senza cambiare le loro proprietà interne (e questo rende la vita incredibilmente difficile agli emleoners).

Ne ho scritto sul 4° forum, credo nel thread Swinosaurs, su due tipi di tutti i TS (con confini definiti e indefiniti), ma l'idea non è stata completata lì. Ora sembra tutto più chiaro, o almeno così...

In generale, uso la mia regola quando sviluppo sistemi di trading: se i cambiamenti nelle logiche portano ad aumentare la quota di varianti di successo dei parametri su tutte le possibili varianti, allora è un buon cambiamento (la probabilità di scegliere una cattiva variante per il trading è ridotta, non importa come cambiamo i parametri - saremo sul lato positivo). Questo approccio ha permesso di aumentare questa quota nel mio TS.

Mi sembra che tutto quello che hai descritto rientri nell'ottimizzazione del modello ARIMA. Quando si ottimizza, si seleziona il numero di barre su cui il modello è costruito
 
Alexey Burnakov:SanSanych Fomenko:

Cos'è l'abitudine selvaggia di rispondere in due parole e citare 100 righe di interlocutore???? Il forum è lungo 120 pagine. Se togli queste citazioni inutili ti rimangono forse 60 pagine di testo utile... Rispettare le persone che lo leggono o lo leggeranno in futuro

 
Andrey Dik:

Il metodo è il seguente (tutto ciò che segue si applica ugualmente sia alla ML che alla TS classica) ....

Puoi descrivere punto per punto cosa e come fare, come algoritmo, perché non capisco bene come suggerisci di fare

 
SanSanych Fomenko:
Mi sembra che tutto quello che hai descritto rientri nell'ottimizzazione del modello ARIMA. Durante l'ottimizzazione viene selezionato il numero di barre su cui viene costruito il modello
Non un valore fisso di barre, ma valori possibili "da ora a ora"
 
mytarmailS:

Puoi descrivere punto per punto cosa fare e come farlo, come un algoritmo, perché non capisco bene come proponi di farlo.

Hai ragione sull'allungamento nel tempo delle cifre dei prezzi. Questo è quello di cui parlavo, lo stretching/scaling verticale e orizzontale. Ma non sono solo le figure nel loro insieme ad essere allungate in modo diverso, ma anche i singoli candelabri al loro interno. Questo è un problema aggiuntivo e dubito che imetodi di pre/post elaborazione tipo DTW possano essere applicati adeguatamente.Queste sono forme di mercato distorte in qualche modo sconosciuto.

Per essere più precisi: abbiamo un segnale di acquisto sulla barra attuale, contiamo il minor numero di barre avanti e controlliamo se l'affare sarà redditizio, se sì - chiudiamolo, se no - contiamo un'altra barra avanti e controlliamo di nuovo. E in questo modo raggiungiamo il numero massimo di barre e le chiudiamo definitivamente. Questo è un meccanismo di apprendimento.

In generale, l'apprendimento automatico dei dati di mercato è simile al seguente: mostriamo alla macchina una combinazione di forme grafiche, cerchi, quadrati, triangoli, trapezi, forme di diverse dimensioni e forme. La macchina deve rispondere con qualche forma, un triangolo, un quadrato o un cerchio (esagerato). Abbiamo messo la risposta allo schema e f*ck! - La forma nella risposta non corrisponde al modello, cazzo! E nel processo di apprendimento, per qualche motivo, si sono accoppiati come una fottuta roccia. .... Questo è il tipo di problema che stiamo risolvendo qui. E io dico - nessun problema, possiamo allungare un po' il modello, in modo che le risposte risultino corrette anche al di fuori dei dati di allenamento.

È un "pesce" di base di un sistema che funziona già da solo. Ma nessuno vieta di aggiungere al TS e di usare nel trading strumenti come lo SL Breakeven. Il sistema rimane lo stesso, ma per questo quando il mercato si muove nella nostra direzione, otterremo dei profitti extra oltre il "piano" e poi o strascichiamo SL, o iniziamo la chiusura parziale delle posizioni, a seconda della distanza coperta rispetto al movimento statistico dei prezzi in un determinato periodo di tempo, ecc.

 
Andrey Dik:
Sta aumentando? È strano. Ma diminuisce.
Come al solito, a quanto pare, il diavolo sta nei dettagli.

Valutate la performance della strategia sulla storia o c'è un lungo termine? Il diavolo potrebbe essere nella valutazione della storia.

Guarda, ho fatto scrivere una strategia su 100 linee in MT4 da solo. Ne ho scritto nel mio profilo nel dicembre 2014:https://www.mql5.com/ru/users/alexeymosc/page3?#userActions

Questo è l'aspetto dell'ultima versione, messa insieme nel gennaio 2015:

L'ho poi provato sul reale, in combinazione con altre strategie. Anch'io ho scritto di loro ovunque.

Questo e quello, la mano l'ha prosciugata.

Oggi ho visto un test in avanti dalla fine dell'ottimizzazione alla fine di luglio con le stesse impostazioni. Guarda:

È tutto lì. Lo spread è 30, il lotto 0,1.

Lo proverò anche su tutte le zecche, per assicurarmi che le prese funzionino meglio:

Entrata d'impulso, uscita via OR su un certo numero di condizioni. In linea di principio, sembra funzionare. Ma se entro sul picco, poi aspetto un anno per il ritiro da un drawdown...

Alexey Burnakov
Alexey Burnakov
  • www.mql5.com
Профиль трейдера