L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 2802
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
Una volta hai realizzato uno script che ho deciso di riutilizzare.
L'ho eseguito su un campione e dà un errore - non riesco a capire dove trovare l'errore e come risolverlo - forse tu lo sai, visto che usi queste librerie/pacchetti?
Tutto ha funzionato bene su un campione binario.
L'errore dice che nella matrice di correlazione sono comparsi valori non definiti (NA) e la funzione findCorrelation non può utilizzarli. Aprite il pacchetto e leggete la descrizione della funzione.
Gli script sono disordinati e un mare di risultati intermedi non necessari. di seguito lo script corretto
Spiegazioni in ordine:
1. Non è necessario caricare il pacchetto "caret" nell'ambito globale. È molto pesante e assorbe molte dipendenze e dati. È necessaria solo una funzione. Si importa direttamente nella funzione get.findCor.
Il pacchetto tidyft è un pacchetto di manipolazione dei dataframe molto veloce. Utilizzatelo.
Per controllo, ho eseguito un test sul mio kit utilizzando questo script. Risultato:
# patch <- "C:/RData/Project/FEDOT/" # df1 <- fread(paste0(patch, "DF_train_M5.csv")) # object.size(df1) #780184 bytes # dim(df1) #[1] 4030 25 # ft <- as_fst(df1)# # rm(df1) #ft %>% select_fst(cols = c(1:3,25), negate = TRUE)-> dt #dim(dt) [1] 4030 21 bench::workout({ for(i in seq_len(length(cor.test.range))){ get.findCor(dt, cor.coef = cor.test.range[i])-> dt.n paste0("train2_" , cor.test.range[i]*10 , ".csv") %>% paste0(patch , .) %>% fwrite(dt.n, .) rm(dt.n) } })->t1 #(12.9 m) setwd(patch) dim(fread("train2_1.csv")) #[1] 4030 3 dim(fread("train2_2.csv")) #[1] 4030 6 dim(fread("train2_3.csv")) #[1] 4030 10 dim(fread("train2_4.csv")) #[1] 4030 13 dim(fread("train2_5.csv")) #[1] 4030 16 dim(fread("train2_6.csv")) #[1] 4030 17 dim(fread("train2_7.csv")) #[1] 4030 18 dim(fread("train2_8.csv")) #[1] 4030 18 dim(fread("train2_9.csv")) #[1] 4030 18Il conteggio è piuttosto lungo (12,9 minuti). Ma anche il frame non è piccolo. Ovviamente dobbiamo parallelizzarlo, cercando una funzione cor più veloce.
Dai 21 predittori iniziali con soglie diverse abbiamo selezionato un numero diverso di predittori.
Ma questa non è la strada da seguire.
Buona fortuna
Non avete prestato attenzione alla variabilità di sd
Presterò attenzione la prossima volta, conterò la sd dalla sd dalla sd dalla sd %)
Legare l'offset della finestra delle caratteristiche a un qualche indicatore (ad esempio std) non ha dato alcun risultato
più grande è il valore, più grande è l'offset multiplo di questo valore.
o viceversa. Ho provato entrambi.
Esiste anche una variante di espansione-riduzione (+ offset?), ma non l'ho ancora provata.
Vedo solo un'enumerazione di tali varianti nell'ambito dei frattali.
1. Non è necessario caricare il pacchetto "caret" nell'ambito globale. È molto pesante, con molte dipendenze e dati. È necessaria solo una funzione. La si importa direttamente nella funzione get.findCor.
Wow, è vuoto
Vladimir, sai se esiste un pacchetto per il backtest che tenga un log delle transazioni e tutto il resto (beh, non per essere primitivi), tranne che per i lenti "quantstrat" e "SIT".
Legare l'offset della finestra delle caratteristiche a qualche indicatore (ad esempio, std) non ha prodotto alcun risultato
più grande è il valore, più grande è l'offset multiplo di questo valore.
o viceversa. Ho provato entrambi.
Esiste anche un'opzione di espansione-riduzione (+ offset?), ma non l'ho ancora provata.
Vedo solo un superamento di tali varianti nell'ambito dei frattali.
Assolutamente.
Tutto deve essere ricalcolato a ogni passo.
Assolutamente sì.
Tutto deve essere ricalcolato a ogni passo.
Trovo più facile ricalcolare le etichette e le caratteristiche su un set di dati di grandi dimensioni piuttosto che riqualificare ogni barra, perché rimarrei bloccato per molto tempo.
E con la riqualificazione frequente si determina un modello generale, se lo si guarda globalmente. A meno che non si tratti di un progetto di versamento, ovviamente.Per me è più facile esaminare i modi per ricalcolare le etichette rispetto ai chip su un set di dati di grandi dimensioni che riqualificare ogni barra, sarei bloccato per molto tempo.
Sono assolutamente d'accordo, questo è il motivo per cui non posso passare a EA.
Ma è una questione di principio. Sono passato allo schema "teach every step" a causa dei problemi nascosti che si presentano a causa della preparazione dell'intero dataset. Ho questo esatto problema e non sono riuscito a trovare predittori che generino l'effetto "looking ahead".
Totalmente d'accordo, questo è il motivo per cui non riesce a passare a EA.
Ma è un problema di principio. Sono passato allo schema "insegna ad ogni passo" a causa del problema del "peeking ahead" nascosto che si presenta a causa della preparazione dell'intero set di dati. Ho questo stesso problema e non sono riuscito a trovare predittori che generino l'effetto "guardare avanti".
Il grafico Embargo è una sorta di chiamata.
Una volta l'allenamento si è ridotto a 1 giorno e il test a 1 giorno. E ha osservato le previsioni per il markup con qualche giorno di anticipo. Cioè ha visto quello che sarà per le nuove barre. I risultati sono stati molto buoni.
Con l'aumento dell'intervallo di allenamento fino a una settimana, il risultato è stato anche superiore a 50/50. Ebbene, più - peggio è, le linee con sbirciata sono state aggiunte alle linee senza sbirciata e hanno rovinato tutto ))))
.
In generale, questa trama di embargo non dovrebbe essere inferiore al peek-ahead per l'insegnante.
Wow, è una cosa vuota
Vladimir, sai se esiste un pacchetto per il backtest che tenga un log delle transazioni e tutto il resto (beh, non per essere primitivi), tranne che per i lenti "quantstrat" e "SIT".
Non lo so. Non ho mai incontrato