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

 
Aleksey Nikolayev #:

Il problema principale nell'utilizzo di matstat per tali compiti è che la ricerca di TS viene effettuata selezionando un gran numero di varianti. È sempre possibile scegliere qualcosa di molto bello da un ampio insieme di varianti - con un semplice esempio ho mostrato qui che modellando i prezzi come un CB, è sempre possibile "trovare" una buona ora della settimana per il trading. E sono solo 120 le varianti tra cui scegliere.

Il matstat non dice che il TS selezionato è necessariamente negativo, dice solo che tale risultato può (NON DEVE) essere solo il risultato della selezione dal SB.

Ancora non capisco, non c'è modo di dire con certezza se il risultato finale è statisticamente significativo o no? TC o no?

Aleksey Vyazmikin #:

Ricevo un errore quando lancio

1) I dati sono gli stessi dell'esempio?

2) Forse nel nuovo R i nomi degli argomenti delle funzioni sono cambiati.

?embed
 

Una delle direzioni potrebbe essere quella di cercare non il migliore, ma i parametri più stabili della ST, cioè di scartare quelle varianti che presentano una variabilità dei risultati in diverse parti della storia.

Un modo è quello di includere indicatori di stabilità dei risultati nei criteri di valutazione.

 

Esiste un ottimo pacchetto sull'ottimizzazione bayesiana...

Si possono fare ottimizzazioni multi-criterio, ottimizzazioni su funzioni con rumore e molte altre cose, un pacchetto molto interessante.

Ho fatto un esempio giocattolo di come l'algoritmo cerca un minimo in un vettore monodimensionale.

library(mlrMBO)

set.seed(123)
xx <- cumsum(rnorm(1000))
par(mar=c(2,2,2,2))
plot(xx,t="l")

fun = function(i){
  plot(xx,t="l",col=8)
  points(i,xx[i],col=4,lwd=4)
  return(xx[i])
}

obj.fun = makeSingleObjectiveFunction(name = "noisy_parable", 
                                      fn = fun,
                                      has.simple.signature = TRUE, 
                                      par.set = makeNumericParamSet("i", 1, 1, length(xx)),
                                      noisy = F)


ctrl = makeMBOControl(final.method = "best.true.y", final.evals = 10)
ctrl = setMBOControlInfill(ctrl, crit = crit.eqi)
ctrl = setMBOControlTermination(ctrl, iters = 40)

configureMlr(on.learner.warning = "quiet", show.learner.output = F)
res = mbo(obj.fun, control = ctrl, show.info = T)

points(res$x$i, xx[res$x$i] , col=2,lwd=5, pch=10)
Bayesian Optimization and Model-Based Optimization of Expensive Black-Box Functions
  • mlrmbo.mlr-org.com
Flexible and comprehensive R toolbox for model-based optimization (MBO), also known as Bayesian optimization. It implements the Efficient Global Optimization Algorithm and is designed for both single- and multi- objective optimization with mixed continuous, categorical and conditional parameters. The machine learning toolbox mlr provide dozens of regression learners to model the performance of the target algorithm with respect to the parameter settings. It provides many different infill criteria to guide the search process. Additional features include multi-point batch proposal, parallel execution as well as visualization and sophisticated logging mechanisms, which is especially useful for teaching and understanding of algorithm behavior. mlrMBO is implemented in a modular fashion, such that single components can be easily replaced or adapted by the user for specific use cases.
 
mytarmailS #:

Continuo a non capire, non c'è modo di dire con certezza se il risultato finale sia statisticamente significativo o meno. o no?

Non mischiare due cose che sono legate all'uso dello stesso indicatore:

1) La valutazione del risultato di una TS con questo indicatore.

2) Selezione di un TS tra un gran numero di opzioni massimizzando questo indicatore.

Nel primo caso, il valore dell'indicatore può essere statisticamente significativo, ma nel secondo caso è improbabile.

 
mytarmailS #:

Continuo a non capire, non c'è modo di dire con certezza se il risultato finale sia statisticamente significativo o meno. o no?

1) I dati sono gli stessi dell'esempio?

2) Forse nel nuovo R i nomi degli argomenti delle funzioni sono cambiati.

1. Sì

2. Forse - ho acceso la 3.5.0 - ho richiesto la libreria - l'ho installata e di nuovo alcuni errori.

installing the source package ‘inTrees’

trying URL 'https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/contrib/inTrees_1.3.tar.gz'
Content type 'application/octet-stream' length 16771 bytes (16 KB)
downloaded 16 KB

ERROR: dependency 'arules' is not available for package 'inTrees'
* removing 'C:/Users/S_V_A/Documents/R/win-library/3.5/inTrees'
In R CMD INSTALL
Warning in install.packages :
  installation of package ‘inTrees’ had non-zero exit status
 
Aleksey Vyazmikin #:

1. sì

2. Forse - ho acceso la 3.5.0 - ho richiesto la libreria - l'installazione e di nuovo alcuni errori.

vedere quali argomenti accetta la funzione

?embed

nella versione che ha avuto l'errore con questa funzione.

L'ho scritto io!

 
Aleksey Nikolayev #:

Non mischiare due cose che comportano l'uso dello stesso indicatore:

1) Valutazione del risultato di una CT su questo indicatore.

2) Selezione di un TS tra un gran numero di opzioni massimizzando questo indicatore.

Nel primo caso, il valore dell'indicatore può parlare di significatività statistica, ma nel secondo caso - difficilmente.

In parole povere, se valuto un TS in base alla significatività statistica, è buono,

se ho 100 TS e scelgo il migliore con lo stesso criterio, non va bene?


Devo aver frainteso qualcosa? Non può essere nemmeno giusto?

 
Andrey Dik #:

Una delle direzioni potrebbe essere quella di cercare non il migliore, ma i parametri più stabili della ST, cioè di scartare quelle varianti che presentano una variabilità di risultati in diverse parti della storia.

Un modo è quello di includere indicatori di stabilità dei risultati nei criteri di valutazione.

Qual è la vostra variante di valutazione della stabilità? Recentemente abbiamo discusso due opzioni.
 
mytarmailS #:

vedere quali argomenti accetta la funzione

nella versione in cui si è verificato un errore con questa funzione.

L'ho scritto io!

embed {stats}   R Documentation
Embedding a Time Series

Description

Embeds the time series x into a low-dimensional Euclidean space.

Usage

embed (x, dimension = 1)
Arguments

x       
a numeric vector, matrix, or time series.
dimension       
a scalar representing the embedding dimension.
Details

Each row of the resulting matrix consists of sequences x[t], x[t-1], ..., x[t-dimension+1], where t is the original index of x. If x is a matrix, i.e., x contains more than one variable, then x[t] consists of the tth observation on each variable.

Value

A matrix containing the embedded time series x.

Author(s)

A. Trapletti, B.D. Ripley

Examples

x <- 1:10
embed (x, 3)
[Package stats version 4.0.2 Index]
 
Aleksey Vyazmikin #:

Va bene, dovrebbe funzionare.

Sei sicuro di non aver modificato il codice? Mostrami il codice in cui si verifica l'errore.

Motivazione: