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

 
Aleksey Vyazmikin:

Ho una domanda sulla variabile obiettivo.

Se la nostra variabile obiettivo è il risultato finanziario di un trade, allora è ragionevole normalizzare questo risultato, come ho pensato. Ma qui sto cercando informazioni sul sito web, e ovunque si dice che la variabile target dovrebbe avere due valori - acquisto o vendita. E se avrò una perdita in ogni caso - comprare o vendere (e succede!), allora perché dovrei tagliare tutte le variabili negative? E se è la presenza di varianti negative che influenza le statistiche?

In generale, vorrei sapere quali reti funzionano (e dove trovarle?) nel caso estremo con un trigger di acquisto/vendita/nulla, e nel caso migliore con una funzione (in precedenza ho chiesto una funzione qui poiché stavo cercando una soluzione teorica, ma ora ho fatto uno script che riunisce i predittori) che fa la classifica.

> Se la nostra variabile obiettivo è il risultato finanziario di una transazione, allora è ragionevole normalizzare questo risultato, come ho pensato

Non normalizzo gli obiettivi, li uso così come sono (aumento dei prezzi). Se usate i neuroni, è meglio normalizzare i predittori (un altro nome per gli ingressi, i chip). Per la foresta in qualche modo non ho davvero bisogno di preoccuparmi della normalizzazione, funziona bene in ogni caso.

Si noti che un neuroneka molto spesso ha un'uscita che passa anche attraverso una funzione di attivazione, e può essere solo entro (0;1) per una sigmoide. Allora anche l'obiettivo dovrebbe essere normalizzato se non rientra in questo intervallo. Oppure potremmo rimuovere l'attivazione per l'uscita in modo che possa prendere qualsiasi valore.


> Ma qui sto cercando informazioni sul sito, e ovunque si parla di come la variabile target dovrebbe avere due valori - comprare o vendere.

Questo si chiama classificazione. Quando invece del prezzo - solo qualche set (0 e 1; -1 e 1; "comprare" e "vendere").
Se si prevede il prezzo stesso o il suo incremento, non si chiama classificazione, ma regressione.


> Se avrò una perdita in ogni caso - comprare o vendere (succede!), allora perché dovrei tagliare tutte le scelte negative? E se fosse la presenza di opzioni negative a influenzare le statistiche?

Tutto dipende dai tuoi predittori, puoi scoprire la risposta solo sperimentalmente, provando entrambe le varianti. Per esempio ho cercato di creare la mia funzione di fitness per la foresta - ho fatto un diagramma di trade (tenendo conto dello spread) usando le previsioni della foresta e ho usato il diagramma per definire lo sharpe ratio, che era il valore che ho cercato di aumentare come risultato.


> In generale, vorrei sapere quali reti funzionano.

Attualmente sto prendendo i prezzi aperti e li sto usando con indicatori (fatti in casa) per creare nuove funzioni. Sto allenando la neuronica che prevede l'aumento del prezzo per barra. Ho bisogno di molto tempo per creare nuovi indicatori, altrimenti il modello non batterà lo spread.

Guardando i tuoi file vedo che hai già molti predittori. Se il vostro obiettivo è solo un insieme di -1,0,1 - usate la foresta. Se volete prevedere il prezzo - meglio usare il neurone.

 
Maxim Dmitrievsky:

Sbagliato... sì, i punti in cui è possibile il massimo profitto naturalmente, per esempio

per la classificazione, un perseptron multistrato con uno strato di uscita softmax (uscite di probabilità di appartenenza alla classe)

Hai letto questo? https://www.mql5.com/ru/articles/497 sull'esempio del 1° neurone. E poi immaginate che ce ne siano molti, quindi questa è l'intera rete neurale.

Sono esattamente le funzioni di soglia di cui chiedevi.

Beh, sembra un buon risultato, sì.

Ho perso quell'articolo - grazie per averlo segnalato, alcune cose sono diventate più chiare! Ma non tutto in una volta - bisogna leggere queste cose più e più volte... Ho capito la diffusione dei coefficienti e l'ascolto della loro somma con una funzione.


elibrario:

Ho provato il 1° file, dividendolo in 3 parti:


Formazione
Previsto
Attuale 0 1
0 28107 1244
1 3045 4119

Prova 1

Previsto
Attuale 0 1
0 5950 356
1 742 776

Corrente 2

Previsto
Attuale 0 1
0 5945 333
1 779 769

Calcolato su nnet con 10 neuroni in uno strato nascosto (NS del pacchetto Rattle di R)

Peggio della vostra foresta, ma non male. Il secondo file può avere risultati simili.

Grazie! Penso che questi risultati possano essere usati come un filtro, cioè per proibire il trading - poiché indovinare gli zeri è più stabile.

 
Aleksey Vyazmikin:

Ho perso questo articolo - grazie per averlo segnalato, ha chiarito alcune cose! Ma non tutto in una volta - bisogna leggere queste cose un paio di volte... Capisco i coefficienti di dispersione e l'ascolto della loro somma tramite una funzione.


Grazie! Penso che questi risultati possano essere usati come un filtro, cioè per proibire il trading - perché indovinare gli zeri è più stabile.

Beh, ce ne sono di più nella realtà - ecco perché è facile da indovinare)

 
Ildottor Trader:

> Se la nostra variabile obiettivo è il risultato finanziario del commercio, è ragionevole normalizzare questo risultato, come ho pensato

Non normalizzo gli obiettivi, li uso così come sono (guadagni di prezzo). Se usate i neuroni, allora è meglio normalizzare i predittori (un altro nome è ingressi, chip). Per la foresta in qualche modo non ha davvero bisogno di preoccuparsi di normalizzazione, funziona bene in ogni caso.

Hm, e al contrario, ho pensato, che per la foresta il più importante per fare predittori logici, come sì / no, che è quello che ho fatto ed è per questo che ci sono un sacco di loro, e sarebbe molto meno. Proverò a farlo in modo diverso - darò 8 valori a un predittore e vedrò se il risultato cambia.

Ildottor Trader:

Si noti che molto spesso l'uscita di un neuronekey passa anche la funzione di attivazione, e può essere solo entro (0;1) per una sigmoide. Allora anche l'obiettivo dovrebbe essere normalizzato se non rientra in questo intervallo. Oppure possiamo rimuovere l'attivazione per l'uscita in modo che possa prendere qualsiasi valore.

Cosa intendi per rimuovere l'attivazione per l'ingresso? Non so cosa sia - attivazione...

Ildottor Trader:

> Ma qui si stanno cercando informazioni sul sito, e ovunque si dice che la variabile target dovrebbe avere due valori - comprare o vendere.

Si chiama classificazione. Quando invece del prezzo - solo qualche set (0 e 1; -1 e 1; "comprare" e "vendere")
Se si prevede il prezzo stesso o il suo incremento, si chiama regressione, non classificazione.

Sì, ma se non devo comprare o vendere, ma solo saltare un segnale, allora cosa fare? Così ho deciso di fare due NS separati per considerare il momento - non per commerciare.

Ildottor Trader:

> Se farò una perdita in ogni caso - comprare o vendere (può succedere così!), dovrei semplicemente tagliare le varianti negative? E se fosse la presenza di opzioni negative a influenzare le statistiche?

Tutto dipende dai tuoi predittori, puoi scoprire la risposta solo sperimentalmente, provando entrambe le varianti. Per esempio ho cercato di costruire la mia funzione di fitness per la foresta - ho fatto un diagramma di trade (tenendo conto dello spread) usando le previsioni della foresta e ho usato il diagramma per definire lo sharpe ratio che era il valore che ho cercato di aumentare come risultato.

Cioè, per alcuni predittori la storia non è molto importante, mentre per altri è critica, e siccome ci possono essere entrambi, risulta che tagliarli non è auspicabile...

Ildottor Trader:


Ora sto prendendo i prezzi aperti e li sto usando con gli indicatori (fatti in casa) per creare nuove funzioni. Sto allenando la neuronica che predice l'aumento del prezzo per barra usando questi chip. Ci vuole molto tempo per creare nuovi indicatori, altrimenti il modello non batterà lo spread.

In parte la maggior parte delle mie caratteristiche funziona con la previsione, ma non del prezzo ma del suo livello - io uso il mio ATR, ma quello standard dovrebbe funzionare allo stesso modo.

 
elibrario:

Beh, ce ne sono di più nella realtà - ecco perché è facile da indovinare)

Quindi non importa - la cosa principale è sapere in quali aree c'è un rischio maggiore per il trading, cosa che hanno mostrato.

L'altra cosa è che non ho idea di come trasformare il tutto nello stesso indicatore - è davvero necessario riscrivere tutte le regole che si sono formate o cosa?

 
Aleksey Vyazmikin:

Hmm, pensavo che fosse più importante per la foresta rendere i predittori logici, come sì/no, cosa che ho fatto ed è per questo che ce ne sono così tanti, ma sarebbe molto meno. Proverò a farlo in modo diverso - darò a un predittore 8 valori e vedrò se il risultato cambia.

La foresta è peggiore con caratteristiche rade, ci saranno poche spaccature

E se ci sono molte caratteristiche rade e una di esse non è rada, allora la foresta si sovraadatterà ad essa e le importazioni da essa saranno le più grandi, e le altre avranno pochissimo effetto sul risultato

 
Maxim Dmitrievsky:

Una foresta funziona peggio con caratteristiche rade, ci saranno poche spaccature

Inoltre, se ci sono molte caratteristiche rade e una di esse non è rada, allora la foresta si sovraadatterà su di essa e avrà le maggiori importazioni, e le altre avranno un effetto minimo sul risultato

Foresta normale o foresta casuale, o entrambe?

Ho messo il sonaglio e la R (beh, e glitch il tutto...), e ora non riesco a capire come fare un'impostazione comparabile, come nello screenshot qui sotto? Perché le impostazioni standard di Rattle hanno dato risultati peggiori del programma che usavo prima.


 
Maxim Dmitrievsky:

Una foresta funziona peggio con caratteristiche rade, ci saranno poche spaccature

e se ci sono molti segni sparsi e uno non sparpagliato tra loro, la foresta si adatterà eccessivamente ad esso e avrà le maggiori importazioni, e gli altri avranno pochissimo effetto sul risultato

Le stesse indicazioni, le stesse impostazioni, ma le indicazioni sono collassate, non espanse come prima.

Vecchia variante

Nuova variante

Ho trovato un po' più zeri, ma significativamente meno uno - quasi il doppio! Non pensavo che le variabili collassate ed espanse potessero avere un tale effetto...

 
Aleksey Vyazmikin:

Legni normali o legni casuali, o entrambi?

Ho messo Rattle e R (che glitch è tutta questa cosa...), e ora non riesco a capire come fare impostazioni comparabili, come nello screenshot qui sotto? Perché le impostazioni predefinite di Rattle hanno dato risultati peggiori del programma che stavo usando prima.


foresta normale e foresta casuale e foresta ad albero sono la stessa cosa :) La foresta è un insieme di alberi

sono meno o cosa? sono meno? sono rari e/o categorici come gli uno e gli zero (questo è un alto livello di comprensione)

Non uso R perché sono stato sconsigliato dai guru locali dei loro occhiali dorati.

in ogni caso, finché si disturba, studiare la teoria di ciò che è alberi e ciò che è una foresta di alberi

https://habr.com/post/171759/

https://habr.com/post/116385/

Se vuoi cambiare le impostazioni di Rattle, dovresti portarlo a Sanych, ma non so perché, vuoi solo indulgere, o preoccuparti dell'integrazione dell'EA su mt5 e R

https://www.mql5.com/ru/articles/1165

Энтропия и деревья принятия решений
Энтропия и деревья принятия решений
  • 2011.03.13
  • habr.com
Деревья принятия решений являются удобным инструментом в тех случаях, когда требуется не просто классифицировать данные, но ещё и объяснить почему тот или иной объект отнесён к какому-либо классу. Давайте сначала, для полноты картины, рассмотрим природу энтропии и некоторые её свойства. Затем, на простом примере, увидим каким образом...
 
Vizard_:

Sui vostri dati, file Pred_004_Buy diviso a metà, potete ottenere 0,85 di testa.
I dati sono spazzatura e meglio buttarli via. Il resto lo recuperiamo da soli. In silenzio...

Perché i dati fanno schifo? È un ottimo risultato.