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

 
Alexey Burnakov:
Non abbiamo perso nulla. Poi avremo una sequenza di cambiamenti di cluster. Nei punti di transizione da cluster a cluster si può costruire una matrice quadrata e cambiare il MO: entrare in acquisto sul cluster n, chiudere la posizione sul cluster m. Poi la stessa matrice per la vendita. Tutte le varianti stanno solo passando. E puoi variare i parametri di clustering e guardare il risultato nel ciclo.
questo è interessante
 
Dr.Trader:

Probabilmente avete parametri diversi per la creazione di foreste in r e rattle, quindi i risultati sono diversi. In rattle stesso si può anche cambiare il numero di alberi e di variabili.

E avete il 34% di errore nel rattle sui dati di allenamento e il 3% di errore sui dati di convalida? C'è qualcosa di sbagliato nei dati di test, o in qualche modo esisteva già nei dati di allenamento, o avete un set di dati molto piccolo ed è semplicemente successo così.

no, nel rattle in tutte le fasi c'è un piccolo errore

e R ha un grande in tutte le fasi )

sono gli stessi, e con qualsiasi parametro un tale divario non è possibile.

 
Come diavolo si fa ad allegare un file qui? O non si allega o si blocca...
 
mytarmailS:

E un'altra domanda per la R

libreria(kza)

DAT <- rnorm(1000)

KZP <- kzp(DAT,m=100,k=3)

sommario(KZP,cifre=2,top=3)


come posso tirarlo fuori dal "sommario" http://prntscr.com/bhtlo9 in modo che io possa lavorare con queste cifre

Anch'io ho questi problemi. Di solito basta eseguire attributi(KZP) per ottenere un elenco di variabili disponibili e poi semplicemente passare attraverso di esse, ad esempio KZP$window ecc. e trovare i numeri giusti. Ma qui questi numeri sono generati nella funzione Riepilogo stesso e non vengono salvati da nessuna parte.

Qui c'è un codice sorgente: https://cran.r-project.org/web/packages/kza/index.html, dovete fare qualcosa del genere:

summary.kzp <- function(object, digits = getOption("digits"), top=1, ...)
{
        cat(" Call:\n ")
        dput(object$call, control=NULL)

        M=object$window
        if (is.null(object$smooth_periodogram)) {       d<-object$periodogram } else { d<-object$smooth_periodogram }
        
        mlist<-rep(0,top)
        for (i in 1:top) {
                mlist[i]<-which.max(d)
                d[which.max(d)]=NA                      
        }

   cat("\n Frequencies of interest:\n")
   print((mlist-1)/M, digits=digits, ...)

    cat("\n Periods of interest:\n")
    print(M/(mlist-1), digits=digits, ...)
    invisible(object)
}
 

Grazie Dr.Trader, è bello avere qualcuno a cui chiedere di questo complicato R )

Per quanto riguarda rattle ho capito qual è il problema, rattle campiona anche i dati "sample()" è necessaria questa azione? Con il campionamento e su R ho ottenuto gli stessi risultati, ma il trucco è che i nuovi dati arriveranno una candela alla volta, non sarà possibile campionarli.

E si scopre che se l'intero campione viene campionato, i risultati sono sorprendenti per tutti i periodi, compresi quelli fuori campione, ma quando si inviano i dati reali, è lo stesso di sempre.

Quindi la domanda è se questo campionamento è necessario?

 

Sì, è vero. Con sample - rattle divide i dati di allenamento in diversi gruppi per righe (le righe sono assegnate casualmente a tre tabelle, in un rapporto di 75%/15%/15%). Produce 3 tabelle da un file di input. Le colonne non sono interessate da questo, saranno le stesse in tutte le tabelle.

Tabella di formazione - la formazione del modello sarà basata su di essa

Convalidare e testare le tabelle - per controllare la formazione

Supponiamo di prendere i dati dell'ultimo anno e di voler allenare il modello per fare trading durante i prossimi mesi. La formazione stessa avrà luogo solo sul tavolo del treno. Dopodiché, puoi testare il modello su una seconda o terza tabella contando i loro errori. Se il modello è addestrato correttamente, gli errori su tutte e tre le tabelle saranno approssimativamente uguali, nonostante il fatto che sia stato addestrato usando solo la prima tabella.

Questo è facile da controllare su una foresta casuale. Quasi ogni set di dati può dare un errore dello 0% su una tabella di allenamento. Ma avendo controllato lo stesso modello ma con le tabelle di prova e di convalida - molto probabilmente vedrete il 50% di errore lì. Questo significa che il modello viene riqualificato, e spostandolo su mt5 perderai gradualmente il tuo deposito.
Ma se prendete il file RData con l'esempio di SanSanych, vedrete un errore del 30% sulla tabella dei treni. È interessante notare che l'errore sulle tabelle di validazione e di test rimarrà più o meno lo stesso, nonostante il fatto che il modello non abbia visto i dati di queste tabelle durante l'addestramento. Questo modello può essere facilmente trasferito su mt5 e scambiato.

Se prendiamo semplicemente tutti i dati disponibili senza campionamento, addestriamo il modello, vediamo lo 0% di errore e siamo felici, sarà molto male nel commercio reale.

 
Dr.Trader:

Sì, è vero. Con sample - rattle divide i dati di allenamento in diversi gruppi per righe (le righe sono assegnate casualmente a tre tabelle, in un rapporto di 75%/15%/15%). Produce 3 tabelle da un file di input. Le colonne non sono interessate da questo, saranno le stesse in tutte le tabelle.

Tabella di formazione - la formazione del modello sarà basata su di essa

Convalidare e testare le tabelle - per controllare la formazione

Supponiamo di prendere i dati dell'ultimo anno e di voler allenare il modello per fare trading durante i prossimi mesi. La formazione stessa avrà luogo solo sul tavolo del treno. Dopodiché, puoi testare il modello su una seconda o terza tabella contando i loro errori. Se il modello è addestrato correttamente, gli errori su tutte e tre le tabelle saranno approssimativamente uguali, nonostante il fatto che sia stato addestrato usando solo la prima tabella.

È facile da controllare su una foresta casuale. Quasi ogni set di dati può dare un errore su una tabella 0%. Ma, avendo controllato lo stesso modello ma con tabelle di prova e di convalida - probabilmente vedreste il 50% di errore lì. Questo significa che il modello viene riqualificato, e spostandolo su mt5 perderai gradualmente il tuo deposito.
Ma se prendete il file RData con l'esempio di SanSanych, vedrete un errore del 30% sulla tabella dei treni. È interessante notare che l'errore sulle tabelle di validazione e di test rimarrà più o meno lo stesso, nonostante il fatto che il modello non abbia visto i dati di queste tabelle durante l'addestramento. Puoi facilmente trasferire questo modello a mt5 e fare trading.

Se si prendono tutti i dati disponibili senza campionamento, si addestra il modello, si vede lo 0% di errore e si è felici - sarà molto male nel commercio reale.

Capisco il tuo punto, ma la satira è che l'errore è piccolo sui campioni di tutti e tre, ma è grande sui dati non campionati.

Inviami la tua email in un messaggio privato ti invierò i dati, vedere da soli o insegnarmi ad allegare un file perché io o non allegare o il forum si blocca in un inferno nel tentativo di allegare

 

Comunque, ho addestrato il mio modello (foresta casuale), il risultato non è soddisfacente, ma non riqualificato come

1) il mio obiettivo è uno zigzag con un ginocchio dello 0,5%.

2) predittori - livelli e candele - 100 cose in totale (senza oscillatori e altri indicatori)

3) Il modello stesso non è stato ottimizzato affatto, ho appena messo 3 divisioni, il numero di alberi è 200 unità

4) A proposito, se lo passiamo attraverso PrunePredictors (selezione delle caratteristiche), allora solo 3 predittori sono stati scartati su tutti i 100, per un totale di 97 predittori rimasti

il campione è diviso in due parti, una formazione e una prova, la prova è la quinta parte della formazione

Nella parte di addestramento: errore del modello 33


Sul test: errore del modello 32%


I dati non sono campionati, perché non capisco ancora questa bestia.

Ora possiamo pensare al cluster

 

Forum: come inserire un'immagine

Questo è l'unico modo perché l'immagine rimanga sul forum per sempre e tutti gli utenti, anche dopo un anno, possano vedere l'immagine e capire di cosa si trattava.

L'unico modo per mantenere un'immagine in un forum a tempo indeterminato è che tutti gli utenti possano vederla e capirla anche dopo un anno.

 
mytarmailS:

La domanda non è perché ci sono risultati diversi in R e rattle sugli stessi dati e lo stesso modello

Seconda domanda: che senso ha testare un modello "fuori campione" su rattle se mostra l'inferno

Hai frainteso il mio post