L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 881
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
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.
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.
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.
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)
> 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.
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...
> 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.
> 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...
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.
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?
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
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.
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...
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
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.