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

 
anonimo:

e trasporre come necessario secondo la dimensione della matrice

Basta usare le due funzioni kohonen::classvec2classmat, kohonen::classmat2classvec. Potete semplicemente copiare queste funzioni su di voi e usarle come necessario.

> classvec2classmat
function (yvec) 
{
    if (!is.factor(yvec)) 
        yvec <- factor(yvec)
    nclasses <- nlevels(yvec)
    outmat <- matrix(0, length(yvec), nclasses)
    dimnames(outmat) <- list(NULL, levels(yvec))
    for (i in 1:nclasses) outmat[which(as.integer(yvec) == i), 
        i] <- 1
    outmat
}
> classmat2classvec
function (ymat, threshold = 0) 
{
    class.names <- dimnames(ymat)[[2]]
    if (is.null(class.names)) 
        class.names <- 1:ncol(ymat)
    classes <- apply(ymat, 1, function(x) which(x == max(x))[1])
    classes[apply(ymat, 1, max) < threshold] <- NA
    factor(class.names[classes], levels = class.names)
}

Buona fortuna

 
elibrario:

Un altro problema con R.

Su un computer va bene, sull'altro computer ci sono alcuni requisiti maggiori per la correttezza del codice.

Per esempio

darch.unitFunction = linearUnit - ha causato il blocco di Rterm.exe

cambiato in

darch.unitFunction ="linearUnit"

questo punto ha iniziato a passare prima del prossimo errore.

Ho anche dovuto cambiare library(darch) in require(darch)

Ora è l'apprendimento stesso che è una seccatura.

R_NN <- darch(
darch = NULL,
x = MatrixLearnX ,
y = MatrixLearnY ,
paramsList = params
)

Ho provato molte varianti, Rterm.exe va sempre in crash

R ha una sorta di controllo del livello di errore? Forse sul secondo PC ho finito per avere un livello di errore da risolvere fermandomi ad ogni avviso?

Su entrambi i computer ho installato R con le impostazioni predefinite, ho installato tutti i pacchetti.
Come posso rimediare?

Fate un'istantanea della sessione su uno e sull'altro PC e confrontateli. Per esempio

> sessionInfo()
R version 3.4.2 (2017-09-28)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils    
[5] datasets  methods   base     

other attached packages:
[1] kohonen_3.0.4        RevoUtils_10.0.6    
[3] RevoUtilsMath_10.0.1

loaded via a namespace (and not attached):
[1] MASS_7.3-47    compiler_3.4.2
[3] tools_3.4.2    Rcpp_0.12.13  

buona fortuna

 
Vladimir Perervenko:

Fai un'istantanea della sessione su uno e sull'altro computer e confrontali. Per esempio

buona fortuna

Non con quel metodo, ma l'ho capito - più che altro per tentativi ed errori.
Grazie

 

A proposito, ho visto l'espressione "hardcode" una rete.
Apparentemente si tratta di ottenere una funzione con pesi e offset e calcolare le uscite.

Per esempio, come ottenere i pesi da darch per il primo strato: print(NN@layers[[1]]$weights)

C'è qualche script pronto per creare una tale funzione hardcoded?

 

Realizzato funzionalità di base per il trading di criptovalute tramite R. Crypto exchange è bittrex, una volta passati tutti i controlli lì, così ora potrei controllare il codice in azione in una volta.
Nel codice dovresti cambiare i valori API_KEY e API_SECRET con quello che exchange ti darà personalmente nelle impostazioni del profilo.

Meno di questo scambiatore - la loro api non ha alcuna funzione per ottenere valori ohlc, le zecche hanno bisogno di raccogliere se stessi e da loro per costruire barre ohlc (o scaricarli da risorse esterne). E per accedere all'api e al trolling attraverso di essa (e attraverso R) è necessario passare la verifica dell'identità, e attivare 2fa.

Probabilmente dovrebbe trovare uno scambio che dà fuori ohlc via api, e non richiede la verifica dell'identità per il commercio, tutti gli scambi lavorano con api in generale è simile, questo script può essere facilmente rifatto per un altro.

 
Maxim Dmitrievsky:

Ma sì, il 90% è data mining 10% selezione di modelli

+100!
 
Yuriy Asaulenko:

Quindi dovrete presto avere una fattoria mineraria per le strategie di estrazione.


Bene, ora la situazione è questa: il bot che ho fatto prima è molto figo come ottica su una piccola distanza, sul lato avanti funziona 50/50, cioè se il mercato non è cambiato, è +, se è cambiato, è meno. Può essere modificato, si possono spremere più neuroni di Reshetov, o c'è una versione basata sulla logica fuzzy, è ancora più brusca, ma aumenta i pesi ottimizzabili ... quindi fondamentalmente se lo alleno nel cloud per un giorno e pago circa ... non so ... 100 sterline per questo, probabilmente dovrebbe durare a lungo e portare buoni profitti, ma non sono mentalmente pronto per allenamenti così lunghi. La seconda variante è un sistema di auto-ottimizzazione, non è ancora pronto, potrebbe riqualificarsi senza ottimizzatore. Mi piace di più questa variante, ma non è ancora chiaro :)

 
Maxim Dmitrievsky:

Bene, ora la situazione è la seguente: il bot che ho fatto prima è molto figo ottimale su una piccola distanza, sul mercato a termine funziona 50/50, cioè se il mercato non è cambiato va su, se è cambiato va giù. Può essere modificato, si possono spremere più neuroni di Reshetov, o c'è una versione basata sulla logica fuzzy, è ancora più brusca, ma aumenta i pesi ottimizzabili ... quindi fondamentalmente se lo alleno nel cloud per un giorno e pago circa ... non so ... 100 sterline per questo, probabilmente dovrebbe durare a lungo e portare buoni profitti, ma non sono mentalmente pronto per allenamenti così lunghi. La seconda opzione è un sistema auto-ottimizzante, non è ancora pronto, si riaddestrerà da solo senza l'ottimizzatore... Mi piace di più questa variante, ma non è ancora chiaro :)

Non capisco cosa sia l'ottimizzatore?

Quando sento ottimizzatore, ho cattive associazioni con un MT tester-ottimizzatore.

 
Yuriy Asaulenko:

Non capisco, cos'è un ottimizzatore?

Quando sento ottimizzare, ho una cattiva associazione con un tester-ottimizzatore di MT.


sì, perché non bene? MO è in sostanza l'ottimizzazione prima che l'IA fosse inventata.

La genetica è anche un MO

 
Maxim Dmitrievsky:

sì, perché non bene? Il MO è essenzialmente l'ottimizzazione fino all'invenzione dell'AI.

Anche la genetica fa parte dell'IA.

L'ottimizzazione riguarda i criteri. L'ottimizzazione secondo il massimo profitto non è un criterio molto buono. Allo stesso tempo non c'è motivo di credere che in futuro funzionerà in qualche modo, cosa che vediamo spesso nella pratica, sul forum in particolare.