Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 509

 
Aleksey Terentev:
La red [64 GRU + 32 GRU + 2 Dense] en un problema de clasificación por OHLC -> Modelo de compra/venta (7000 bar) en ~24 carreras de entrenamiento da una precisión de 0,9 - 0,8. Y todo esto en unos 30 segundos.

¿Qué hay en los carteles y en las señales?
 
pantural:
¿Qué hay en los carteles y en las señales?

"AperturaAltoCierre -> Compra/Venta"

actualización: señal de compra/venta ya publicada en este hilo.

 
elibrarius:
¿Cómo son estos resultados en el comercio? ¿Cuál es el crecimiento de los depósitos en % por mes/año? ¿Si entrenas no para 7000 barras, sino para 100000?

No he empezado a comerciar. Estoy ocupado con la automatización.

También la selección del modelo de red neuronal es bastante sensible. Hay que tener en cuenta el tipo de funciones de activación en las capas, la función de error, el método de entrenamiento y el preentrenamiento correcto de la salida, así como un montón de otros matices de MO. Todo el entrenamiento puede reducir cada señal muy rápidamente a 0 en el rango [-1;1].

Por eso no tengo prisa por compartir los resultados.

 
what mean l2 norm?? - MATLAB Answers - MATLAB Central
  • www.mathworks.com
what mean l2 norm??. Learn more about matlab
 

Gracias. Justo lo que necesitas.

 

¿Quién entiende de R? El primer ejemplo con la descarga de cotizaciones a través dequantmod tiene un problema, no puedo dibujar las cotizaciones resultantes

getSymbols("AAPL", src = "google")
plot(AAPL[, "AAPL.Close"], main = "AAPL")

//
[1] "AAPL"
> plot(AAPL[, "AAPL.Close"], main = "AAPL")
Error in if (on == "years") { : missing value where TRUE/FALSE needed


https://www.r-bloggers.com/an-introduction-to-stock-market-data-analysis-with-r-part-1/

An Introduction to Stock Market Data Analysis with R (Part 1)
An Introduction to Stock Market Data Analysis with R (Part 1)
  • ntguardian
  • www.r-bloggers.com
Around September of 2016 I wrote two articles on using Python for accessing, visualizing, and evaluating trading strategies (see part 1 and part 2). These have been my most popular posts, up until I published my article on learning programming languages (featuring my dad’s story as a programmer), and has been translated into both Russian (which...
 
Maxim Dmitrievsky:

¿Quién entiende de R? Tengo un problema en el primer ejemplo con la carga de comillas a través dequantmod, no puedo dibujar las comillas resultantes

He ejecutado el código del artículo, todo ha funcionado desde la primera vez.
Versión R 3.4.2, pero no creo que importe mucho.

 

Se sabe que para entrenar un modelo de clasificación, hay que equilibrar el número de clases para que el número de ejemplos de entrenamiento de la clase "1" coincida con el número de ejemplos de entrenamiento de la clase "2" (y eliminar los ejemplos innecesarios).

Veo un requisito similar para los modelos de regresión, pero es más complicado: el número de ejemplos con el objetivo de 0,001 debe ser igual al número de ejemplos de entrenamiento con el objetivo de -0,001,
el número de ejemplos con el objetivo de 0,002 debe ser igual al número de ejemplos con el objetivo de -0,002, etc.

Aquí hay un script para hacer este balance -

#Подготовка  таблички для обучения модели, тут рандомные значения
#таргет  в колонке 11
trainTable <- cbind(matrix(runif(10000), nrow = 1000, ncol=10), 
                    round(sample(c(-runif(480)*runif(480), runif(520)*runif(520))*0.1), 3))#рандомные  значения для таргета, 3 знака после запятой.
                                                                                           #Позитивных значений на 40 больше чем негативных имитируя тренд в исходных ценах.


#Требуется  взять для обучения модели только такие строки таблицы когда число позитивных и негативных значений будет равно и отбалансировано по уровням

target <- trainTable[,11]
target <- round(target, 3) #округление  до определённой точности, тут 3 знака после запятой
targetFactor <- factor(target)
targetFactorLevels <- as.numeric(levels(targetFactor))
balancedIndexes <- c()
for(i in 1:length(targetFactorLevels)){
  idx <- which(target == targetFactorLevels[i])
  idxN <- which(target == -targetFactorLevels[i])
  minLength <- min(length(idx), length(idxN))
  balancedIndexes <- c(balancedIndexes, tail(idx, minLength), tail(idxN, minLength))
}
balancedIndexes <- sort(unique(balancedIndexes))

trainTableBalanced <- trainTable[balancedIndexes, ] #новая табличка на которой можно обучать модель
 

¿Cuándo son útiles las ondículas para hacer previsiones?

Cuando los datos muestran una alta volatilidad y brechas, lo que es típico en la mayoría de las series temporales financieras de alta frecuencia, la previsión se vuelve aún más difícil. Utilizando datos de alta frecuencia sobre los tipos de cambio, mostramos que las wavelets que son robustas a la alta volatilidad y a los gaps son predictores útiles en aplicaciones de alta frecuencia donde la alta volatilidad es la característica dominante que afecta a las estimaciones de valoración, a las previsiones de zona o a ambas. Los resultados indican que la descomposición de las series temporales en componentes homogéneos, que luego se utilizan en los modelos de previsión de series temporales, es muy importante. Los diferentes componentes resultan más útiles que otros para diferentes datos asociados al régimen de volatilidad. Consideramos una amplia gama de modelos de series temporales lineales y no lineales para predecir las series de alta frecuencia de la apreciación del tipo de cambio. Nuestros resultados indican que cuando los datos presentan características no estándar con alta volatilidad, los modelos no lineales superan a las alternativas lineales. Sin embargo, cuando los datos se encuentran en los rangos de baja volatilidad, tanto para las estimaciones como para las previsiones, prevalecen los modelos autorregresivos lineales simples, aunque se requiera un esfuerzo considerable para eliminar el ruido en los datos mediante wavelets.

Archivos adjuntos:
 
Dr. Trader:

Existe la idea de que para entrenar un modelo de clasificación se debe equilibrar el número de clases de forma que el número de ejemplos de entrenamiento con la clase "1" coincida con el número de ejemplos de entrenamiento con la clase "2" (y eliminar los ejemplos innecesarios).

Veo un requisito similar para los modelos de regresión, pero es más complicado: el número de ejemplos con nivel "0,001" debe ser igual al número de ejemplos de entrenamiento con nivel "-0,001",
el número de ejemplos con el objetivo 0,002 debe ser igual al número de ejemplos con el objetivo -0,002, etc.

Aquí hay un script para hacer este balanceo

¿Qué significa esencialmente?
Si el dólar estuvo creciendo (tuvo tendencia) durante algunos meses, entonces al suavizar la cantidad de ejemplos de entrenamiento mostraremos el NS como si estuviera plano durante todo este tiempo. Y en consecuencia lo aprenderá a plano. ¿Es correcto? Tal vez, ¿todavía deberíamos enseñarlo a la tendencia?