L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 90
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
Ho provato vari metodi di convalida scritti in proprio, compresi quelli descritti in questi articoli. Le mie conclusioni sono le seguenti:
Nel forex non c'è una stretta relazione tra la variabile target e i predittori, il forex non è una formula che può essere trovata e applicata per calcolare nuovi dati. Tutto ciò che un modello può fare è trovare alcune regolarità ed estrapolare i risultati per il trading su nuovi dati.
In altre parole, c'è un certo spazio multidimensionale (la dimensionalità è uguale al numero di predittori), in cui si trovano più punti (variabili target note). Il modello costruisce un iperpiano in questo spazio che separa i punti nello spazio (la classe "comprare" dalla classe "vendere"). I modi per costruire questo iperpiano sono infiniti (in un caso semplice - disegnare quattro punti sul foglio, e tracciare una linea curva tra loro in modo che ci siano due punti a destra della curva, e due a sinistra pure. I modi di disegnare una curva sono infiniti). Quindi non c'è garanzia che il modello costruito rifletta la corretta dipendenza della variabile obiettivo dai predittori. Per controllare l'adeguatezza del modello, si usa la validazione - alcuni punti non sono stati usati nell'addestramento ed è facile scoprire se il modello ha fallito, se mostrerà il risultato corretto su questi punti di prova.
Se il modello non ha superato correttamente la validazione, potrebbe essere dovuto a molte ragioni, per esempio
- il modello ha trovato alcune dipendenze inesistenti che esistono solo negli esempi di allenamento
- c'era qualche dipendenza nei dati di allenamento, che non esisteva nei dati per il test. Ad esempio, nel caso in cui tutti i dati per il test siano presi più tardi nel tempo e il comportamento del simbolo forex sia cambiato
- il modello stesso è stato inizializzato con un seme non riuscito. Accade spesso che un modello addestrato sugli stessi dati dia risultati diversi sulla validazione dopo molteplici tentativi di ri-addestrarlo
Non si sa cosa abbia causato un cattivo risultato in un caso particolare. Tutto quello che possiamo fare è stimare quanto è buono un modello in media - costruire un modello decine di volte, stimare sulla validazione. I dati di formazione/validazione devono essere suddivisi ogni volta.
Quello che penso sia un modo valido è dividere i dati in modo casuale in un rapporto 50%/50% (non per tempo, ma in modo che tutto sia uniformemente mescolato, per esempio le righe 1,2,5,7 per l'allenamento, 3,4,6,8 per la validazione), addestrare il modello sulla prima parte, poi fare la validazione sulla seconda, per la valutazione del modello uso la precisione. Ripetete questo 50 volte (ri-partizione dei dati in 2 parti casuali, training, validazione). Quindi calcolare l'accuratezza media sui dati di allenamento e l'accuratezza media sui dati di convalida. Supponiamo che l'accuratezza media sul campione di allenamento sia del 90%, sul campione di convalida dell'80%. La precisione nel fronttest sarà ancora più bassa, io uso questa regola empirica: calcolare la differenza (90%-80%=10%), e sottrarla dal risultato della validazione (80%-10% = 70%). Risulta che tale modello su fronttest avrà una precisione media di circa il 70%. Inoltre, aggiusto geneticamente i parametri del modello e i predittori per aumentare questa stima dal 70% (è molto più difficile di quanto sembri, è difficile arrivare anche oltre il 50%).
Ma non mi piace il fatto che questo risultato sia solo una media, senza garanzie. La precisione reale nel trading sarà dal 60% all'80%, o anche dal 50% al 90%, a seconda di quanto sei sfortunato. Per quanto ci provi, è impossibile pescare il modello migliore per qualsiasi indicazione. Probabilmente l'unica soluzione è costruire decine di modelli con i migliori parametri e predittori trovati, e portare il risultato dove la maggior parte delle persone guarda (congresso dei modelli).
Questo è strettamente legato a ciò che SanSanych ha detto all'inizio del thread. Puoi anche seguire il suo consiglio di rimuovere l'ultima parte dei dati noti per l'ultimo campione di controllo. Non usate questi dati per l'addestramento e le convalide, ma conservateli separatamente fino alla fine dell'addestramento del modello. Poi testate il modello finito, o il congresso, su questi dati. Il lato positivo è che questo mostrerà come il modello si comporta sui nuovi dati temporali. Il meno è che ci saranno meno dati per l'addestramento e la convalida, e il modello sarà un po' obsoleto all'inizio del trading. C'è una piccola sfumatura qui, se non ti piace il risultato su questi dati di riferimento, e hai iniziato a selezionare un modello che mostrerà un buon risultato in questa zona - poi hai iniziato a usare questi dati per la convalida, di conseguenza il modello è già selezionato con loro in mente, e quindi c'è un po' di guardare nel futuro, il controllo e l'intera operazione diventa senza senso, e in questo caso era più facile non fare affatto un campione di controllo.
Ho provato vari metodi di convalida scritti in proprio, compresi quelli descritti in questi articoli. Le mie conclusioni sono le seguenti:
Nel forex non c'è una stretta relazione tra la variabile target e i predittori, il forex non è una formula che può essere trovata e applicata per calcolare nuovi dati. Tutto ciò che un modello può fare è trovare un qualche tipo di modello ed estrapolare i risultati per commerciare su nuovi dati.
In altre parole, c'è un certo spazio multidimensionale (la dimensionalità è uguale al numero di predittori), in cui si trovano più punti (variabili target note). Il modello costruisce un iperpiano in questo spazio che separa i punti nello spazio (la classe "comprare" dalla classe "vendere"). I modi per costruire questo iperpiano sono infiniti (in un caso semplice - disegnare quattro punti sul foglio, e tracciare una linea curva tra loro, in modo che ci siano due punti a destra della curva, e due a sinistra pure. I modi di disegnare una curva sono infiniti). Quindi non c'è garanzia che il modello costruito rifletta la corretta dipendenza della variabile obiettivo dai predittori. Per controllare l'adeguatezza del modello, si usa la validazione - alcuni punti non sono stati usati nell'addestramento ed è facile scoprire se il modello ha fallito, se mostrerà il risultato corretto su questi punti di prova.
Se il modello fallisce la convalida, ci possono essere molte ragioni.
- il modello ha trovato alcune dipendenze che non esistevano ed erano presenti solo negli esempi di allenamento
- c'è una dipendenza nei dati di allenamento, che non è presente nei dati di test. Per esempio, in un caso in cui tutti i dati per un test sono presi più tardi nel tempo e il comportamento del simbolo forex è cambiato
- il modello stesso è stato inizializzato con un seme non riuscito. Accade spesso che un modello addestrato sugli stessi dati dia risultati diversi sulla validazione dopo molteplici tentativi di ri-addestrarlo
Non si sa cosa abbia causato un cattivo risultato in un caso particolare. Tutto quello che possiamo fare è stimare quanto è buono un modello in media - costruire un modello decine di volte, stimare sulla validazione. I dati di formazione/validazione devono essere suddivisi ogni volta.
Quello che penso sia un modo valido è dividere i dati in modo casuale in un rapporto 50%/50% (non per tempo, ma in modo che tutto sia uniformemente mescolato, per esempio le righe 1,2,5,7 per l'allenamento, 3,4,6,8 per la validazione), addestrare il modello sulla prima parte, poi fare la validazione sulla seconda, per la valutazione del modello uso la precisione. Ripetete questo 50 volte (ri-partizione dei dati in 2 parti casuali, training, validazione). Quindi calcolare l'accuratezza media sui dati di allenamento e l'accuratezza media sui dati di convalida. Supponiamo che l'accuratezza media sul campione di allenamento sia del 90%, sul campione di convalida dell'80%. La precisione nel fronttest sarà ancora più bassa, io uso questa regola empirica: calcolare la differenza (90%-80%=10%), e sottrarla dal risultato della validazione (80%-10% = 70%). Risulta che tale modello su fronttest avrà una precisione media di circa il 70%. Inoltre, aggiusto geneticamente i parametri del modello e i predittori per aumentare questa stima dal 70% (è molto più difficile di quanto sembri, è difficile ottenere anche il 50%).
Ma non mi piace il fatto che questo risultato sia solo una media, senza garanzie. La precisione reale nel trading sarà dal 60% all'80%, o anche dal 50% al 90%, a seconda di quanto sei sfortunato. Per quanto ci provi, è impossibile pescare il modello migliore per qualsiasi indicazione. Probabilmente l'unica soluzione è costruire decine di modelli con i migliori parametri e predittori trovati, e portare il risultato dove la maggior parte delle persone guarda (congresso dei modelli).
Questo è strettamente legato a ciò che SanSanych ha detto all'inizio del thread. Puoi anche seguire il suo consiglio di rimuovere l'ultima parte dei dati noti per l'ultimo campione di controllo. Non usate questi dati per l'addestramento e le convalide, ma conservateli separatamente fino alla fine dell'addestramento del modello. Poi testate il modello finito, o il congresso, su questi dati. Il lato positivo è che questo mostrerà come il modello si comporta sui nuovi dati temporali. Il meno è che ci saranno meno dati per l'addestramento e la convalida, e il modello sarà un po' obsoleto all'inizio del trading. C'è una piccola sfumatura qui, se non ti piacciono i risultati sui dati di benchmark e inizi a scegliere un modello che darà buoni risultati in questo settore - inizi a usare questi dati per la validazione, rispettivamente un modello viene scelto tenendone conto e quindi c'è un leggero guardare al futuro e tutta questa operazione diventa insensata, e in questo caso era più facile non fare affatto la selezione del benchmark.
Non ancora)))
7 ha cercato. I tagli non sono meglio della versione di mezzo anno fa, o quando ho guardato non è ricordare esattamente. Nella finestra e nelle statistiche fylo scrive diversamente. Selezionare l'importanza degli input
discutibile, confrontato a testa alta con rf e un paio di altri, e può dare alta priorità a molto poco importante. Se si prende il taglio migliore (dalla finestra) non è ancora buono.
Su questi dati ottengo almeno il 92%. Il pezzo (così com'è) è ancora poco utile per scopi pratici. Complimenti per lo sforzo nello sviluppo e il volo delle idee.
Tutto imho, naturalmente. Ora per ora)))
Quando abbiamo a che fare con qualcuno del livello di Reshetov, possiamo tranquillamente esigere:
1. una rassegna di analoghi
2. Un'indicazione delle carenze che si suppone vengano superate in questi analoghi
3. Indicazione del meccanismo per eliminare queste carenze (si possono nascondere le specifiche in economia di mercato)
4. Confronto degli analoghi con il tuo sviluppo. Questo confronto dovrebbe dimostrare che tutti i suddetti inconvenienti dei prototipi esistenti sono stati eliminati. E si ottiene uno strumento che NON è peggiore degli analoghi.
Se una persona del livello di Reshetov non lo fa, bene allora: Reshetov è da lodare per i suoi sforzi nello sviluppo e nella fuga del pensiero.
allora si può tranquillamente pretendere:
Non ancora)))
7 guardato. Risulta non meglio della versione di mezzo anno fa, o quando ho guardato non è ricordare esattamente. Nella finestra e nelle statistiche fylo scrive diversamente. Selezionare l'importanza degli input
discutibile, confrontato a testa alta con rf e un altro paio, e può dare alta priorità a molto poco importante. Se si prende il taglio migliore (dalla finestra) non è ancora buono.
Su questi dati ottengo almeno il 92%. Il pezzo (così com'è) è ancora poco utile per scopi pratici. Complimenti per lo sforzo nello sviluppo e nel volo di fantasia.
Tutto imho, naturalmente. Ciao ora)))
Capisco. Notepad è compresso, e non l'ho attorcigliato)))Ma l'ho preso dalla finestra per il confronto.
Ho cancellato immediatamente per mancanza di uso, anche se qualcuno può essere utile...
Mi chiedo se questo ci aiuterà.... Quindi capisco che la potenza di elaborazione di una cosa del genere è un ordine di grandezza superiore, se non parecchi....
https://hi-tech.mail.ru/news/compact-quantum-computer/?frommail=1
di casi) per entrambi i campioni (treno = xx%, test = xx%). Non è necessario annunciare metodi e modelli, ma solo numeri. Qualsiasi manipolazione dei dati è permessa
e metodi di estrazione.
E tutti quelli che arrivano. L'archivio z1 contiene due file train e test. Per Target, costruisci il modello sul treno, applicalo al test, pubblica i risultati in % (predetto con successo
di casi) per entrambi i campioni (treno = xx%, test = xx%). Non è necessario annunciare metodi e modelli, ma solo numeri. Qualsiasi manipolazione dei dati è permessa
e metodi di estrazione.
Grazie! Farò un tentativo.
Siamo d'accordo di non guardare al test finché il modello addestrato non sia stato valutato. L'ho già fatto prima.
Cioè, ci alleniamo fino a quando non siamo blu in faccia il miglior modello sul treno. Forse due o tre modelli. Poi il loro test una tantum.