Discussione sull’articolo "Le foreste casuali prevedono le tendenze"

 

Il nuovo articolo Le foreste casuali prevedono le tendenze è stato pubblicato:

Questo articolo considera l'utilizzo del pacchetto Rattle per la ricerca automatica di modelli per prevedere le posizioni lunghe e corte di coppie di valute sul Forex. Questo articolo può essere utile sia per i trader principianti che per quelli esperti.

I modelli predittivi del tipo di regressione vengono utilizzati per calcolare un valore in futuro. Quando arriverà questo futuro, avremo il valore fattuale con cui confrontare quello previsto.

I modelli predittivi del tipo ‘classificazione’ vengono utilizzati per calcolare la classe a cui sarà affiliata una popolazione di dati sorgente ricevuta al momento della previsione. Due classi "lungo" e "corto" saranno come tali. Come in qualsiasi altro modello di tipo qualifica, queste due classi non hanno una dimensione specifica. Quindi, la classe "lunga" non può essere paragonata a quella "corta". Sebbene codificheremo "long" come "1" e "short" come "0" per comodità, ciò non significa che "long" sia maggiore di "short". Per sottolineare questo, per tali variabili qualitative R e di conseguenza Rattle, esse presentano un tipo specializzato di variabili categoriali (nominali).

Non esistono posizioni lunghe e corte come variabili target e questa è la principale differenza rispetto alle variabili indipendenti descritte di seguito. Questo aspetto concorda con il fatto che stiamo per predire un futuro che non esiste nel momento presente. Possiamo ben tracciare le tendenze sui dati storici poiché conosciamo il futuro in relazione al passato.

Per distinguere le tendenze sui dati storici, utilizzeremo ZigZag. Questo è un indicatore utilissimo per i dati storici e inutile per i dati reali poiché l'ultimo collegamento e talvolta il precedente vengono ridisegnati. Poiché non ci sono dinamiche sui dati storici, possiamo disegnare tendenze molto belle con questo indicatore.

Per il calcolo della variabile target è stato utilizzato l'indicatore ZigZag con un parametro “distanza tra punti di inversione” pari a 0,0035 dollari. La Fig. 1 mostra il risultato.

Fig. 1. L'indicatore ZigZag

Fig. 1. L'indicatore ZigZag

Autore: СанСаныч Фоменко

 

Il primo pensiero che mi è venuto in mente leggendo l'articolo è stato "che traduzione scadente".

Ho cercato il luogo di provenienza dell'autore e si è scoperto che non si trattava di una traduzione, dopotutto)))

В качестве инструмента для предсказания поведения валютных пар выберем систему R, которая идеально подходит для задач предсказания на финансовых рынках и, в частности, предсказания поведения валютных пар.

Non volevo dire nulla di male, solo pensieri all'orecchio. L'articolo può essere buono, può essere molto buono......

 

Interessato all'idea in sé (non conoscevo la foresta casuale ). Strumento imposto artificialmente. Voglio ripetere senza di esso - non è chiaramente indicato cosa è stato fatto esattamente, quali vettori di dati sono stati utilizzati. I parametri di Zigzag sono omessi. Il target è costituito dagli utenti del pacchetto Rattle? O coloro che scrivono in R? Senza il loro studio molti punti dell'articolo sono incomprensibili. Le conclusioni sono sconclusionate: dall'articolo non si capisce se questa direzione sia promettente o meno. Sarebbe possibile fornire esempi di commercio. Impressione generale - come se fosse stato scritto per una cerchia ristretta.

PS. Quando si cerca di aprire TC.Rdata dall'articolo, appare quanto segue:

Ошибка в sqrt(ncol(crs$dataset)) : 
  нечисловой аргумент для математической функции
Вдобавок: Предупреждение
In rm(crs) : объект 'crs' не найден
 
wmlab:
Interessato all'idea in sé (non conoscevo la foresta casuale). Strumento imposto artificialmente. Voglio ripetere senza di esso - non è chiaramente indicato cosa è stato fatto esattamente, quali vettori di dati sono stati utilizzati. I parametri di Zigzag sono omessi. Il target è costituito dagli utenti del pacchetto Rattle? O coloro che scrivono in R? Senza il loro studio molti punti dell'articolo sono incomprensibili. Le conclusioni sono sconclusionate: dall'articolo non si capisce se questa direzione sia promettente o meno. Sarebbe possibile fornire esempi di commercio. L'impressione generale è che sia stato scritto per una cerchia ristretta.

Qualcosa di molto esigente. Io, per esempio, non essendo un matematico, ho capito abbastanza bene l'essenza, tranne per alcuni punti che avrebbero dovuto essere spiegati in modo più dettagliato.Per esempio, non ho capito bene il termine "tree splitting", che ricorre più volte e non è ben chiaro cosa si intenda esattamente. E per quanto riguarda le conclusioni, di quali conclusioni hai bisogno? "Andate! alle barricate"? Io, per esempio, dopo averlo letto, mi sono reso conto che stavo inventando una bicicletta, cercando di inventare io stesso algoritmi simili invece di usare una soluzione già pronta.A quanto ho capito, l'idea principale era quella di rendere popolare il pacchetto R tra i dilettanti interessati alla statistica (ma non per i "dummies"). Ed è andata abbastanza bene, secondo me.

 
wmlab:

Interessato all'idea in sé (non conoscevo la foresta casuale). Strumento imposto artificialmente. Voglio ripetere senza di esso - non è chiaramente indicato cosa è stato fatto esattamente, quali vettori di dati sono stati utilizzati. I parametri di Zigzag sono omessi. Il target è costituito dagli utenti del pacchetto Rattle? O coloro che scrivono in R? Senza il loro studio molti punti dell'articolo sono incomprensibili. Le conclusioni sono sconclusionate: dall'articolo non si capisce se questa direzione sia promettente o meno. Sarebbe possibile fornire esempi di commercio. Impressione generale - come se fosse stato scritto per una cerchia ristretta.

PS. E quando si cerca di aprire TC.Rdata dall'articolo viene dato quanto segue:

Destinatari - utenti del pacchetto Rattle? O quelli che scrivono in linguaggio R? Senza studiarli, molti punti dell'articolo sono incomprensibili.

Quando utilizzo Rattle, identifico due destinatari:

Utenti non esperti di R che possono comporre il proprio file .csv di input e creare e valutare i risultati di 6 modelli, non solo di foreste casuali. Il problema principale non è il modello, ma i dati di input del modello. Se si riesce a trovare i dati iniziali, allora si può ordinare la programmazione. La cosa principale è l'idea, e le tecniche di programmazione possono anche essere applicate.

PS. E quando si tenta di aprire TC.Rdata dall'articolo dà il seguente:

Ricontrollato, tutto è normale. la sequenza di azione è la seguente:

  • avviare R
  • scheda {File/Carica spazio di lavoro
  • quindi cercare il file TC.RData dall'archivio scompattato.
  • Avviare R
  • scheda Dataset
  • nel menu a discesa cercare il nome TC nella finestra Nome dati.
  • Fare clic su "Esegui".

Otteniamo l'elenco dei vettori che ci interessano.

Un altro pubblico è quello degli utenti esperti. Rattle è uno strumento piuttosto comodo per la selezione dei dati iniziali del modello. La maggior parte del tempo nella costruzione di sistemi di trading è dedicata alla selezione dei dati iniziali, la parte più incerta del lavoro. È qui che Rattle è molto utile. È possibile ottenere una stima finale molto rapidamente, senza dover ricorrere a costruzioni di modelli matematici molto complessi.

Buona fortuna, pronti a continuare le spiegazioni

 
meat:

Sei solo un po' pignolo. Io, per esempio, non essendo un matematico, ho capito abbastanza bene l'essenza, tranne che per alcuni punti che avrebbero dovuto essere spiegati più dettagliatamente.Per esempio, non ho capito bene il termine "tree splitting", che ricorre più volte e non è ben chiaro cosa si intenda esattamente. E per quanto riguarda le conclusioni, di quali conclusioni hai bisogno? "Andate! alle barricate"? Io, per esempio, dopo averlo letto, mi sono reso conto che stavo inventando una bicicletta, cercando di inventare io stesso algoritmi simili invece di usare una soluzione già pronta.A quanto ho capito, l'idea principale era quella di diffondere il pacchetto R tra i dilettanti interessati alla statistica (ma non per i "dummies"). Ed è andata abbastanza bene, secondo me.

Ad esempio, non ho capito bene il termine "tree splitting" (suddivisione dell'albero).

Prendiamo la radice dell'albero, che si trova in cima.

Dividiamo la radice e tracciamo due linee dalla radice - divisione della radice, poi la stessa azione ad ogni livello.

In ogni nodo dell'albero viene verificata una condizione formulata dall'algoritmo. Ad esempio, se eurusd > 1,35, allora si procede lungo il ramo di sinistra, altrimenti si procede lungo quello di destra.

L'algoritmo ha generato eccessivamente 500 alberi di questo tipo. Le condizioni dovrebbero essere 10000.

Successivamente. All'arrivo dei valori di tutti i predittori - un valore per ogni predittatore - ho 88 pezzi in totale, vengono confrontati con gli alberi e viene presa la decisione che questo particolare insieme di 88 valori comporta long o short. Cioè un analogo di un modello, solo molto simile.

 
faa1947:

Ho ricontrollato, è tutto a posto. La sequenza è la seguente:

  • Eseguire R
  • scheda file/carica spazio di lavoro
  • quindi cercare il file TC.RData dall'archivio scompattato.
  • Avviare Rattle
  • scheda Dataset
  • nel menu a discesa cercare il nome TC nella finestra Nome dati.
  • Fare clic su "Esegui".

Otterremo l'elenco dei vettori che vi interessano.

Grazie! Ora è tutto chiaro.

Potreste spiegare l'essenza di questi vettori: ZZ.75, ZZ.35?
Cosa sono i vettori *.dif1, *.dif2, *.dif3? Incrementi? Di cosa rispetto a cosa?
Vettori eur, gbp, ecc. - cosa sono?

E una domanda globale: perché vengono aggiunti i dati degli indicatori? Non è la stessa cosa di [x, f1(x), f2(x)]? Sto accennando alla ridondanza. Non avete provato a fornire solo gli incrementi delle chiusure?

Grazie in anticipo per le vostre risposte.

 
wmlab:

Grazie! Ora è chiaro.

Potresti spiegare l'essenza di questi vettori: ZZ.75, ZZ.35?
Cosa sono i vettori *.dif1, *.dif2, *.dif3? Incrementi? Di cosa rispetto a cosa?
Vettori eur, gbp, ecc. - cosa sono?

E una domanda globale: perché aggiungere dati dagli indicatori? Non è la stessa cosa di [x, f1(x), f2(x)]? Sto accennando alla ridondanza. Non avete provato a fornire solo gli incrementi delle chiusure?

Grazie in anticipo per le risposte.

Potreste spiegare l'essenza di questi vettori: ZZ.75, ZZ.35?

Si tratta di ZZ con una distanza minima di inversione di 75 e 35 pip. La variabile target TREND si ottiene da ZZ.35. Queste variabili non possono essere utilizzate nel modello - guardando al futuro.

Cosa sono i vettori *.dif1, *.dif2, *.dif3? Incrementi? Di cosa rispetto a cosa?

L'incremento rispetto alla barra precedente, alla barra precedente (-2) e (-3). L'idea è di tenere conto delle tendenze.

Vettori eur, gbp, ecc. - cosa sono?

I quozienti eurusd, gbpusd sono i primi simboli.

Sto accennando alla ridondanza. Hai provato a inserire solo gli incrementi delle chiusure?

Ho provato molte cose. L'articolo è una dimostrazione delle possibilità e allo stesso tempo della ridondanza, in modo che ognuno possa selezionare le proprie idee e provare. La selezione avviene in modo molto semplice: la variabile viene contrassegnata come Ignora.

 

Complimenti per l'articolo SanSanych!

Naturalmente su R sarebbe più compatto, ma probabilmente dovremmo iniziare prima da lì.

Sto finendo l'articolo sull'apprendimento "profondo". Con i tuoi dati proveremo a confrontare i risultati.

Buona fortuna

 

Ho dato un'occhiata al set di dati e non va bene. Le virgolette devono essere scartate. Cioè, le prime 48 variabili vengono rimosse. Rimane un set di dati con 42 variabili di input e una variabile di destinazione.

Beh, dipende dal proprietario, ognuno sceglie in base ai propri gusti, alla propria esperienza, ecc. Ma c'è un'osservazione sul modello. "RandomForest è meraviglioso perché non ha bisogno di preelaborazione, non ne ha affatto bisogno. Accetta meravigliosamente i dati grezzi.

Per il resto, naturalmente, l'articolo è molto utile.

 
vlad1949:

Complimenti per l'articolo SanSanych!

Naturalmente su R sarebbe più compatto, ma probabilmente dovremmo iniziare prima da lì.

Sto finendo l'articolo sull'apprendimento "profondo". Con i tuoi dati proveremo a confrontare i risultati.

Buona fortuna

Sarebbe molto utile ripetere questo tuo thread qui.

È stato un materiale molto utile.