Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 509

 
Aleksey Terentev:
Rede [64 GRU + 32 GRU + 2 Densa] em um problema de classificação por OHLC -> Modelo Compra/Venda (7000 bar) em ~24 treinos dão 0,9 - 0,8 precisão. E tudo isto em cerca de 30 segundos.

O que há nos sinais e saídas?
 
pantural:
O que há nos sinais e saídas?

"OpenHighLowClose -> Buy/Sell"

update: sinal de compra/venda já publicado neste tópico.

 
elibrarius:
Como são estes resultados na negociação? Qual é o crescimento do depósito em % por mês/ano? Se você treinar não por 7000 bares, mas por 100000?

Eu ainda não comecei a negociar. Eu estou ocupado com a automação.

Também a selecção do modelo de rede neural é bastante sensível. É preciso levar em conta o tipo de funções de ativação nas camadas, a função de erro, o método de treinamento e o pré-treinamento de saída correto, assim como um monte de outras nuances de MO. Todo o treinamento pode reduzir cada sinal muito rapidamente a 0 na faixa de [-1;1].

É por isso que não tenho pressa em partilhar os resultados.

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

Obrigado. Exatamente o que você precisa.

 

Quem entende R? O primeiro exemplo com o download de citações viaquantmod tem um problema, eu não posso desenhar as citações 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:

Quem entende R? Eu tenho um problema no primeiro exemplo com o carregamento de citações viaquantmod, não posso desenhar as citações resultantes

Eu executei o código do artigo, tudo funcionou desde a primeira vez.
Versão R 3.4.2, mas eu acho que não importa muito.

 

Sabe-se que, para treinar um modelo de classificação, deve-se equilibrar o número de aulas para que o número de exemplos de treinamento da classe "1" coincida com o número de exemplos de treinamento da classe "2" (e remover exemplos desnecessários).

Eu vejo um requisito semelhante para modelos de regressão, mas é mais complicado - o número de exemplos com o alvo de 0,001 deve ser igual ao número de exemplos com alvo de -0,001,
o número de exemplos com alvo de 0,002 deve ser igual ao número de exemplos com alvo de -0,002, etc.

Aqui está um guião para fazer este equilíbrio...

#Подготовка  таблички для обучения модели, тут рандомные значения
#таргет  в колонке 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, ] #новая табличка на которой можно обучать модель
 

Quando é que as previsões das ondas são úteis?

Quando os dados mostram alta volatilidade e lacunas, o que é típico na maioria das séries temporais financeiras de alta frequência, a previsão se torna ainda mais desafiadora. Utilizando dados de taxas de câmbio de alta freqüência, mostramos que wavelets que são robustos à alta volatilidade e gaps são preditores úteis em aplicações de alta freqüência onde a alta volatilidade é a característica dominante que afeta as estimativas de avaliação, previsões de zona ou ambas. Os resultados indicam que a decomposição das séries temporais em componentes homogêneos, que depois são utilizados em modelos de previsão de séries temporais, é muito importante. Os diferentes componentes tornam-se mais úteis do que outros para diferentes dados associados ao regime de volatilidade. Consideramos uma ampla gama de modelos de séries temporais lineares e não lineares para prever as séries de alta frequência de apreciação da taxa de câmbio. Nossos resultados indicam que quando os dados apresentam características não padronizadas com alta volatilidade, os modelos não lineares superam as alternativas lineares. Entretanto, quando os dados estão nas faixas de baixa volatilidade tanto para estimativas quanto para previsões, modelos auto-regressivos lineares simples prevalecem, embora seja necessário um esforço considerável para remover ruído nos dados através de wavelets.

Arquivos anexados:
 
Dr. Trader:

Existe a ideia de que, para treinar um modelo de classificação, o número de aulas deve ser equilibrado de modo a que o número de exemplos de treino com a classe "1" coincida com o número de exemplos de treino com a classe "2" (e remover exemplos desnecessários).

Vejo requisitos semelhantes para modelos de regressão, mas é mais complicado - o número de exemplos com nível "0,001" deve ser igual ao número de exemplos de treino com nível "-0,001",
o número de exemplos com o alvo 0,002 deve ser igual ao número de exemplos com o alvo -0,002, etc.

Aqui está um guião para fazer este equilíbrio

O que significa essencialmente?
Se o dólar estava crescendo (estava em tendência) por alguns meses, então, ao suavizar a quantidade de exemplos de treinamento, mostraremos NS como se estivesse estável durante todo esse tempo. E, consequentemente, aprenderá a ser plana. Está correcto? Talvez, ainda devêssemos ensiná-lo a ter tendência?