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

 
mytarmailS #:
Mi ricordo, ma è un errore di adattamento, voglio dire, il campionamento delle tracce...
Qual è l'errore della prossima candela, il test.

È l'errore delle 300 barre successive. I predittori sono stati generati su ogni barra, poi filtrati, il modello è stato addestrato e la barra successiva è stata prevista.

 
Maxim Dmitrievsky #:
Beh, ha senso, perché spesso i modelli non vivono a lungo. Ma vorrei trovare opzioni che non richiedano un costante retraining, almeno nell'intervallo di un anno o più, con un lento degrado del modello, che sia facile da tracciare
.

Non sono d'accordo.

Il mercato cambia e gli intervalli di tempo del cambiamento sono diversi e indipendenti l'uno dall'altro.

Un tempo ero in grado di scrivere EA che vivevano da 3 a 6 mesi. Li ottimizzavo nei fine settimana. Poi morivano, e per un breve periodo abbastanza da prosciugare il deposito. Ma non abbastanza tempo per l'ottimizzazione. Alla fine la situazione era ancora peggiore: dopo qualche tempo si scoprì che esisteva un limite, allontanandosi dal quale era impossibile selezionare i parametri.

I periodi di cambiamento del mercato sono più lunghi: 5-7 anni. Ma il risultato è lo stesso dei periodi mensili. Il bot muore per sempre. Invierò un bot specifico del mercato in un messaggio privato - qui non è possibile.

Quindi l'idea di "fuori campione" è una sciocchezza. Un bot ha ancora una vita, non sappiamo quanto lunga: 3 mesi o 7 anni. Quando il bot muore, lo confondiamo con un altro drawdown e perdiamo il nostro deposito.

L'ideale sarebbe riqualificarlo sulla candela successiva. Se lavoriamo sui tick, allora sul tick successivo, sull'H1 poi sull'arrivo dell'ora successiva.

 
Valeriy Yastremskiy #:

Non discuto il fatto che ci si possa allenare su ogni sbarra, e magari anche su una sbarra non stazionaria, ad esempio. Non capisco completamente la struttura dell'allenamento. La logica EA è un allenamento separato o fa parte dell'allenamento su ogni barra? È come le code della prima formazione, quante code o fasi di formazione?

Su ogni barra tutto è nuovo

 
Maxim Dmitrievsky #:

Esistono modelli più legnosi per l'inferenza causale, ma non ho ancora avuto il tempo di scoprirli.

dalla pratica, molte interpretazioni:

- l'ambiente influenza il soggetto (quando tutto è correlato in condizioni di laboratorio, in condizioni naturali appaiono altre dipendenze non considerate - la più banale è il fattore umano o l'effetto di affollamento) - RL è migliore di ML, ma è anche necessario modellare e non tutto può essere preso in considerazione....
- quando si tratta di 2 valori correlati si può solo fare un'inferenza su cosa dipende da cosa, non viceversa (risultato su fattore o fattore su risultato)
- mediazione, moderazione, interazione, dipendenze che interferiscono nel processo (spesso non rintracciabili nemmeno sperimentalmente)
- in generale, è importante pianificare un esperimento (è utile poter disegnare grafici di dipendenze, proprio logiche, teoriche) per pianificare un esperimento, i cui risultati possono essere elaborati da ML o anche più semplicemente .......
cioè in quale sequenza e quali fattori fissare per ottenere una distribuzione condizionale sul fattore indagato, o l'influenza congiunta di 2 fattori indagati, per confrontare i risultati ottenuti con la distribuzione incondizionata - per avanzare un'ipotesi "meglio - non meglio", "influenza - non_influenza", per confermare o confutare statisticamente, per trasferire i test sul campo.... e si ottiene una nuova inferenza causale).

e in ML RF - non so come facciano a elaborare le matrici di correlazione - (soprattutto il punto 2 è discutibile).

Molte persone criticano i modelli probabilistici proprio a causa del punto 2 e iniziano a esaltare l'inferenza causale, sostenendo di aver tenuto conto dell'influenza di altri fattori.... ma algoritmicamente come la questione (! un'altra parola sinonimo di ragionamento) venga risolta dall'apparato della VM non è noto (almeno a me) - direi "nulla".

Per me l'inferenza causale è essenzialmente un ragionamento, e lo studio della mediazione, della moderazione, dell'interazione è un grande argomento separato e una questione di gusto (cioè di abbozzare questo o quel grafico costruito logicamente) - anche una sorta di Design (esperimento).

Con un'impostazione ragionevole dell'esperimento, un'analisi OLS o ANOVA sarà sufficiente (ma non sarà necessario individuare con certezza le fiches).

?? ... quindi non conosco l'algoritmo di attribuzione di una caratteristica ad un fattore o ad un risultato (con modelli di legno o altro), se non per logica e conoscenza teorica .... ma al giorno d'oggi abbiamo ogni sorta di cose che vengono pubblicizzate con altre parole -- non so in quale contesto tu abbia incontrato l'inferenza causale

 
JeeyCi #:

dalla pratica, molte interpretazioni:
- l'ambiente influenza la persona che esegue il test (quando tutto è correlato in condizioni di laboratorio, in condizioni naturali compaiono altre dipendenze non contabilizzate - la più banale - fattore umano o effetto di affollamento) - RL è migliore di ML, ma è anche necessario modellare e non tutto può essere preso in considerazione....
- quando si tratta di 2 valori correlati si può solo fare un'inferenza su cosa dipende da cosa, ma non viceversa (risultato su fattore o fattore su risultato)
- mediazione, moderazione, interazione, dipendenze che interferiscono nel processo (spesso non rintracciabili nemmeno sperimentalmente)
- in generale, è importante pianificare un esperimento (è utile poter disegnare grafici di dipendenze, proprio logici, teorici) per pianificare un esperimento, i cui risultati possono essere elaborati da ML....
cioè in quale sequenza e quali fattori fissare per ottenere una distribuzione condizionale per il fattore indagato, o l'influenza congiunta di 2 fattori indagati, per confrontare i risultati ottenuti con la distribuzione incondizionata - per avanzare un'ipotesi "meglio - non meglio", per confermare o confutare statisticamente, per trasferire i test sul campo ... e imbattersi in una nuova inferenza causale)

e in ML RF - non so come facciano, a elaborare matrici di correlazione - (soprattutto il punto 2 è discutibile).

Molte persone criticano i modelli probabilistici proprio a causa del punto 2 e iniziano a esaltare l'inferenza causale, sostenendo di aver tenuto conto dell'influenza di altri fattori.... ma algoritmicamente come la questione (! un'altra parola sinonimo di ragionamento) sia risolta dall'apparato della VM non è noto (almeno a me) - direi "nulla".

Per me l'inferenza causale è essenzialmente ragionamento, e lo studio della mediazione, della moderazione, dell'interazione è un grande argomento separato e una questione di gusto (cioè di abbozzare un grafico costruito logicamente) - anche una sorta di Design (esperimento).

avendo solo 1 BP sul mercato, non è possibile testare realmente un'ipotesi sulle dipendenze... e con una sperimentazione ragionevole un OLS o un LDA sarà sufficiente (ma non sarà necessario allocare le caratteristiche con certezza).

?? ... quindi non conosco l'algoritmo di attribuzione di una caratteristica ad un fattore o ad un risultato (tramite modelli di legno o altro), se non per logica e conoscenza teorica..... ma al giorno d'oggi abbiamo ogni sorta di cose che vengono pubblicizzate con altre parole -- non so in quale contesto tu abbia incontrato l'inferenza causale

Ho visto alcune pubblicità di Uber che dicevano di aver migliorato i loro processi.

e l'interpretazione generale che correlazione = causalità e cercare di risolverla in modi diversi, a partire da A/B, ma non ne sono sicuro.

Hanno delle definizioni strane, non si può capire senza una bottiglia, bisogna riempirsi la testa di parole inutili.

Causal Inference from Observational Data, или как провести А/В-тест без А/В-теста.
Causal Inference from Observational Data, или как провести А/В-тест без А/В-теста.
  • Stats&Data ninja
  • koch-kir.medium.com
Привет дата-ниндзя👋! Первый вопрос, который ты задашь — зачем вообще это нужно ❗️❓ Предположим, ты исследуешь причинно-следственную связь между двумя величинами (Y зависит от X). И тогда, изменяя X, мы можем быть уверены что изменяем Y, причем уверены мы не только в самом факте изменения, но и в его направлении и величине (magnitude). Конечно...
 
mytarmailS #:

A proposito, mi chiedo come funzioneranno gli altri modelli, se saranno in grado di creare la funzione mach() senza errore

Ho addestrato brevemente diversi modelli senza alcuna messa a punto del GP

1 0.002392       форест
3 0.005348 екстр. буст.
4 0.024160     нейронка
2 0.037200         МГУА

conclusione: i modelli non sono in grado di creare la funzione, ma solo di approssimarla con una certa precisione, quindi la creazione di caratteristiche e la selezione delle caratteristiche sono ancora importanti.

set.seed(125)
dat <- round(rnorm(100000),2)
X <- matrix(dat,ncol = 5)
Y <- apply(X,1,max)
colnames(X) <- paste0("x",1:5)

tr <- 1:19950
ts <- 19951:20000

#///////////////

library(randomForest)
rf <- randomForest(Y[tr]~.,X[tr,],ntree=100)
pr <- predict(rf,X[ts,])

cb <- round(  cbind(pred=pr,actual=Y[ts])  ,2)
matplot(cb,t="l",col=c(1,2),lty=1,lwd=c(3,1),main="RF regresion")
rf_MSE <- mean((cb[,1] - cb[,2])^2)  #  rf MSE 0.002392

#///////////////

library(GMDHreg)
gmdh <- gmdh.mia(X = X[1:10000,],
                 y = Y[1:10000],
                 x.test = X[10000:19951,] ,
                 y.test = Y[10000:19951], prune = 25,criteria = "test")
pr <- predict(gmdh,X[ts,])

cb <- round(  cbind(pred=pr,actual=Y[ts])  ,2)
matplot(cb,t="l",col=c(1,2),lty=1,lwd=c(3,1),main="gmdh regresion")
gmdh_MSE <- mean((cb[,1] - cb[,2])^2)  #  gmdh MSE 0.038692

#///////////////

library(xgboost)
xgb_train = xgb.DMatrix(data = X[1:10000,], label = Y[1:10000])
xgb_test =  xgb.DMatrix(data = X[10000:19951,], label = Y[10000:19951])

watchlist = list(train=xgb_train, test=xgb_test)
xgb = xgb.train(data = xgb_train, max.depth = 3, watchlist=watchlist, nrounds = 1750)

pr <- predict(xgb,X[ts,])
cb <- round(  cbind(pred=pr,actual=Y[ts])  ,2)
matplot(cb,t="l",col=c(1,2),lty=1,lwd=c(3,1),main="xgb regresion")
xgb_MSE <- mean((cb[,1] - cb[,2])^2)  #  xgb MSE 0.005348

#///////////////

library(automl)
nn <- automl_train(Xref = X[tr,], Yref = Y[tr],
                   autopar = list(numiterations = 10,
                                  psopartpopsize = 10),
                   hpar = list(numiterations = 10))

pr <- automl::automl_predict(nn,X[ts,])

cb <- round(  cbind(pred=pr,actual=Y[ts])  ,2)
matplot(cb,t="l",col=c(1,2),lty=1,lwd=c(3,1),main="nn regresion")
nn_MSE <- mean((cb[,1] - cb[,2])^2)  #  nn MSE 0.023828

#///////////////

 res <- c(rf_MSE , gmdh_MSE , xgb_MSE , nn_MSE)
nms <- c("форест","МГУА","екстр. буст.","нейронка")
m <- cbind.data.frame(res,nms)
m <- m[order(m$res),]
m
barplot(m$res,names.arg = m$nms)
 
СанСаныч Фоменко #:

Questo è l'errore sulle 300 barre successive. Ad ogni barra, i predittori sono stati formati, poi filtrati, il modello è stato addestrato e la barra successiva è stata prevista.

Cercherò di fare qualcosa di simile in serata, ma ho fatto un bel po' di bot di riqualificazione e non riesco a credere che abbiano dato un tale punteggio....

C'è piuttosto una confusione nei concetti/comprensioni di cosa sia un campione di test, e per questo parliamo di cose diverse, chiamandole allo stesso modo.

 
Aleksey Vyazmikin #:

La coda di attività è stata scaricata un po' - è diventato possibile eseguire lo script. Lo eseguo e ottengo un errore.

Ho capito bene che il programma vuole la vecchia versione R 4.0?

Beh, ho cercato una vecchia versione ma non l'ho trovata. Una terribile incompatibilità è ripugnante, ovviamente.

Sbagliato. Se un pacchetto viene compilato per una versione diversa, ci sarà un avviso. Di quale incompatibilità stiamo parlando?

randomForest v.4.7-1.1 non è andato da nessuna parte e in crane. R 4.1.3

 
Renat Fatkhullin #:

Si noti che a partire dalla build 3440 inizieremo a distribuire le versioni AVX del software: https://www.mql5.com/ru/forum/432624/page5#comment_42117241.

Il passo successivo è quello di riscrivere l'apparato matematico in funzioni vettoriali e OpenCL, che forniscono accelerazioni decadali senza la necessità di installare librerie aggiuntive come CUDA.

Si tratta di un grande passo avanti. Avete bisogno di riscrivere indicatori ed esperti?

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

Non posso essere d'accordo.

Il mercato sta cambiando e gli intervalli di tempo del cambiamento sono diversi e indipendenti l'uno dall'altro.

Un tempo ero in grado di scrivere Expert Advisor che vivevano da 3 a 6 mesi. Li ottimizzavo nei fine settimana. Poi morivano, e per un breve periodo abbastanza da prosciugare il deposito. Ma non abbastanza per ottimizzare. Alla fine la situazione era ancora peggiore: dopo un po' di tempo si scoprì che esisteva un limite, allontanandosi dal quale era impossibile selezionare i parametri.

I periodi di cambiamento del mercato sono più lunghi: 5-7 anni. Ma il risultato è lo stesso dei periodi mensili. Il bot muore per sempre. Invierò un bot specifico del mercato in un messaggio privato - non è possibile farlo qui.

Quindi tutta questa idea del "fuori campione" è una sciocchezza. Un bot ha ancora una vita, non sappiamo quanto lunga: 3 mesi o 7 anni. Quando il bot muore, lo confondiamo con un altro drawdown e svuotiamo il nostro deposito.

L'ideale sarebbe riqualificarlo alla candela successiva. Se lavoriamo sui tick, allora sul tick successivo, sull'H1 e sull'arrivo dell'ora successiva.

Avete confrontato il vostro algoritmo con KNN (o una sua modifica)? Sarebbe interessante capire quanto sia significativo il guadagno.

Motivazione: