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

 
Dr.Trader:

Sembra complicato e non sono sicuro del risultato, passo.
R ha un pacchetto GMDH ("MGUA" in inglese).

È difficile perché ci sono tutti i tipi di algoritmi ed è facile confondersi.

C'è un pacchetto, ma è "noioso".

Cercherò di spiegare in termini più semplici e brevi...

Un modello combinatorio auto-organizzante non fisico è

una semplice ricerca di tutte le possibili combinazioni di elementi del campione (predittori) e il controllo di ogni iterazione di questa ricerca a OOS poiché i predittori sono polinomi o armoniche, tali combinazioni possono diventare più complicate, quindi andare come se a un nuovo livello e fare combinazioni con combinazioni e di nuovo controllare a OOS e di nuovo a un nuovo livello e così via fino a trovare il minimo errore a OOS, questa è un'essenza di auto-organizzazione (se ho capito tutto correttamente lì)

Cosa propongo....

Sappiamo tutti che qualsiasi funzione può essere decomposta in una serie di Fourier, come in Fig.

ч

È vero anche il contrario: con le giuste combinazioni di armoniche, possiamo ottenere qualsiasi funzione di cui abbiamo bisogno

Ora immaginate che ci sia una funzione (una curva) o un vettore, chiamatelo come volete... che descriva completamente uno strumento di mercato e lo superi... Può essere una stagionalità intelligente espressa in una funzione o dipendenza da altri strumenti, o cicli lunari )) è assolutamente poco importante e noi mortali non lo sappiamo MA possiamo trovare questa dipendenza senza nemmeno sapere dove cercarla ... Chiamiamo questa dipendenza - che guida il mercato - super dipendenza ulteriormente NW

Tutto ciò di cui abbiamo bisogno è

1) prendere una gamma adeguata di armoniche

2) creare un obiettivo

3) iniziare a passare attraverso tutte le combinazioni possibili tra le armoniche e guardare l'OOS.

Capite quanto è semplice e profondo, non sappiamo dove cercare l' SP, ma possiamo generarlo sinteticamente da soli!

Così, sembra essere un semplice algoritmo di sovracampionamento, ma quando l'ho capito, sono rimasto stupito...

Ma c'è un grande MA! Ci saranno trilioni di combinazioni, abbiamo bisogno di un modo per aggirarle, e ho bisogno del vostro aiuto.

forse la genetica è un modo per cercare buone combinazioni?

Che cosa pensa dell'idea e della sua attuazione?

BLEEP!!! ......

 

Quello che stai descrivendo è l'adattamento del risultato a "buono su OOS". In primo luogo, si selezionano i parametri del modello (combinazioni armoniche) tali che ci sia un buon risultato sul campione. Poi si selezionano da essi i parametri che vanno bene per l'oos. Questo è un doppio adattamento di buoni risultati e il modello sarà molto probabilmente inutile su nuovi dati di trading.

Con combinazioni di armoniche si può descrivere il movimento dei prezzi, ma lo stesso si può fare con le neuroniche o la foresta. Credo che l'abbiate già fatto centinaia di volte con la neuronica e non ha funzionato, perché pensate che il risultato della MGUA sarà positivo? Il machine learning nel forex non può essere usato così facilmente come nei problemi convenzionali, il comportamento dei prezzi cambia nel tempo, e la maggior parte delle dipendenze che trovate e utilizzate - cesseranno di esistere molto rapidamente. E tutti questi modelli sono progettati per dipendenze costanti che non cambiano nel tempo, e per questo non fanno profitti in un tale problema.

 
mytarmailS:

È difficile perché ci sono tutti i tipi di algoritmi ed è facile confondersi.

C'è un pacchetto, ma è "noioso".

Cercherò di spiegare in termini più semplici e brevi...

Un modello combinatorio auto-organizzante non fisico è

Semplicemente una semplice ricerca di tutte le possibili combinazioni di elementi del campione (predittori) e controllo di ogni iterazione di questa ricerca all'OOS, poiché i predittori sono polinomi o armoniche tali combinazioni possono diventare più complicate, quindi andare come ad un nuovo livello e fare combinazioni con combinazioni e controllare di nuovo all'OOS e così via, fino a trovare il minimo errore all'OOS, questa è una essenza di auto-organizzazione (se ho capito bene)

Cosa propongo....

Sappiamo tutti che qualsiasi funzione può essere decomposta in una serie di Fourier, come in Fig.

È vero anche il contrario, che con le giuste combinazioni di armoniche, possiamo ottenere qualsiasi funzione di cui abbiamo bisogno

Ora immaginate che ci sia una funzione (una curva) o un vettore, chiamatelo come volete... che descriva completamente uno strumento di mercato e lo superi... Può essere una stagionalità intelligente espressa in una funzione o dipendenza da altri strumenti, o cicli lunari )) è assolutamente poco importante e noi mortali non lo sappiamo MA possiamo trovare questa dipendenza senza nemmeno sapere dove cercarla ... Chiamiamo questa dipendenza - che guida il mercato - super dipendenza ulteriormente NW

Tutto ciò di cui abbiamo bisogno è

1) prendere una gamma adeguata di armoniche

2) creare un obiettivo

3) iniziare a passare attraverso tutte le combinazioni possibili tra le armoniche e guardare l'OOS.

Capite quanto è semplice e profondo, non sappiamo dove cercare l' SP, ma possiamo generarlo sinteticamente da soli!

Così, sembra essere un semplice algoritmo di sovracampionamento, ma quando l'ho capito, sono rimasto stupito...

Ma c'è un grande MA! Ci saranno trilioni di combinazioni, abbiamo bisogno di un modo per aggirarle, e ho bisogno del vostro aiuto.

Forse la genetica è un modo per cercare buone combinazioni?

Qualsiasi pensiero sull'idea e la sua attuazione

Ho implementato una tale idea nel mio indicatore. È molto dispendioso in termini di risorse. Posso regolarla sulla storia di 1000 barre, o posso regolarla sulla storia di 10000 barre. La linea di fondo è la seguente: a volte funziona perfettamente e predice un punto del prezzo. Ma altre volte non è nemmeno vicino. La ragione è che tutti questi periodi iniziano a fluttuare sul mercato dopo il punto di calcolo. Probabilmente è possibile inserire correzioni -+ dai valori attuali, ma non ha funzionato per me.
 
Dr.Trader:

Quello che stai descrivendo è l'adattamento del risultato a "buono su OOS". In primo luogo, si selezionano i parametri del modello (combinazioni armoniche) tali che ci sia un buon risultato sul campione. Poi si selezionano da essi i parametri che vanno bene per l'oos. Questo è un doppio adattamento a un buon risultato, e su nuovi dati di trading il modello sarà molto probabilmente inutile...

Ho dormito con l'idea e l'ho capito da solo, è una cazzata, è solo un montaggio...

Ma ecco la domanda: perché non si adatta a tutto il resto? Sapete, ogni allenamento con OOS è un adattamento per OOS, giusto?

Dr.Trader:

Perché pensa che il risultato del MGUA sarà positivo?

Io stesso non lo capisco ancora del tutto, forse non lo capirò mai...

È solo che nella corrispondenza privata Nikolai mi ha raccomandato di studiare l'analisi spettrale e di familiarizzare con MSUA se vuoi iniziare a fare qualcosa di utile.

Ha detto che lui stesso ha iniziato con questo, e quando ha costruito il suo primo robot funzionante ha usato solo due libri, uno di Ivakhnenk "MSIA" e l'altro di Marple "Spectrum Anal".

la traduzione dei titoli dei libri non è corretta, l'ho solo riassunta per far capire di cosa stiamo parlando in generale.

Chi è Nicholas? Oltre ad essere un uomo umile e molto intelligente.

Ha un dottorato in intelligenza artificiale, costruisce robot da circa 20 anni, i suoi ultimi robot hanno questo aspetto:

я

Quindi stava facendo girare queste reti circa 30 anni fa, in un momento in cui non conoscevamo ancora parole come "rete neurale" ......

E ora quest'uomo raccomanda solo due cose Fourier e Mgua, il buon senso dice che vale la pena di ascoltare... Ecco alcune delle mie ragioni per cui dovrebbe funzionare))

 
Maxim Romanov:
Questo è più o meno il punto che facevo nell'indicatore. È molto dispendioso in termini di risorse. Posso regolarla sulla storia di 1000 barre, o sulla storia di 10000. La linea di fondo è la seguente: a volte funziona perfettamente e predice un punto del prezzo. Ma altre volte non è nemmeno vicino. La ragione è che tutti questi periodi iniziano a fluttuare sul mercato dopo il punto di calcolo. Probabilmente è possibile inserire correzioni -+ dai valori attuali, ma non l'ho capito.
Capisco, adatto come adatto)) sono d'accordo con il fatto che mi sono sbagliato...
 

domanda

c'è un vettore "x" e una matrice "y"

abbiamo bisogno di calcolare rapidamente la distanza euclidea tra "x" e ogni linea della matrice "y"

Ho superato la funzione standard "dist()" e ho scritto la mia funzione

штатная

system.time(for(i in 1:nrow(m)) {dist.ve[i] <- dist(rbind(x,m[i,]))})

   user  system elapsed
   4.38    0.00    4.39

самописная

system.time(for(i in 1:nrow(m)) {dist.ve[i] <- euc.dist(x,m[i,])})
   user  system elapsed
   0.65    0.00    0.67

ma questo non è sufficiente, vorrei accelerare al secondo zero 0.0....

cos'altro si può fare?

codice:

x <- rnorm(10)
m <- matrix(data = rnorm(1000000),ncol = 10)

euc.dist <- function(x1, x2) sqrt(sum((x1 - x2) ^ 2))

dist.ve <- rep(0,nrow(m)) # distance vector
system.time(for(i in 1:nrow(m)) {dist.ve[i] <- dist(rbind(x,m[i,]))})
system.time(for(i in 1:nrow(m)) {dist.ve[i] <- euc.dist(x,m[i,])})
 
mytarmailS:

Ma ecco la domanda: perché allora non si adatta tutto il resto? Perché poi si scopre che qualsiasi formazione con test OOS è adatta a OOS, giusto? se no, perché no?

La convalida incrociata e il test oos su dati stazionari (che hanno dipendenze costanti e immutabili) è utile. Sui dati non stazionari, è inutile.

Potete, per esempio, addestrare un mucchio di modelli usando lo stesso algoritmo, ma su dati di tempi diversi; per ogni modello trovate i profitti su campione e oos e trovate la correlazione per questi due profitti. Per i modelli comunemente conosciuti nel forex, di solito non c'è questa correlazione, cioè il profitto sul campione non garantisce nulla, nel qual caso è inutile fare la crossvalidazione per cercare di migliorare i risultati sui nuovi dati.
D'altra parte, se la correlazione è alta e positiva, allora il modello ha un certo potenziale e si può tranquillamente fare la crossvalidazione per aggiustare i parametri del modello e migliorare i risultati.

 

Ecco un esempio per il post precedente. Prendiamo i prezzi aperti di eurusd per un paio di mesi, addestriamo un modello (randomForest) su di essi, e li usiamo per prevedere su un piccolo periodo di tempo nuovi dati. Il valore target è l'incremento di prezzo per la prossima barra (due classi 0 e 1). Tutto questo viene ripetuto 1000 volte per diversi intervalli di tempo, poi si trova la correlazione.

Alla fine vediamo la correlazione dei risultati sull'allenamento e sui nuovi dati, in questo caso abbiamo ottenuto circa 0,1, cioè qualcosa dovrebbe essere cambiato nell'allenamento, questo approccio non porterà profitto. Un buon risultato sui dati di allenamento non garantisce un buon risultato in futuro.

La funzione TrainModel può essere usata per addestrare i vostri modelli, fare la validazione incrociata, l'abbinamento genetico, ecc.

File:
 
Dr.Trader:

Ecco un esempio per il post precedente. Prendiamo i prezzi aperti di eurusd per un paio di mesi, addestriamo un modello (randomForest) su di essi, e li usiamo per prevedere su un piccolo periodo di tempo nuovi dati. Il valore target è l'incremento di prezzo per la prossima barra (due classi 0 e 1). Tutto questo viene ripetuto 1000 volte per diversi intervalli di tempo, poi si trova la correlazione.

Alla fine vediamo la correlazione dei risultati sull'allenamento e sui nuovi dati, in questo caso abbiamo ottenuto circa 0,1, cioè qualcosa dovrebbe essere cambiato nell'allenamento, questo approccio non porterà profitto. Un buon risultato sui dati di allenamento non garantisce un buon risultato in futuro.

Potete usare la funzione TrainModel per addestrare i vostri modelli, fare la validazione incrociata, l'abbinamento genetico, ecc.

1. Perché normalizzi manualmente?

2. Perché sulla correlazione -1 e 1 è buono? solo se 1 è buono -1 è molto cattivo, se ho capito bene l'idea, -1 è la correlazione inversa

3. Avete provato a monitorare l'errore di un modello addestrato in una finestra scorrevole, e se non vi soddisfa, riaddestrate il modello e vedete cosa succede?

4. E l'idea globale del perché tutto funziona così male, il mercato non è stazionario, è necessario elaborare qualche altro concetto di formazione delle caratteristiche, forse passare completamente al paradigma delle regole logiche, penso che è necessario allontanarsi dai numeri quasi completamente, o studiare l'analisi dello spettro)))))

 

Ieri ho rovistato tra le borse alla ricerca di quella giusta per finire un'idea, non ho trovato quella giusta, ma ne ho trovata una interessante...

Si chiama "tendenza".

https://cran.r-project.org/web/packages/trend/trend.pdf

Il pacchetto implementa vari test di tendenza e altre cose

per esempio, la funzione

mk.test() - dà le caratteristiche di una tendenza, ad esempio su o giù, ecc...

pettitt.test() - come ho capito, trova il punto nel vettore in cui la tendenza è iniziata

Sens.slope() - con questa funzione, si possono calcolare gli angoli di pendenza della tendenza

e un sacco di altre caratteristiche speciali

Penso che, finché si può osservare scientificamente la tendenza, si dovrebbe controllare) Ho calcolato mk.test()$Zg in una finestra scorrevole di 200 valori, secondo clowes, ed è risultato essere qualcosa come un indicatore

Sopra lo zero tende al rialzo, sotto lo zero tende al ribasso.

й

Cattura le tendenze e non confonde la direzione dei prezzi come macd-ki e stochastc-ki.... In generale, mi piace il fatto che aprono sempre posizioni nella direzione della tendenza...

Per alcuni periodi si guadagna anche bene,

с

Se prendo chrono, non M5, allora forse sarà qualcosa di utile.

Karoch cosa propongo, qualcuno che ha un computer potente e il tempo di contare tutte queste prove per la tendenza, pendenze, angoli, ecc e alimentare il MO, forse che funzionerà, solo ora ho un computer in esecuzione a piena velocità, in esecuzione per elaborare, finire il conteggio in quattro giorni e il computer portatile su cui mi siedo ora, può solo guardare siti)

Motivazione: