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

 
Di nuovo, vorrei aggiungere e definire. Prevediamo il prezzo di un bene. Almeno ci proviamo, in qualsiasi rappresentazione ed elaborazione. Qualunque sia l'obiettivo che costruiamo, il punto di lavorare nel mercato è prevedere il prezzo. La domanda è cosa causa il cambiamento del prezzo?????? Chi lo sa o ha un'ipotesi? Vorrei sapere cosa ne pensate e poi vi darò la risposta giusta. Bene... ecco qui. La tua ipotesi. Qual è il motivo del cambiamento di prezzo?????
 
Mihail Marchukajtes:
Di nuovo, vorrei aggiungere e definire. Prevediamo il prezzo di un bene. Almeno ci proviamo, in qualsiasi modo lo vediamo o lo elaboriamo. Qualunque sia il nostro obiettivo, il punto di lavorare nel mercato è prevedere il prezzo. La domanda è cosa causa il cambiamento del prezzo?????? Chi ci darebbe una risposta o un'ipotesi? Vorrei sapere cosa ne pensate e poi vi darò la risposta giusta. Bene... ecco qui. La tua ipotesi. Qual è il motivo del cambiamento di prezzo?????

Prevedere il cambiamento del prezzo, di quanto il prezzo si muove in N secondi/minuti/ore nel futuro, o più convenientemente il ritorno futuro(R =(P(t)-P(t+n))/P(t)) o logreturn.

Ilprezzo cambia a causa della pressione degli squilibri della domanda e dell'offerta che sorgono per molte ragioni, dal banale scambio di grandi quantità di valute dovuto al commercio internazionale, ai prestiti ai paesi, alla copertura dei rischi valutari, all'arbitraggio e alla speculazione su informazioni privilegiate e notizie derivate dall'attività di mercato, dal tempo, dalla moda e dall'attività solare.

 

Ecco una lista di predittori e variabili target che fattorizzano, spostati dal corrispondente numero di barre

'data.frame':   6971 obs. of  105 variables:
$ AUDUSD     : num  0.722 0.722 0.722 0.721 0.72 ...
$ CHFJPY     : num  120 120 120 119 119 ...
$ USDCAD     : num  1.39 1.39 1.39 1.39 1.39 ...
$ GBPCHF     : num  1.47 1.47 1.47 1.48 1.47 ...
$ EURGBP     : num  0.739 0.74 0.739 0.737 0.739 ...
$ USDJPY     : num  119 119 119 119 119 ...
$ GBPUSD     : num  1.48 1.48 1.48 1.48 1.48 ...
$ EURUSD     : num  1.09 1.09 1.09 1.09 1.09 ...
$ EURCHF     : num  1.09 1.09 1.09 1.09 1.09 ...
$ USDCHF     : num  0.995 0.995 0.994 0.998 0.998 ...
$ GBPJPY     : num  176 176 176 176 175 ...
$ EURJPY     : num  130 130 130 130 130 ...
$ EURCAD     : num  1.52 1.52 1.52 1.52 1.52 ...

$ d1_AUDUSD  : num  0.010401 0.000505 -0.001818 -0.003433 -0.008583 ...
$ d1_CHFJPY  : num  -0.01497 0.00444 -0.00186 -0.02309 -0.00823 ...
$ d1_USDCAD  : num  0.008585 0.003389 -0.012832 0.000136 0.002982 ...
$ d1_GBPCHF  : num  -0.000685 0.001746 0.000651 0.024858 -0.009416 ...
$ d1_EURGBP  : num  0.0031 0.00161 -0.00194 -0.01042 0.01003 ...
$ d1_USDJPY  : num  -0.02035 0.00201 -0.00654 0.00558 -0.00933 ...
$ d1_GBPUSD  : num  0.00707 0.00355 0.00439 0.00204 -0.00697 ...
$ d1_EURUSD  : num  0.01916 0.0093 0.00404 -0.01876 0.00905 ...
$ d1_EURCHF  : num  0.0116 0.01463 -0.00732 0.04675 0.01089 ...
$ d1_USDCHF  : num  -0.01705 -0.00415 -0.00933 0.05219 -0.00553 ...
$ d1_GBPJPY  : num  -0.00779 0.00362 -0.00101 0.00484 -0.01057 ...
$ d1_EURJPY  : num  -0.00941 0.00844 -0.0045 -0.00668 -0.00417 ...
$ d1_EURCAD  : num  0.02362 0.01077 -0.01055 -0.01408 0.00971 ...
$ d2_AUDUSD  : num  0.000909 -0.001313 -0.001313 -0.012017 -0.012017 ...
$ d2_CHFJPY  : num  -0.02594 0.00258 0.00258 -0.03132 -0.03132 ...
$ d2_USDCAD  : num  0.01387 -0.00944 -0.00944 0.00312 0.00312 ...
$ d2_GBPCHF  : num  0.0103 0.0024 0.0024 0.0154 0.0154 ...
$ d2_EURGBP  : num  -0.000776 -0.000332 -0.000332 -0.000388 -0.000388 ...
$ d2_USDJPY  : num  -0.01857 -0.00453 -0.00453 -0.00375 -0.00375 ...
$ d2_GBPUSD  : num  0.00771 0.00794 0.00794 -0.00493 -0.00493 ...
$ d2_EURUSD  : num  0.0123 0.0133 0.0133 -0.0097 -0.0097 ...
$ d2_EURCHF  : num  0.03676 0.00732 0.00732 0.05764 0.05764 ...
$ d2_USDCHF  : num  0.00599 -0.01348 -0.01348 0.04666 0.04666 ...
$ d2_GBPJPY  : num  -0.00616 0.0026 0.0026 -0.00572 -0.00572 ...
$ d2_EURJPY  : num  -0.01205 0.00394 0.00394 -0.01085 -0.01085 ...
$ d2_EURCAD  : num  0.023928 0.000221 0.000221 -0.004371 -0.004371 ...
$ d4_AUDUSD  : num  -0.000404 -0.000404 -0.000404 -0.029385 -0.029385 ...
$ d4_CHFJPY  : num  -0.0234 -0.0234 -0.0234 -0.0327 -0.0327 ...
$ d4_USDCAD  : num  0.00443 0.00443 0.00443 0.00122 0.00122 ...
$ d4_GBPCHF  : num  0.0127 0.0127 0.0127 0.0255 0.0255 ...
$ d4_EURGBP  : num  -0.00111 -0.00111 -0.00111 -0.01496 -0.01496 ...
$ d4_USDJPY  : num  -0.0231 -0.0231 -0.0231 0.0175 0.0175 ...
$ d4_GBPUSD  : num  0.0156 0.0156 0.0156 -0.0157 -0.0157 ...
$ d4_EURUSD  : num  0.0256 0.0256 0.0256 -0.0601 -0.0601 ...
$ d4_EURCHF  : num  0.0441 0.0441 0.0441 0.0277 0.0277 ...
$ d4_USDCHF  : num  -0.00749 -0.00749 -0.00749 0.09459 0.09459 ...
$ d4_GBPJPY  : num  -0.0035602 -0.0035602 -0.0035602 0.0000957 0.0000957 ...
$ d4_EURJPY  : num  -0.00811 -0.00811 -0.00811 -0.02169 -0.02169 ...
$ d4_EURCAD  : num  0.0241 0.0241 0.0241 -0.0445 -0.0445 ...
$ d1_AUDUSD_f: Factor w/ 2 levels "-1","1": 2 1 1 1 1 1 1 1 1 2 ...
$ d1_CHFJPY_f: Factor w/ 2 levels "-1","1": 2 1 1 1 2 1 1 2 2 2 ...
$ d1_USDCAD_f: Factor w/ 2 levels "-1","1": 2 1 2 2 1 1 1 2 2 1 ...
$ d1_GBPCHF_f: Factor w/ 2 levels "-1","1": 2 2 2 1 2 2 1 2 1 1 ...
$ d1_EURGBP_f: Factor w/ 2 levels "-1","1": 2 1 1 2 1 1 1 1 2 2 ...
$ d1_USDJPY_f: Factor w/ 2 levels "-1","1": 2 1 2 1 2 2 1 2 2 2 ...
$ d1_GBPUSD_f: Factor w/ 2 levels "-1","1": 2 2 2 1 1 1 1 1 1 2 ...
$ d1_EURUSD_f: Factor w/ 2 levels "-1","1": 2 2 1 2 1 1 1 1 2 2 ...
$ d1_EURCHF_f: Factor w/ 2 levels "-1","1": 2 1 2 2 1 1 1 1 1 2 ...
$ d1_USDCHF_f: Factor w/ 2 levels "-1","1": 1 1 2 1 2 2 2 2 1 1 ...
$ d1_GBPJPY_f: Factor w/ 2 levels "-1","1": 2 1 2 1 2 1 1 2 1 2 ...
$ d1_EURJPY_f: Factor w/ 2 levels "-1","1": 2 1 1 1 2 1 1 1 2 2 ...
$ d1_EURCAD_f: Factor w/ 2 levels "-1","1": 2 1 1 2 1 1 1 2 2 2 ...
$ d2_AUDUSD_f: Factor w/ 2 levels "-1","1": 1 1 1 1 1 1 1 2 2 2 ...
$ d2_CHFJPY_f: Factor w/ 2 levels "-1","1": 2 1 1 1 1 1 1 2 2 2 ...
$ d2_USDCAD_f: Factor w/ 2 levels "-1","1": 1 2 2 1 1 2 2 2 2 1 ...
$ d2_GBPCHF_f: Factor w/ 2 levels "-1","1": 2 2 2 2 2 1 1 1 1 1 ...
$ d2_EURGBP_f: Factor w/ 2 levels "-1","1": 1 1 1 1 1 1 1 2 2 1 ...
$ d2_USDJPY_f: Factor w/ 2 levels "-1","1": 1 1 1 2 2 2 2 2 2 1 ...
$ d2_GBPUSD_f: Factor w/ 2 levels "-1","1": 2 1 1 1 1 1 1 2 2 2 ...
$ d2_EURUSD_f: Factor w/ 2 levels "-1","1": 2 1 1 1 1 1 1 2 2 2 ...
$ d2_EURCHF_f: Factor w/ 2 levels "-1","1": 2 2 2 1 1 1 1 1 1 1 ...
$ d2_USDCHF_f: Factor w/ 2 levels "-1","1": 1 2 2 2 2 2 2 1 1 1 ...
$ d2_GBPJPY_f: Factor w/ 2 levels "-1","1": 2 1 1 2 2 1 1 2 2 2 ...
$ d2_EURJPY_f: Factor w/ 2 levels "-1","1": 2 1 1 1 1 1 1 2 2 1 ...
$ d2_EURCAD_f: Factor w/ 2 levels "-1","1": 2 1 1 1 1 1 1 2 2 2 ...
$ d4_AUDUSD_f: Factor w/ 2 levels "-1","1": 1 1 1 1 1 1 1 2 2 2 ...
$ d4_CHFJPY_f: Factor w/ 2 levels "-1","1": 1 1 1 2 2 2 2 2 2 2 ...
$ d4_USDCAD_f: Factor w/ 2 levels "-1","1": 2 2 2 2 2 2 2 1 1 1 ...
$ d4_GBPCHF_f: Factor w/ 2 levels "-1","1": 2 2 2 1 1 1 1 1 1 1 ...
$ d4_EURGBP_f: Factor w/ 2 levels "-1","1": 1 1 1 1 1 1 1 1 1 1 ...
$ d4_USDJPY_f: Factor w/ 2 levels "-1","1": 2 2 2 2 2 2 2 2 2 2 ...
$ d4_GBPUSD_f: Factor w/ 2 levels "-1","1": 1 1 1 1 1 1 1 2 2 2 ...
  [list output truncated]

Tra le variabili target elencate, solo due variabili target d4_EURUSD_f e d4_USDCHF_f hanno predittori che hanno potere predittivo per queste variabili target. Tutte le altre variabili target non possono essere previste 4 passi avanti dai predittori elencati.

Prevedere 1 passo avanti e 2 passi avanti sembra molto meglio

 

una tendenza al rialzo è la fiducia della grande maggioranza dei partecipanti in una caduta, che è sostenuta da un commercio...

Il supporto è l'intervallo in cui la stragrande maggioranza dei partecipanti era allo scoperto, ma il prezzo non è sceso, bensì salito. Quando il prezzo ritorna allo stesso range, gli short rimanenti chiuderanno aggressivamente i loro short a circa zero e quindi faranno un mini rally al rialzo.

 
SanSanych Fomenko:

Ecco una lista di predittori e variabili target che fattorizzano, spostati del numero appropriato di barre..........................

..........................Prevedere 1 passo e 2 passi avanti sembra molto meglio

Quanto meglio, quali sono i risultati?

 
mytarmailS:

Quanto meglio, quali sono i risultati in generale?

C'è una misura astratta:

= 1 è il 100% di capacità predittiva

Se > 10, allora credo che il predittore non abbia capacità predittiva.

Per gli obiettivi elencati a 4 passi, i predittori hanno una misura da 7 a 9. Per una previsione a 1 passo avanti, ci sono predittori con una misura di poco superiore a due.

PS.

Su questo thread ho ripetutamente chiesto di occuparsi specificamente della capacità predittiva dei predittori. Non dimentichiamo: "spazzatura dentro, spazzatura fuori". E nessun modello può cambiare questo.

 
SanSanych Fomenko:

C'è una misura astratta:

In particolare, che tipo di precisione ha il MO sull'OOS?

perché queste astrazioni...

 
mytarmailS:

Qual è esattamente l'accuratezza del MO sull'OOS?

perché queste astrazioni...

Si prevede una classe. L'errore di predizione è tra il 25 e il 30%, ed è lo stesso nell'addestramento e fuori dal campione. il modello NON viene riqualificato.

PS

Ho scritto tutto questo molte, molte volte.

 
SanSanych Fomenko:

Non dimentichiamo: 'spazzatura dentro, spazzatura fuori'. E nessun modello può cambiare questo.

A volte una combinazione di predittori spazzatura e il modello giusto improvvisamente prevede meglio di quei predittori da soli.

Ecco un esempio dei dati di allenamento del concorso MO numer.ai -https://api.numer.ai/competitions/current/dataset(tabella numerai_training_data.csv nell'archivio). Ci sono 50 predittori, e tutti i metodi di valutazione che ho provato dicono che è spazzatura. Ma provando diverse combinazioni di essi e diversi modelli è possibile ottenere un'accuratezza di predizione >50% su training e validazione.

 
Dr.Trader:

A volte una combinazione di predittori spazzatura e il modello giusto inizia improvvisamente a predire meglio di quei predittori da soli.

Ecco, per esempio, i dati di allenamento del concorso MO numer.ai -https://api.numer.ai/competitions/current/dataset(tabella numerai_training_data.csv nell'archivio). Ci sono 50 predittori, e tutti i metodi di valutazione che ho provato dicono che è spazzatura. Ma provando diverse combinazioni di essi e diversi modelli è possibile ottenere un'accuratezza di predizione >50% su training e validazione.

1. È necessario prendere inizialmente due file separati: uno per l'addestramento-testing-validazione, e uno per validare il modello creato. L'errore su tutti e quattro i campioni dovrebbe essere circa lo stesso.

2. Naturalmente, tutta la nostra attività consiste nel manipolare il quoziente originale e ottenere un nuovo precursore, derivato dall'originale, che avrà potere predittivo. Non sto discutendo da dove viene il set iniziale di predittori - questo è un problema a sé stante.