L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 115
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
Sei per caso un impiegato in una casa di intermediazione vecchio stile?
Penso che il tuo "metodo segreto" sia quello di scambiare mashki (casuale) e di raddoppiare quando perdi, giusto?)
Signori, dovrete vivere su commissione...
Creazione di un comitato e test:
C'è un problema nel fatto che le classi originali sono di tipo fattore, e il risultato nella matrice è convertito nei numeri ordinali corrispondenti al fattore. Così alla fine il confronto passa attraverso as.numberic().
Affinché tutto funzioni correttamente con i fattori, abbiamo bisogno di creare predictionMatrix come data.frame, ma dopo che la mia funzione rbind ha dato fuori dei varnings, ho bisogno di cambiare qualcos'altro, non ho capito cosa c'è di sbagliato lì.
Alcuni pensieri sul codice:
1. Non dovete usare il costrutto for() a meno che non sia assolutamente necessario. C'è una meravigliosa alternativa a foreach() che, oltre all'alta velocità di esecuzione, permette di parallelizzare i calcoli tra core accessibili.
2) L'ensemble di modelli ha senso e dà risultati solo se i modelli hanno differenze significative. Due varianti: un set di dati - diversi modelli (RF, DT, SVM); un modello - diversi set di dati. Un esempio di quest'ultimo caso è il seguente
Scegliete i modelli con le migliori prestazioni e lavorate con loro da lì.
Buona fortuna
Alcuni pensieri sul codice:
1. Non è necessario usare for() a meno che non sia assolutamente necessario. C'è una meravigliosa alternativa a foreach() che, oltre all'alta velocità di esecuzione, permette di parallelizzare i calcoli tra i core disponibili.
2) L'ensemble di modelli ha senso e dà risultati solo se i modelli hanno differenze significative. Due varianti: un set di dati - diversi modelli (RF, DT, SVM); un modello - diversi set di dati. Un esempio per quest'ultima opzione è il seguente
Scegliete i modelli con prestazioni migliori e lavorate con loro.
Buona fortuna
Poi scegliamo il modello con i migliori indicatori e lavoriamo con loro.
È qui che si trova il problema.
Qual è la migliore performance in base a quali dati?
Perché lo chiedo, perché Vkontas sta cercando di capire come scegliere un modello (tra molti modelli) usando dati di allenamento e di test. Ma qui è così semplice: prendiamo i migliori indicatori e lavoriamo con loro.
È qui che si trova il problema.
Qual è la migliore performance in base a quali dati?
Perché lo chiedo, perché Vkontas sta cercando di capire come scegliere un modello (tra molti modelli) usando dati di allenamento e di test. Ma qui è così semplice: prendiamo i migliori indicatori e lavoriamo con loro.
L'insieme iniziale è diviso in stratificato in treno/test. Sul treno ci si allena e sul test rispettivamente si testa. Non è chiaro dal codice?
Buona fortuna
Vorrei vederti più spesso. Non sparire.
L'insieme iniziale è diviso in stratificato in treno/test. Su treno ci alleniamo su test rispettivamente testiamo. Davvero non è chiaro dal codice?
Buona fortuna,
Proverò rminer::holdout, grazie per l'esempio. In generale, per esperienza, se scegliamo un modello e i suoi parametri in modo da ottenere il miglior risultato su un campione di prova - allora il modello darà alla fine un ottimo risultato sul campione di prova. Ma il risultato è di solito molto basso sui nuovi dati. Sto parlando specificamente di dati forex, in altri settori questo è un approccio abbastanza normale. Non spero che rminer::holdout per il forex cambi qualcosa di drammatico.
allora il modello finirà per mostrare un ottimo risultato sul campione di prova. Ma il risultato è di solito molto basso sui nuovi dati. Sto parlando specificamente di dati forex,
Il mercato cammina contro le sue stesse statistiche, questa è una teoria che ho confermato con la pratica, è l'unica teoria che conosco che risponde a tutto, dal perché il modello non funziona sui nuovi dati al perché tutti perdono soldi nel mercato in primo luogo...
perché è così difficile da accettare per te?
le vecchie conoscenze e abitudini sono così smorzate dalle nuove informazioni?
perché concentrarsi così tanto sul modello quando la differenza di performance tra i modelli è tra lo 0,5% e il 5%?
nessun modello può aiutare perché è tutto sui dati
Ho postato questa foto più di una volta ma tuttavia.....
Questa è la differenza tra le previsioni cumulative di acquisto e vendita di due reti cum(buy.signal) - cum(sell.signal), idealmente se il nostro modello è buono allora il grafico blu dovrebbe correlarsi con il prezzo, significa che la rete capisce bene i dati e reagisce adeguatamente ad essi, infatti quello che vediamo????????
Non si può dire che il modello non capisce i dati, anche se la correlazione è inversa ma la struttura è identica, ma il mercato si muove contro le previsioni, quelle contro le statistiche che la rete aveva imparato in passato...
Ora ditemi, quale modello può gestirlo? Quale convalida incrociata può aiutare in questo caso? qualsiasi addestramento del modello seguito da out of sample (nuovi dati) non sarebbe altro che un adattamento di un modello che funziona bene su out of sample e niente di più... E lo si vede sempre quando si addestrano i modelli da soli, che su dati nuovi di zecca il modello fallisce sempre, non vedi? Vi do la risposta perché succede!
Questo è il grafico con i dati su cui ha avuto luogo l'addestramento stesso, o è solo un test sui nuovi dati? Se si disegna un grafico per entrambi i periodi di tempo contemporaneamente, sia per l'allenamento che per il test, allora sulla prima parte (allenamento) dei dati ci sarà una completa sovrapposizione del grafico blu e grigio, e quando iniziano i nuovi dati ci sarà un netto passaggio alla correlazione inversa?
Se fosse così semplice, basterebbe addestrare qualsiasi modello e invertire le sue previsioni. Questo non funziona purtroppo.
Insegnare un modello che dà lo 0% di precisione su nuovi dati è altrettanto difficile che raggiungere il 100% di precisione. Il lancio predefinito di una moneta, per esempio, ha una precisione del 50%, e andare da una parte o dall'altra di un paio di dozzine di punti percentuali è ugualmente difficile. Il problema non è che i modelli danno risultati opposti, ma che alcune barre daranno risultati corretti, altre daranno risultati sbagliati, e tutto questo è casuale e non c'è modo di filtrare solo i risultati corretti.
E perché si sottrae la previsione S dalla previsione B? Forse dovresti fare il contrario, S-B? Allora anche la correlazione diventerebbe improvvisamente corretta.