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

 
Ildottor Trader:

Il modo migliore per farlo è quello di utilizzare una foresta, questo modello creerà un tale insieme di regole:


1: DeltaLess350 <= 0,5
2: ZZ_D <= 0
Decisione 0

1: DeltaLess350 <= 0,5
2: ZZ_D > 0
3: DeltaMore350 <= 0,5
Decisione 0

1: DeltaLess350 <= 0,5
2: ZZ_D > 0
3: DeltaMore350 > 0,5
Decisione 1

DeltaLess350 > 0,5
Decisione 1


L'articolo descrive come farlo in R:
https://www.mql5.com/ru/articles/1165

Nella scheda "Modello" seleziona la foresta, imposta il numero di alberi nelle impostazioni = 1, crea un modello e poi clicca sul pulsante Regole, vedrai questa lista di regole

Grazie per la risposta, forse sto leggendo male, ma sembra che il modello non sia corretto dalla formula di excel per la prima (e successive righe) della riga con i dati "= IF(AND(B2=1;D2=1);AND(C2=1;D2=1));1;0)".

Cioè è meglio usare l'impalcatura per una logica chiara? Come per l'estrazione delle caratteristiche, giusto?

Grazie per l'articolo - lo studierò di nuovo - ricordo di averlo letto molto tempo fa, ma ora ho un po' più di conoscenza, forse sarà più chiaro.

Aggiunto: L'immagine è interessante, ma chiaramente la logica non è indovinata... o lo è?
 

Ho riscritto un po' il post, usando un albero invece di una foresta, così è più comodo. La formula sembra diversa in entrambi i casi, ma la risposta è ancora corretta.

Se la risposta può essere trovata dalla giusta combinazione di valori nei dati di input, allora la foresta funziona bene, sì. Tutti i tipi di operazioni come l'addizione e la moltiplicazione non funzionano nella foresta.

 
Aleksey Vyazmikin:

sembra che il modello non sia corretto da excel tale formula per la prima riga (e righe successive) con dati "=If(OR(AND(B2=1;D2=1));AND(C2=1;D2=1));1;0)"

Non lo so. Controllato in excel - la formula della foresta era sbagliata solo un paio di volte. La formula dell'albero ha coinciso in tutti i casi.

 
Ildottor Trader:

Ho riscritto un po' il post, usando un albero invece di una foresta, così è più comodo. La formula sembra diversa in entrambi i casi, ma la risposta è ancora corretta.

Se la risposta può essere trovata dalla giusta combinazione di valori nei dati di input, allora la foresta funziona bene, sì. Tutti i tipi di operazioni come l'addizione e la moltiplicazione non funzionano.

Bene, ora ha ottenuto il suo risultato, ma c'è un modo per ridurre le condizioni a una linea, o funzione, in modo da poterle applicare nel codice il prima possibile? O devo descrivere io stesso ogni giro logico, e allo stesso tempo non fare un errore di interpretazione del risultato? Solo se l'insieme dei valori in arrivo è misurato in decine, è un processo che richiede molto tempo...

 
Ildottor Trader:

Non lo so. Ho controllato in Excel - la formula della foresta era sbagliata solo un paio di volte. La formula dell'albero corrispondeva in tutti i casi.

Sì, la formula dell'albero è andata per esclusione, a giudicare dal codice, che si è rivelata la soluzione giusta.

 

È ancora più semplice, non c'è bisogno di preoccuparsi di formule, dopo l'addestramento si ottiene un normale modello R con il quale è possibile fare previsioni su nuovi dati.

Tutta la predizione è fatta con una funzione

predict(model, newdata)

modello - questo è un modello creato in precedenza (albero, foresta, neurone, ecc, in R ci sono centinaia di modelli diversi). newdata è una tabella con nuovi dati per la predizione

 
Ildottor Trader:

È ancora più semplice, non c'è bisogno di preoccuparsi di formule, dopo l'addestramento si ottiene un normale modello R con il quale è possibile fare previsioni su nuovi dati.

Tutta la predizione è fatta con una funzione

modello - questo è un modello creato in precedenza (albero, foresta, neurone, ecc., in R ci sono centinaia di modelli diversi). newdata - tabella con nuovi dati per la predizione

È interessante, ma non è ancora chiaro - non ho lavorato con R prima... Dovrei farlo io, in modo da arrivare in fondo alla questione.

Ecco un'altra domanda, se i dati di input hanno dati errati, che sono puramente casuali, la foresta/albero sarà in grado di rilevarli? È possibile organizzare la disabilitazione automatica colonna per colonna dei dati di input in termini di enumerazione, inclusa la ricerca di dati mancini per escluderli?

 

La foresta più comune troverà semplicemente un insieme minimo di dati con cui definire un obiettivo. Ma non analizzerà il rumore e gli errori, anche usandoli se aiutano a migliorare la precisione della previsione. Ecco perché, per esempio, non possiamo semplicemente prendere un mucchio di indicatori forex e cercare di prevedere le tendenze.

Ci sono diverse modifiche avanzate della foresta, hanno tentativi di eliminare il rumore e gli errori e tutto quello che hai scritto. I pacchetti gbm, xgboost in R per esempio. Funzionano bene nel loro insieme, ma sono deboli per il forex, avete bisogno di altri trucchi.

 
Aleksey Vyazmikin:

Puoi dirmi quale algoritmo di rete neurale può essere usato per capire la logica (neurone) della colonna "Calc"? consiglio numero uno: se puoi fare a meno del machine learning, allora fallo :)

1: decidete la dimensione del campione, il vostro campione è molto piccolo

2. vai per modelli di classificazione/regressione semplici (lineari), probabilmente funzioneranno per te, se ottieni un grande errore puoi provare ad andare per quelli più complessi (non lineari). sono disponibili nella libreria alglib (alberi di decisione e foresta sono anche disponibili).

3) Non accettare mai nessun consiglio, soprattutto sull'uso di R :))) È ora di bandirli da questo forum.

4. Se il problema è risolvibile senza l'apprendimento automatico, è meglio non usarlo.

 
Ildottor Trader:

La foresta più comune troverà semplicemente un insieme minimo di dati con cui definire un obiettivo. Ma non analizzerà il rumore e gli errori, anche usandoli se aiutano a migliorare la precisione della previsione. Ecco perché, per esempio, non possiamo semplicemente prendere un mucchio di indicatori forex e cercare di prevedere le tendenze.

Ci sono diverse modifiche avanzate della foresta, hanno tentativi di eliminare il rumore e gli errori e tutto quello che hai scritto. I pacchetti gbm, xgboost in R per esempio. Funzionano bene nel loro insieme, ma sono deboli per il forex, avete bisogno di altri trucchi qui.

Non voglio dare valori di indicatori, il mio obiettivo è quello di dare un osservazioni logicamente descritte (può essere notizie e rapporti di diversi indicatori nello spazio relativo a vicenda - in generale io uso nel trading reale per prendere decisioni), precedentemente costruito sulla base di questi indicatori, e cercare di eliminare falsi, cioè i dati di input saranno 0 e 1, o leggermente più cifre su un ingresso (qui la domanda, se voglio guardare l'influenza dei giorni feriali, allora farei meglio diverse coppie di ingresso

E qualcuno ha mai fatto un confronto tra diversi algoritmi per l'efficienza, beh, se la risposta è nota, come nel mio esempio, ma per compiti più complessi?

Motivazione: