Durante a depuração de scripts R por um longo tempo, identifiquei um bug que é difícil de detectar se os dados de entrada tiverem NA. Ele simplesmente não acionará o sinal. No arquivo "e_SAE_init.r", recomenda-se adicionar um termo de limpeza NA à função Test(dt,x) antes de new.data <- predict(prepr, tail(x, 50)): x <- na.omit(x);
Isso parece uma "muleta", mas ainda não pensei em nada melhor.
Sem isso, ocorrerá um erro oculto:
Error in if (sqrt(denom) > .Machine$double.eps) x/sqrt(denom) else x * : missing value where TRUE/FALSE needed
Ao depurar scripts R por um longo tempo, identifiquei um bug que é difícil de detectar se os dados de entrada tiverem NA. Ele simplesmente não acionará o sinal. No arquivo "e_SAE_init.r", recomenda-se adicionar um termo de limpeza NA à função Test(dt,x) antes de new.data <- predict(prepr, tail(x, 50)): x <- na.omit(x);
Isso parece uma "muleta", mas ainda não pensei em nada melhor.
Sem isso, ocorrerá um erro oculto:
Error in if (sqrt(denom) > .Machine$double.eps) x/sqrt(denom) else x * : missing value where TRUE/FALSE needed
kimkarus:
Durante a depuração de scripts R por um longo tempo, encontrei um bug que é difícil de detectar se os dados de entrada tiverem NA. Ele simplesmente não acionará o sinal. No arquivo "e_SAE_init.r", recomenda-se adicionar um termo de limpeza NA à função Test(dt,x) antes de new.data <- predict(prepr, tail(x, 50)): x <- na.omit(x);
Isso parece uma "muleta", mas ainda não pensei em nada melhor.
Sem isso, ocorrerá um erro oculto:
Error in if (sqrt(denom) > .Machine$double.eps) x/sqrt(denom) else x * : missing value where TRUE/FALSE needed
Essa declaração está incorreta.
Na função Test(dt, x), x é o dado de entrada calculado pela função In(). Vamos dar uma olhada no script "i_SAE_fun.r"
Li suas instruções sobre a rede neural usando o R, mas tenho uma pergunta idiota (desculpe, sou novato nisso!)
No tutorial que você escreveu ( https://www.mql5.com/pt/articles/1103#ch_3), na"Seção 3.3.1 - Dados de origem" você descreveu uma função chamada pr.OHLC que eu entendi muito bem.
Mas você mostra alguns resultados que não ficaram claros para mim, quais são os parâmetros necessários para os resultados abaixo
> head(price)
Open High Low Close Med CO
[1,] 1.33848 1.33851 1.33824 1.33844 1.338375 -4e-05
[2,] 1.33843 1.33868 1.33842 1.33851 1.338550 8e-05
[3,] 1.33849 1.33862 1.33846 1.33859 1.338540 1e-04
[4,] 1.33858 1.33861 1.33856 1.33859 1.338585 1e-05
[5,] 1.33862 1.33868 1.33855 1.33855 1.338615 -7e-05
This article is dedicated to a new and perspective direction in machine learning - deep learning or, to be precise, deep neural networks. This is a brief review of second generation neural networks, the architecture of their connections and main types, methods and rules of learning and their main disadvantages followed by the history of the third generation neural network development, their main types, peculiarities and training methods. Conducted are practical experiments on building and training a deep neural network initiated by the weights of a stacked autoencoder with real data. All the stages from selecting input data to metric derivation are discussed in detail. The last part of the article contains a software implementation of a deep neural network in an Expert Advisor with a built-in indicator based on MQL4/R.
Li suas instruções sobre a rede neural usando o R, mas tenho uma pergunta idiota (desculpe, sou novato nisso!)
No tutorial que você escreveu ( https://www.mql5.com/pt/articles/1103#ch_3), na"Seção 3.3.1 - Dados de origem" você descreveu uma função chamada pr.OHLC que eu entendi muito bem.
Mas você mostra alguns resultados que não ficaram claros para mim, quais são os parâmetros necessários para os resultados abaixo
Poderia, por favor, me ajudar com isso?
Com certeza,
Fábio
Oi Fábio,
O que não está claro?
pr.OHLC <- function (o, h, l, c)
{
#Unite quote vectors into a matrix having previously expanded them
#Indexing of time series of vectors in R starts with 1.
#Direction of indexing isfrom old to new ones.
price <- cbind(Open = rev(o), High = rev(h), Low = rev(l), Close = rev(c))
Med <- (price[, 2] + price[, 3])/2 #We calculateaverage price(HIgh + Low)/2
CO <- price[, 4] - price[, 1] # We calculatebodycandles (Close - Open)
#add Med and CO to the matrix
price <- cbind(price, Med, CO)#We are putting it all in a matrix
}
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Vladimir Perervenko
Adicione ao artigo informações adicionais sobre como trabalhar com o R Studio
Boa tarde.
Não entendo sobre o arquivo hosts. Você pode fornecer mais detalhes?
Boa sorte, senhor
Vladimir Perervenko
Adicione ao artigo informações adicionais sobre como trabalhar com o R Studio
Eu uso outra forma de registro para verificar os pacotes instalados:
Você deve carregar as bibliotecas na descrição das funções que as utilizam. Embora você possa fazer isso ao inicializar o Expert Advisor.
Então, por que você precisa executar o Expert Advisor no testador?
Boa sorte
Durante a depuração de scripts R por um longo tempo, identifiquei um bug que é difícil de detectar se os dados de entrada tiverem NA. Ele simplesmente não acionará o sinal. No arquivo "e_SAE_init.r", recomenda-se adicionar um termo de limpeza NA à função Test(dt,x) antes de new.data <- predict(prepr, tail(x, 50)): x <- na.omit(x);
Isso parece uma "muleta", mas ainda não pensei em nada melhor.
Sem isso, ocorrerá um erro oculto:
Error in if (sqrt(denom) > .Machine$double.eps) x/sqrt(denom) else x * : missing value where TRUE/FALSE needed
Ao depurar scripts R por um longo tempo, identifiquei um bug que é difícil de detectar se os dados de entrada tiverem NA. Ele simplesmente não acionará o sinal. No arquivo "e_SAE_init.r", recomenda-se adicionar um termo de limpeza NA à função Test(dt,x) antes de new.data <- predict(prepr, tail(x, 50)): x <- na.omit(x);
Isso parece uma "muleta", mas ainda não pensei em nada melhor.
Sem isso, ocorrerá um erro oculto:
Error in if (sqrt(denom) > .Machine$double.eps) x/sqrt(denom) else x * : missing value where TRUE/FALSE needed
Durante a depuração de scripts R por um longo tempo, encontrei um bug que é difícil de detectar se os dados de entrada tiverem NA. Ele simplesmente não acionará o sinal. No arquivo "e_SAE_init.r", recomenda-se adicionar um termo de limpeza NA à função Test(dt,x) antes de new.data <- predict(prepr, tail(x, 50)): x <- na.omit(x);
Isso parece uma "muleta", mas ainda não pensei em nada melhor.
Sem isso, ocorrerá um erro oculto:
Error in if (sqrt(denom) > .Machine$double.eps) x/sqrt(denom) else x * : missing value where TRUE/FALSE needed
Essa declaração está incorreta.
Na função Test(dt, x), x é o dado de entrada calculado pela função In(). Vamos dar uma olhada no script "i_SAE_fun.r"
In <- function(p = 16){ require(TTR) adx <- ADX(price, n = p) ar <- aroon(price[ ,c('High', 'Low')], n = p)[ ,'oscillator'] cci <- CCI(price[ ,2:4], n = p) chv <- chaikinVolatility(price[ ,2:4], n = p) cmo <- CMO(price[ ,'Med'], n = p) macd <- MACD(price[ ,'Med'], 12, 26, 9)[ ,'macd'] osma <- macd - MACD(price[ ,'Med'],12, 26, 9)[ ,'signal'] rsi <- RSI(price[ ,'Med'], n = p) stoh <- stoch(price[ ,2:4], 14, 3, 3) smi <- SMI(price[ ,2:4],n = p, nFast = 2, nSlow = 25, nSig = 9) vol <- volatility(price[ ,1:4], n = p, calc="yang.zhang", N=96) In <- cbind(adx, ar, cci, chv, cmo, macd, osma, rsi, stoh, smi, vol) return(In) }Esse é um número de indicadores. Vamos calculá-los no histórico de preço[] com o comprimento de 2000 barras.
Cortamos os dados indefinidos. Condição: nrow(x) > 500 + max(NA). Ou seja, pelo menos em nosso caso, 533. Por segurança, coloque nrow(x) = 600-700.
Não entendo como você obteve um NA incerto em x.
Boa sorte
Olá, Vladimir,
Aqui é do Brasil!!!
Li suas instruções sobre a rede neural usando o R, mas tenho uma pergunta idiota (desculpe, sou novato nisso!)
No tutorial que você escreveu ( https://www.mql5.com/pt/articles/1103#ch_3), na"Seção 3.3.1 - Dados de origem" você descreveu uma função chamada pr.OHLC que eu entendi muito bem.
Mas você mostra alguns resultados que não ficaram claros para mim, quais são os parâmetros necessários para os resultados abaixo
> head(price) Open High Low Close Med CO [1,] 1.33848 1.33851 1.33824 1.33844 1.338375 -4e-05 [2,] 1.33843 1.33868 1.33842 1.33851 1.338550 8e-05 [3,] 1.33849 1.33862 1.33846 1.33859 1.338540 1e-04 [4,] 1.33858 1.33861 1.33856 1.33859 1.338585 1e-05 [5,] 1.33862 1.33868 1.33855 1.33855 1.338615 -7e-05Poderia, por favor, me ajudar com isso?
Com certeza,
Fábio
Olá, Vladimir,
Aqui é do Brasil!!!
Li suas instruções sobre a rede neural usando o R, mas tenho uma pergunta idiota (desculpe, sou novato nisso!)
No tutorial que você escreveu ( https://www.mql5.com/pt/articles/1103#ch_3), na"Seção 3.3.1 - Dados de origem" você descreveu uma função chamada pr.OHLC que eu entendi muito bem.
Mas você mostra alguns resultados que não ficaram claros para mim, quais são os parâmetros necessários para os resultados abaixo
Poderia, por favor, me ajudar com isso?
Com certeza,
Fábio
Oi Fábio,
O que não está claro?
pr.OHLC <- function (o, h, l, c) { #Unite quote vectors into a matrix having previously expanded them #Indexing of time series of vectors in R starts with 1. #Direction of indexing is from old to new ones. price <- cbind(Open = rev(o), High = rev(h), Low = rev(l), Close = rev(c)) Med <- (price[, 2] + price[, 3])/2 #We calculate average price (HIgh + Low)/2 CO <- price[, 4] - price[, 1] # We calculate body candles (Close - Open) #add Med and CO to the matrix price <- cbind(price, Med, CO)#We are putting it all in a matrix }Oi Vladimir,
Existe a possibilidade de ter os arquivos para o MT5?
Meus cumprimentos
Fabio lima
Oi Vladimir,
Existe a possibilidade de ter os arquivos para o MT5?
Meus cumprimentos
Fabio lima
Olá, Fabio,
Desculpe-me.
Não escrevo sobre o MKL5.
Com os melhores cumprimentos
Vladimir
Uma pergunta. Não estou entendendo a ordem do vetor de preços.
Você faz uma reversão aqui: price <- cbind(Open = rev(o), High = rev(h), Low = rev(l), Close = rev(c))
Qual é a ordem original de o,h,l,c?
Uma pergunta. Não estou entendendo a ordem do vetor de preços.
Você faz uma reversão aqui: price <- cbind(Open = rev(o), High = rev(h), Low = rev(l), Close = rev(c))
Qual é a ordem original de o,h,l,c?
Hi,
As barras de numeração do MT4 vão da mais recente para a mais antiga. O R , ao contrário, do antigo para o novo, a nova barra por último.