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

 

Avevo un lungo post, ma il moderatore l'ha cancellato perché non riuscivo a contenermi e ho espresso i miei sentimenti in un tipico modo russo.... quindi la terrò breve....

Sono solo sbalordito, per essere onesto con voi, dai risultati che ho ottenuto. Sì, da 110 ingressi sono stati scelti da 3 a 5 in diverse circostanze, e modelli sootvetechno che si sono rivelati essere abbastanza piccolo, ma come hanno lavorato è qualcosa con qualcosa. Prima di tutto, TUTTI i modelli costruiti sugli input selezionati hanno superato il mio test al 100%. Tale risultato l'ho potuto ottenere solo una volta e per caso, ma qui è stabile per tutto il tempo........

Sì, i polinomi stessi si sono rivelati troppo piccoli, ma chi cazzo se ne frega. Tutti i mezzi sono buoni in guerra. So che colpiremo il mercato con piccoli polinomi, se funzionano, non è colpa mia......

Ma di nuovo, questo è solo un test veloce e abbiamo bisogno di più tempo per confermare la teoria, ma ecco un esempio spettacolare del TS che lavora nell'area dei feedback negativi per le ultime due settimane.

Non è certo un graal discusso nel prossimo thread, ma il risultato è evidente, Equity è costantemente sopra lo zero su tutta l'area di CB!!!!

Vorrei ringraziare tutti coloro che hanno risposto alla mia richiesta di aiuto con R. Mi hai davvero aiutato a risparmiare un sacco di tempo. Ora ho solo bisogno di portare il mio segnale nella zona verde!!!!!

 
Ildottor Trader:

jPrediction, per esempio, scala i dati all'intervallo [-1;1] e impara su questi numeri. Potete anche scalare allo stesso intervallo in R prima di valutare gli input.

I metodi di stima basati sugli alberi probabilmente non cambieranno il risultato, le foreste non si preoccupano veramente in quale intervallo sono arrivati i dati, ma è meglio controllare. Anche vtreat non è schizzinoso riguardo all'intervallo.


Ma in generale, sta parlando di trasformazione non lineare degli input anche prima dell'alimentazione nei neuroni. Neuronics è molto sensibile agli input, e se si elaborano i dati di input in qualche modo speciale, i suoi risultati possono migliorare. Per esempio, ho sentito un trucco del genere: convertire gli ingressi tramite sigmoide.

I modelli costruiti hanno già una tale funzione, se non mi sbaglio. Assomiglia a questo....

double sigmoid(double x) {
   if (MathAbs(x) < 1.0) {
      return 2.0 * signum(x) - x;
   }
   return signum(x);
}
 
Mihail Marchukajtes:

Assomiglia a questo....

Una specie di "Reshetov Sigmoid" speciale :)

Ecco un'immagine interessante con diverse trasformazioni di dati.
Dicono che se tutti i predittori hanno approssimativamente le stesse barre, la rete neurale sarà molto felice e imparerà facilmente. L'ultimo terzo dei predittori su scale()x2->Sigmoid() sembra bello, ma ho bisogno di fare qualcosa con la prima metà dei predittori o il neurone può essere soffocato.
E se guardiamo il boxplot per la scalatura in [-1;1] come in jPrediction, sembra davvero brutto.


File:
 

Oggi è il giorno del Graal, ma sappiamo com'è fatto e quanto lavoro ci vuole per tenerlo nelle nostre mani!!!!

Non ho paura della parola, ma oggi ho trovato un graal per me stesso. L'ho testato ripetutamente e i risultati sono sorprendenti. Un ringraziamento speciale al Dr. Trader per il suo sostegno, che ha effettivamente portato alla scoperta. Non ho paura di questa parola........ Con l'aiuto di R sono stato in grado di trovare effettivamente un insieme di predittori importanti, e dato che l'obiettivo ha lo stesso numero di classi, allora giocando un po' (aggiungendo o togliendo una) l'insieme dei predittori importanti può essere ampliato di una, due colonne. Ho provato una volta ed era così normale aggiungerli. Poi cominciamo a sfoltire e a selezionare il modello con i massimi risultati di apprendimento.


Naturalmente non grande dimensione del polinomio, ma funzionerà in teoria il 50% dell'intervallo di allenamento, cioè una settimana, ed è abbastanza per me!!!!!! Ma ecco il fatto.... E ora mi rivolgo a quelle persone qui che cercano modelli affidabili e stabili. È più facile da spiegare con un esempio.........

Salvo una tabella di dati di 1000 righe e 111 colonne dove 110 predittori e così l'output. MA non prendo tutta la tabella, prendo una piccola sezione fresca di 40 record (sono circa 2 settimane di lavoro di TS) Come risultato ho un set di allenamento di dimensioni 40 per 110 più l'obiettivo. Infatti prendo una fetta di mercato proprio in questo giorno in questo stesso intervallo. Questa fetta è ferma. Poi seleziono le variabili di input significative rispetto all'output e ottengo da 3 a 5 colonne che, a quanto ho capito, hanno l'alfa necessaria che mi permette di avere un vantaggio sugli altri partecipanti al mercato. E ora la cosa più importante.... Di cosa si parlava in tutta questa discussione. Non appena aggiungo un'altra riga alla tabella dei dati per l'allenamento, l'insieme delle colonne cambierà drasticamente, cioè alfa si sposterà su un altro insieme di colonne. Forse non immediatamente, ma dopo aver aggiunto più di una riga. Cioè i segnali TS!!!! Alpha è precisamente lo stesso modello nella sua forma più pura che è minima e sufficiente per la funzione di destinazione. Ma questo modello non è evidente, cioè, vederlo ad occhio nudo è molto difficile. È a questo punto che l'IA entra in gioco e fa il suo lavoro.

E ora immaginate come alfa può rimbalzare su tutto il campo di dati, che scarico, se raramente è contenuto in più di cinque ingressi, e campo totale di 110 ingressi. In altre parole, con ogni nuova fetta ottengo un set di predittori completamente diverso. E come volete stargli dietro, e anche a distanza di un ANNO!!!!!!! se è qui da settimane, difficilmente si riesce a prenderlo come si deve....... Ma hai assolutamente ragione c'è un graal, ma ognuno ha il suo, e per mantenerlo bisogna fare un paio di sforzi considerevoli.......

E di nuovo riferendosi ai teorici dei conti demo, ecco come si fa.......

Ho lavorato con la teoria e ho fatto alcuni test usandola. I test hanno mostrato buoni risultati. I modelli sono addestrati UPU con il robot è caricato. Guardate il mio segnale questa settimana e vedrete quanto valgono le mie ipotesi.

 

Meraviglioso!

Ave R!

 
Mihail Marchukajtes:

Ora immaginate come l'alfa possa saltare su tutto il campo di dati che scarico se raramente è contenuto in più di cinque ingressi, e il campo totale è di 110 ingressi. In altre parole, con ogni nuova fetta ottengo un set di predittori completamente diverso.

Ora accendi il tuo cervello )

 
Combinatore:

Ora usa il tuo cervello).

Se segui davvero il tuo consiglio e ci pensi, c'è solo una risposta. Il taglio è stazionario e qualsiasi cambiamento di esso ti getta semplicemente in un'altra dimensione (in senso figurato), dove le leggi sono completamente diverse. Ecco perché è molto difficile fare soldi nel mercato. Questo è ciò che si chiama non stazionarietà. Quando le informazioni che possono prevedere solo il 5% del massimo set di dati possibile e il prossimo segnale può cambiare drasticamente, o non cambiare affatto. Inoltre, salvo il delta e il volume per 11 strumenti, di cui solo il 5% lavora qui e ora e non si sa quando saranno cambiati, ma è chiaro che quando la sostituzione di altre colonne questo momento può essere tracciato e di conseguenza determinare il momento in cui il modello si sgonfia...... Bisogna fare più test.....a non avere il tempo...

 

OOS, 15 min tf

trovato alcuni bug nella strategia #2, l'ho sistemato e sembra funzionare

c'è ancora la pagina 3 ed è stata aggiunta la RL, che sento che ha molto potenziale ma avrà bisogno di molto pensiero per implementare


 

Interessante articolo su uno studio di otto modelli di apprendimento automatico

In particolare, consideriamo i seguenti algoritmi: multilayer perceptron (MLP), regressione logistica, Naïve Bayes, knearest neighbors, alberi decisionali, foreste casuali e alberi gradient-boosting. Questi modelli sono applicati a serie temporali da otto processi di generazione di dati (DGP) - che riflettono diverse dipendenze lineari e non lineari (caso base). Un'ulteriore complessità è introdotta dall'aggiunta di discontinuità e di vari gradi di rumore.


Ed ecco i risultati

In primo luogo, troviamo che i modelli di apprendimento automatico raggiungono prestazioni solide su DGP sottostanti sconosciute, rispetto al livello di ambizione fissato dalle previsioni ottimali. In assenza di rumore (caso di base), i risultati ottenuti con i modelli di apprendimento automatico assomigliano quasi a quelli della previsione ottimale. Model-wise, MLPs e GBTs forniscono i migliori risultati per entrambi i DGPs lineari e non lineari. Per i processi senza o con solo piccole nonlinearità, la LR presenta una buona alternativa, soprattutto se si considera il suo basso costo computazionale. Troviamo che NB e i singoli alberi decisionali forniscono prestazioni peggiori e quindi raccomandiamo le tecniche sopra menzionate per i compiti di previsione delle serie temporali.

In secondo luogo, è meglio includere troppi valori ritardati nello spazio delle caratteristiche che includerne troppo pochi. Troviamo che la maggior parte dei modelli di apprendimento automatico sono abbastanza robusti per superare il numero di ritardi richiesti suggerito dall'equazione di processo della DGP. Nel caso della RF, l'inclusione di caratteristiche aggiuntive aumenta addirittura la precisione predittiva. Raccomandiamo di iniziare con un ritardo e di aumentare gradualmente il numero di ritardi monitorando la performance su un set di hold out o con una validazione incrociata.

In terzo luogo, troviamo che i salti hanno un effetto negativo molto forte sull'accuratezza predittiva con LR che è il modello di apprendimento automatico più robusto. Per mitigare gli effetti negativi, sia l'aggiunta di prime differenze allo spazio delle caratteristiche (DIFF) che la rimozione dei salti basata sull'algoirthm LOF hanno mostrato buoni risultati. Raccomandiamo la combinazione di entrambe le tecniche.

In quarto luogo, inquinare la serie temporale con il rumore ha l'effetto più dannoso sull'accuratezza predittiva in tutti i modelli di apprendimento automatico. Ancora una volta, troviamo che la LR è il modello di apprendimento automatico più robusto in presenza di rumore. Inoltre, ulteriori misure di mitigazione, come l'inclusione delle prime differenze (DIFF) e delle medie mobili (MA) nello spazio delle caratteristiche danno risultati migliori.

 
SanSanych Fomenko:

Interessante articolo su uno studio di otto modelli di apprendimento automatico

Model-wise, MLPs e GBTs forniscono i migliori risultati per entrambi i DGPs lineari e non lineari. Per i processi senza o con piccole non linearità, la LR presenta una buona alternativa, specialmente se si considera il suo basso costo computazionale. Troviamo che NB e i singoli alberi decisionali forniscono prestazioni peggiori e quindi raccomandiamo le tecniche sopra menzionate per i compiti di previsione delle serie temporali.

Un po' ovvio, considerando che CART non lavora affatto su problemi pre-lineari.