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

 
Maxim Dmitrievsky #:
C'è più casualità, quindi è necessario armeggiare per farlo funzionare.

Si può scomporre la serie in componenti, trovare la casualità, trovare la parte deterministica. Scartare la parte casuale, lasciare il resto... Un caso standard per l'elaborazione della BP...

Ma no, non funziona nemmeno così.

A un certo punto, su nuovi dati, il casuale diventerà deterministico, e il deterministico diventerà casuale....

Quindi anche NESSUNO)

 
mytarmailS #:

è possibile scomporre la serie in componenti (decomposizione), trovare la parte casuale, trovare la parte deterministica. scartare la parte casuale, lasciare il resto... Un caso standard per l'elaborazione della BP ...

Ma no, non funziona nemmeno così.

A un certo punto, sui nuovi dati, il random diventerà deterministico e il deterministico diventerà random....

Quindi non funziona nemmeno).

Naturalmente, le esercitazioni contengono semplici BP per rendere più facile la spiegazione. In Real, è più complicato di così.

Ci sono altri VR non finanziari che sono anche difficili da prevedere, con un errore minimo possibile. Ma nel trading è più facile, perché non è necessario prevedere sempre, si può impostare il modello in modo che lo faccia selettivamente. L'ho fatto nell'ultimo articolo, ora rimane il tema della selezione delle caratteristiche informative. Ho già pensato a un metodo, ora devo solo sperimentare.

Voglio finalizzare il mio approccio e che diventi universale, secondo l'idea, cioè che dia risultati su qualsiasi valuta.

E voi con i vostri eventi fate anche la 3a classe per non fare trading in sostanza, non c'è nulla di nuovo. Dividete la BP in ciò che è previsto e non previsto.
 
Maxim Dmitrievsky #:
E anche voi, con i vostri eventi, fate essenzialmente trading di terza classe, niente di nuovo. Dividete la BP in ciò che è previsto e non previsto.

Questa è la vostra fantasia, non la realtà


Il modo in cui la vedo finora è questo:

ci sono dei dati, diciamo 100k osservazioni, che chiamerò "X.big".

1) selezioniamo (pattern, regola, evento, segnale da TS) ciò che ci interessa, io lo chiamo "regola iniziale" (attivazione di Alexey Funtz. Il nome è estremamente infelice ma...).

2) selezioniamo la "regola iniziale" dai dati e ora abbiamo 100-1000 osservazioni, non 100k, abbiamo ridotto lo spazio di ricerca "X.small".

3) in "X.small" iniziamo una ricerca su larga scala delle caratteristiche, vedo le caratteristiche sotto forma di regole sequenziali, le regole sono generate automaticamente attraverso la programmazione genetica, voglio una ricerca su larga scala, ma non sono sicuro di poterlo fare

4) un array degli attributi creati viene inserito nel modello, diciamo 1000 pezzi alla volta.

5) il modello (un qualche AMO) seleziona le caratteristiche in base all'importanza e salva le caratteristiche buone, ottiene un nuovo array, ecc....

6) come risultato della ricerca otterremo diverse migliaia di attributi funzionanti secondo una specifica " regola iniziale ".


Quindi, se chiamiamo tutto questo un modello, il modello stesso propone miliardi di caratteristiche e seleziona quelle necessarie.

 
mytarmailS #:

È la vostra fantasia, non la realtà


È così che la vedo finora:

Ci sono dei dati, diciamo 100k osservazioni, che chiamerò "X.big".

1) identifichiamo (pattern, regola, evento, segnale dalla TS) ciò che ci interessa, lo chiamo "regola iniziale" (Alexey Funtz. attivazione. il nome è estremamente infelice ma...).

2) selezioniamo la "regola iniziale" dai dati e ora abbiamo 100-1000 osservazioni, non 100k, perché abbiamo ridotto lo spazio di ricerca "X.small".

3) in "X.small" iniziamo una ricerca su larga scala delle caratteristiche, vedo le caratteristiche sotto forma di regole sequenziali, le regole sono generate automaticamente attraverso la programmazione genetica, voglio una ricerca su larga scala, ma non sono sicuro che funzionerà.

4) un array delle caratteristiche create viene inserito nel modello, ad esempio 1000 pezzi alla volta.

5) il modello seleziona le caratteristiche in base all'importanza e salva quelle buone, ottenendo un nuovo array, ecc....

6) come risultato della ricerca si ottengono diverse migliaia di attributi funzionanti secondo una specifica " regola iniziale ".


Quindi, se chiamiamo tutto questo modello, il modello stesso propone miliardi di caratteristiche e seleziona quelle necessarie.

Ancora una volta 25... questo non è diverso da una classificazione a 3 classi in termini di significato.

 
Maxim Dmitrievsky #:

Ancora una volta 25. non è diverso da una classificazione a 3 classi nel significato

Creiamo un set di dati e vediamo quale algoritmo è migliore.

 
Maxim Dmitrievsky #:
Uno dice che ho rubato le sue idee, l'altro dice che mi ha insegnato lui... ma chi siete voi? ))))

"Rubato" - l'hai appena detto? Sei senza vergogna, si vede.

Forum sul trading, sui sistemi di trading automatizzati e sulla verifica delle strategie di trading.

L'apprendimento automatico nel trading: teoria, pratica, trading e altro ancora

Aleksey Vyazmikin, 2020.12.03 19:11

Quindi l'idea è di valutare il modello, e il modello in realtà dipana obiettivi confusi, e possiamo valutare il suo successo in questo caso, non solo per vedere come tutto è confuso.

Sto pensando di provare il metodo di apprendimento a cascata (un termine che ho coniato io stesso - potrebbe esserci qualcosa di diverso). I grafici mostrano che ci sono aree in cui l'addestramento ha successo - lasciare quest'area, e ciò che va oltre quest'area addestrare di nuovo, avendo precedentemente rimosso dal campione gli esempi che rientrano nella distribuzione dell'area di sinistra. Ho già provato a farlo a mano - l'effetto era buono, ora penso di automatizzarlo, ma il secondo giorno ancora niente da fare - temo che l'effetto sia stato accidentale - non voglio essere sconvolto. Qual è la sua opinione in merito? Penso che sia facile farlo in Python.

Se ne parla nell'articolo.

Cito:

"

Vogliamo scrivere un algoritmo che sia in grado di analizzare e correggere i propri errori, migliorando iterativamente i propri risultati. Per fare ciò, proponiamo di prendere un gruppo di due classificatori e di addestrarli in sequenza come suggerito nel diagramma seguente.

"

"

L'intuizione di questo approccio è che i trade perdenti sono errori di classificazione del primo tipo per il modello sottostante, nella terminologia della matrice di confusione. Si tratta cioè di casi che il modello classifica come falsi positivi. Il metamodello filtra questi casi e assegna un punteggio di 1 ai veri positivi e di 0 a tutto il resto. Filtrando il set di dati del metamodello per addestrare il modello di base, aumentiamo la sua precisione, ossia il numero di trigger di acquisto e vendita corretti. Allo stesso tempo, il metamodello aumenta la sua Recall (completezza) classificando il maggior numero possibile di risultati diversi.

"

Le idee sono le stesse, ma voi avete realizzato l'implementazione ed elaborato i dettagli - io ho solo espresso il concetto e non sono sicuro di aver pubblicato i miei esperimenti e il codice di implementazione.

Ve l'ho ricordato nel contesto in cui potreste non capire di cosa si tratta ora, per poi usarlo in seguito quando lo capirete. E che la mancata comprensione non è un motivo per comportarsi in modo inadeguato e per esprimere giudizi di valore sulla personalità delle persone e sulla loro logica.

 
mytarmailS #:

Creiamo un set di dati e vediamo quale algoritmo è migliore.

Di cosa sarà composto il set di dati? Prendo solo citazioni come input.

 
Aleksey Vyazmikin #:

"Rubato" - l'hai appena detto? È senza vergogna, si vede.

L'articolo parlava proprio di questo.

Citazione:

"

Vogliamo scrivere un algoritmo che sia in grado di analizzare e correggere i propri errori, migliorando iterativamente i propri risultati. Per fare questo, proponiamo di prendere un gruppo di due classificatori e di addestrarli in sequenza come proposto nel diagramma seguente.

"

"

L'intuizione di questo approccio è che le operazioni perdenti sono errori di classificazione del primo tipo per il modello sottostante, nella terminologia della matrice di confusione. Si tratta cioè di quei casi che il modello classifica come falsi positivi. Il metamodello filtra questi casi e assegna un punteggio di 1 ai veri positivi e di 0 a tutto il resto. Filtrando il dataset del metamodello per addestrare il modello di base, aumentiamo la sua precisione, ossia il numero di trigger di acquisto e vendita corretti. Allo stesso tempo, il metamodello aumenta il suo Recall (completezza) classificando il maggior numero possibile di risultati diversi.

"

Le idee sono le stesse, ma voi avete realizzato l'implementazione ed elaborato i dettagli - io ho solo espresso il concetto e non sono sicuro di aver pubblicato i miei esperimenti e il codice di implementazione.

Ho ricordato che potreste non capire ora ciò di cui stiamo parlando, per poi usarlo in seguito, quando lo capirete. E che la mancata comprensione non è un motivo per comportarsi in modo inadeguato e per esprimere giudizi di valore sulla personalità delle persone e sulla loro logica.

Prendiamo quindi il codice dell'articolo e verifichiamolo. Perché dovrei capire di cosa stiamo parlando se non c'è ancora nulla.

Ho molte varianti di queste implementazioni, comprese quelle con riqualificazione piuttosto che riqualificazione di nuovo, riqualificazione per linee di base e così via.

Soprattutto quando si inizia a farlo, il risultato è diverso da quello di fantasia che era stato originariamente pianificato.

 
Maxim Dmitrievsky #:

Di cosa sarà composto il dataset? Accetto solo citazioni come input

Prezzi OHLS per gli ultimi 200 pezzi e un'etichetta, è possibile aggiungere il tempo.

 
mytarmailS #:

I prezzi di OHLS durano 200pc e una targhetta, è possibile aggiungere del tempo.

200 pezzi? Cos'è così poco? Non ho etichette, ho l'autopartizione.

Dovrò riscriverlo.