Discussão do artigo "Redes Neurais Profundas (Parte I). Preparando os Dados" - página 2

 

Finalmente traduzido para o chinês, e digno de um estudo cuidadoso de bons artigos!

 

Olá!

Você não descreveu como carregou as citações no ambiente env ("Since we have loaded vectors of quotes into the env...) e como você o criou.

Estou tentando repetir tudo desde o início manualmente com minhas citações, descarreguei-as em vetores, mas me deparei com esse ambiente que você criou. Não entendo como criá-lo e repeti-lo de acordo com seu exemplo.

Ajuda.

 

A mensagem desapareceu.

Como você transfere as citações para o Rterm? Você lê de um arquivo ou do terminal?

 
Vladimir Perervenko:

A mensagem desapareceu.

Como você transfere as citações para o Rterm? Você lê de um arquivo ou do terminal?


Eu mesmo já descobri mais ou menos isso. Experimentei sua Parte 1 sobre cotações EURUSD e tudo funcionou.

Eu faço o seguinte:

1. NO MT4 -

for(i = 0; i < lim; i++)

{

tm[i] = Time[i+1];

o[i] = Open[i+1];

hi[i] = High[i+1];

lo[i] = Low[i+1];

clo[i]= Close[i+1];

vol[i]= Volume[i+1];


}

//--------Envie dados para o Rterm--------------------------------------

Rv(R, "Data",tm);

Rv(R, "Open",o);

Rv(R, "High",hi);

Rv(R, "Low",lo);

Rv(R, "Close",clo);

Rv(R, "Volume",vol);

2. IN R -.

price_orig <- cbind(Close = rev(Close), Data = rev(Data), High = rev(High), Low = rev(Low), Open = rev(Open), Volume = rev(Volume) )

price1 <- data.frame(price_orig)

price2 <- as.list(price1)


env <- new.env()

atribuir("Fechar", price1$Close, env)

atribuir("Data", price1$Data, env)

atribuir("High", price1$High, env)

atribuir("Low", price1$Low, env)

atribuir("Open", price1$Open, env)

atribuir("Volume", price1$Volume, env)

Dig <- 5;

sym <- "EURUSD";

tf <- "M15";


evalq({pr <- pr.OHLCV(Data, Open, High, Low, Close, Volume)}, env)


Não foi possível executar gráficos no MT4, não passa evalq, %>%, aes, geom_candlestick :

Rx(R, "evalq(pr %>% tail(., 500) %>%

ggplot(aes(x = Data, y = Close)) +

geom_candlestick(aes(open = Open, high = High, low = Low, close = Close)) +

labs(title = "EURJPY Candlestick Chart", y = "Close Price", x = "") +

theme_tq(), env)")");

Tentei da maneira antiga, sem a variável de ambiente env, descarreguei os dados, o comando ggplot(,) é iniciado e a janela do gráfico é aberta. Com parâmetros, não dá.

 
Konstantin Kopylov:

Eu mesmo já descobri mais ou menos o que fazer. Experimentei sua Parte 1 sobre cotações EURUSD e tudo funcionou.

Eu faço o seguinte:

1. NO MT4 -

for(i = 0; i < lim; i++)

{

tm[i] = Time[i+1];

o[i] = Open[i+1];

hi[i] = High[i+1];

lo[i] = Low[i+1];

clo[i]= Close[i+1];

vol[i]= Volume[i+1];


}

//--------Envie dados para o Rterm--------------------------------------

Rv(R, "Data",tm);

Rv(R, "Open",o);

Rv(R, "High",hi);

Rv(R, "Low",lo);

Rv(R, "Close",clo);

Rv(R, "Volume",vol);

2. IN R -.

price_orig <- cbind(Close = rev(Close), Data = rev(Data), High = rev(High), Low = rev(Low), Open = rev(Open), Volume = rev(Volume) )

price1 <- data.frame(price_orig)

price2 <- as.list(price1)


env <- new.env()

atribuir("Fechar", price1$Close, env)

atribuir("Data", price1$Data, env)

atribuir("High", price1$High, env)

atribuir("Low", price1$Low, env)

atribuir("Open", price1$Open, env)

atribuir("Volume", price1$Volume, env)

Dig <- 5;

sym <- "EURUSD";

tf <- "M15";


evalq({pr <- pr.OHLCV(Data, Open, High, Low, Close, Volume)}, env)


Não foi possível executar gráficos no MT4, não passa evalq, %>%, aes, geom_candlestick :

Rx(R, "evalq(pr %>% tail(., 500) %>%

ggplot(aes(x = Data, y = Close)) +

geom_candlestick(aes(open = Open, high = High, low = Low, close = Close)) +

labs(title = "EURJPY Candlestick Chart", y = "Close Price", x = "") +

theme_tq(), env)")");

Tentei da maneira antiga, sem a variável de ambiente env, descarreguei os dados, o comando ggplot(,) é iniciado e a janela do gráfico é aberta. Com parâmetros, não dá.

Bom dia.

Essa transferência do terminal é desnecessária. Você carrega no ambiente global e depois transfere para o ambiente env. Depois disso, você terá que limpar o ambiente global. O objetivo de carregar e processar dados em um ambiente separado é evitar conflito de nomes ao usar vários TFs de um símbolo ou de vários símbolos. Todos eles são processados pelos mesmos scripts e os dados de origem e os resultados têm os mesmos nomes, mas cada um em seu próprio ambiente. Precisamos fazer isso:

Em Init().

Rx(R, "env <- new.env()");

//Aqui pode ser qualquer símbolo, por exemplo, EURUSD <- new.env(). Em seguida, os dados serão acessados de acordo com EURUSD$price.

Em start().

 //--------Envie dados para o Rterm--------------------------------------

      Rv(R,"env$Data",tm);

      Rv(R,"env$Open",o);

      Rv(R,"env$High",hi);

      Rv(R,"env$Low",lo);

      Rv(R,"env$Close",clo);

      Rv(R,"env$Volume",vol);

Os dados entrarão imediatamente em um ambiente separado env. E, posteriormente, trabalharemos com eles por meio de evalq().

evalq({pr <- pr.OHLCV(Data, Open, High, Low, Close, Volume)}, env)

Tente fazer isso com gráficos:

Rx(R,"env$pr %>% tail(., 500) %>%

        ggplot(aes(x = env$Data, y = env$Close)) +

        geom_candlestick(aes(open = env$Open, high = env$High, low = env$Low, close = env$Close)) +

        labs(title = "EURJPY Candlestick Chart", y = "Close Price", x = "") + 

        theme_tq()");

Eu não produzo gráficos dessa forma. Por favor, escreva-me como você verificou isso.

Boa sorte

 
Vladimir Perervenko:

Boa tarde.

Essa transferência do terminal é desnecessária. Você carrega no ambiente global e depois transfere para o ambiente env. Depois disso, você terá que limpar o ambiente global. O objetivo de carregar e processar dados em um ambiente separado é evitar conflito de nomes ao usar vários TFs de um símbolo ou de vários símbolos. Todos eles são processados pelos mesmos scripts e os dados de origem e os resultados têm os mesmos nomes, mas cada um em seu próprio ambiente. Precisamos fazer isso:

Em Init().

Rx(R, "env <- new.env()");

//Aqui pode ser qualquer símbolo, por exemplo, EURUSD <- new.env(). Em seguida, os dados serão acessados de acordo com EURUSD$price.

Em start().

Os dados entrarão imediatamente em um ambiente separado env. E, posteriormente, trabalharemos com eles por meio de evalq().

Tente fazer isso com gráficos:

Eu não produzo gráficos dessa forma. Por favor, escreva-me como você verificou isso.

Boa sorte


Tudo funcionou com o upload. Obrigado!

Mas com o gráfico, não funciona. Ele apresenta um erro. Embora as bibliotecas estejam carregadas.

Rx(R, "library(magrittr)");

Rx(R, "library(dplyr)");

Rx(R, "library(xts)");

Rx(R, "library(anytime)");

Rx(R, "library(quantmod)");

Rx(R, "library(TTR)");

Rx(R, "library(ggplot2)");


Verifiquei a mesma coisa no RStudio, ele não encontra %>%.( Erro em env$pr %>% tail(., 500) %>% ggplot(aes(x = env$Data, y = env$Close)) :

 não foi possível encontrar a função "%>%")
 
Konstantin Kopylov:

Tudo deu certo com o upload. Obrigado!

Mas com o gráfico, não está funcionando. Ele apresenta um erro. Embora as bibliotecas estejam carregadas.

Rx(R, "library(magrittr)");

Rx(R, "library(dplyr)");

Rx(R, "library(xts)");

Rx(R, "library(anytime)");

Rx(R, "library(quantmod)");

Rx(R, "library(TTR)");

Rx(R, "library(ggplot2)");


Verifiquei a mesma coisa no RStudio, ele não encontra %>%.( Erro em env$pr %>% tail(., 500) %>% ggplot(aes(x = env$Data, y = env$Close)) :

Nesse script, %>% está fora do lugar. Tente

Rx(R,"env$pr %>% tail(., 500) -> tpr;

        ggplot(aes(x = tpr$Data, y = tpr$Close)) +

        geom_candlestick(aes(open = tpr$Open, high = tpr$High, low = tpr$Low, close = tpr$Close)) +

        labs(title = "EURJPY Candlestick Chart", y = "Close Price", x = "") + 

        theme_tq()");

É melhor escrever tudo isso no R em vez de no terminal. Não tenho certeza se essa combinação funcionará. Não escrevo dessa forma há muito tempo, portanto, não tenho opinião.

Boa sorte

 
Vladimir Perervenko:

Nesse script, %>% está fora do lugar. Experimente


O erro não funciona, tanto no MT4 quanto no RStudio:

> env$pr %>% tail(., 500) -> tpr> 
> ggplot(aes(x = tpr$Data, y = tpr$Close)) + + +    
 + geom_candlestick(aes(open = tpr$Open, high = tpr$High, low = tpr$Low, close = tpr$Close)) + + +    
 + labs(title = "EURJPY Candlestick Chart", y = "Close Price", x = "") + ++     
 + theme_tq()Error:O ggplot2 não sabe como lidar com dados da classe uneval

Então inserido no MQL Rx(R, "env$pr %>% tail(., 500) -> tpr"); Rx(R, "ggplot(aes(x = tpr$Data, y = tpr$Close)) + geom_candlestick(aes(open = tpr$Open, high = tpr$High, low = tpr$Low, close = tpr$Close)) + labs(title = 'EURUSD Candlestick Chart', y = 'Close Price', x = '') + theme_tq())");

 
Konstantin Kopylov:

Não funciona, erro tanto no MT4 quanto no RStudio:

Algo foi melhorado no ggplot2. Vou verificar agora.
 

No ggplot2 (v2.2.1), a definição de geom_candlestick (MRO 3.4.1) desapareceu.

Já desmontei o MRO 3.4.0, no qual fiz todos os cálculos, então encontrarei uma solução amanhã e escreverei.

Que versão do R você tem?