Não consigo fazer funcionar o ChartSetSymbolPeriod para mudar o tempo gráfico.

 

Olá a todos. Primeiramente me desculpem se estiver postando em lugar errado.

Estou usando MQL5 e MT5. Crio o codigo do robo no Metaeditor, compilo e executo com CTRL + F5.
Meu robo roda em WINV19 e nas configurações o periodo configurado é de um minuto. 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Resolvi incluir no código a seguinte configuração, onde posso escolher o periodo.
input ENUM_TIMEFRAMES tempo_grafico        = PERIOD_CURRENT;  // Escolha o tempo Gráfico
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

no OnINit, coloquei este código.

int OnInit()

  {
  Print("ID CHART:",ChartID());
  Print("Tempo   :",ChartPeriod(ChartID()));
  ChartSetSymbolPeriod(ChartID(),Symbol(),tempo_grafico);
  Print("Tempo   :",ChartPeriod(ChartID()));
   return(INIT_SUCCEEDED);

  }

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

compilo e executo com CTRL + F5, ele executa o MT e abre um grafico com o robo rodando no tempo 1 minuto, porque o grafico esta em 1 minuto.

Fecho a tela do grafico, vou no MT, nos parametros de entrada do ROBO e coloco o tempo grafico de 5 minutos.
Executo o robo e ele abre o grafico de um minuto ainda.
Se fechar tudo, compilar e rodar, os parametros estão 5 minutos. Mas o grafico só abre 1 minuto.

Alguém pode me ajudar? Já pesquisei até site japones.... Tô há 15 dias nisso. 

Grato e sucesso a todos.

 
wilsonfrabelo:


Boa tarde,

tem uma confusão aí:  Rodar um EA com  CTRL+F5 é iniciar o depurador em modo histórico isso não faz sentido. Acho que quis dizer F5, ou seja rodar o depurador com dados reais, bom aí já faz sentido.  Entretanto rodar um EA significa plugar o EX5 na gráfico de preços de um ativo e foi o que eu fiz e tá funcionando corretamente.

 
wilsonfrabelo:

Olá a todos. Primeiramente me desculpem se estiver postando em lugar errado.

Estou usando MQL5 e MT5. Crio o codigo do robo no Metaeditor, compilo e executo com CTRL + F5.
Meu robo roda em WINV19 e nas configurações o periodo configurado é de um minuto. 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Resolvi incluir no código a seguinte configuração, onde posso escolher o periodo.
input ENUM_TIMEFRAMES tempo_grafico        = PERIOD_CURRENT;  // Escolha o tempo Gráfico
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

no OnINit, coloquei este código.

int OnInit()

  {
  Print("ID CHART:",ChartID());
  Print("Tempo   :",ChartPeriod(ChartID()));
  ChartSetSymbolPeriod(ChartID(),Symbol(),tempo_grafico);
  Print("Tempo   :",ChartPeriod(ChartID()));
   return(INIT_SUCCEEDED);

  }

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

compilo e executo com CTRL + F5, ele executa o MT e abre um grafico com o robo rodando no tempo 1 minuto, porque o grafico esta em 1 minuto.

Fecho a tela do grafico, vou no MT, nos parametros de entrada do ROBO e coloco o tempo grafico de 5 minutos.
Executo o robo e ele abre o grafico de um minuto ainda.
Se fechar tudo, compilar e rodar, os parametros estão 5 minutos. Mas o grafico só abre 1 minuto.

Alguém pode me ajudar? Já pesquisei até site japones.... Tô há 15 dias nisso. 

Grato e sucesso a todos.

O ChartSetSymbolPeriod() reinicia tudo no gráfico, inclusive reinicia do zero seu robô, que usará o parâmetro tempo_grafico como está definido no programa: PERIOD_CURRENT, e ainda, reexecutando o próprio ChartSetSymbolPeriod().

Nem sei como não entrou em loop...

Este é o tipo de inconsistência que vc encontra no MQL5... O que parece óbvio e lógico, jamais o é no MQL...

;)

;)

 
Rogerio Giannetti Torres:

Boa tarde,

tem uma confusão aí:  Rodar um EA com  CTRL+F5 é iniciar o depurador em modo histórico isso não faz sentido. Acho que quis dizer F5, ou seja rodar o depurador com dados reais, bom aí já faz sentido.  Entretanto rodar um EA significa plugar o EX5 na gráfico de preços de um ativo e foi o que eu fiz e tá funcionando corretamente.

Realmente. Você está correto amigo.

Estava usando Ctrl F5. Debugando o programa. 
Funciona normalmente.
Muito obrigado. Problema resolvido.

 
Flavio Jarabeck:

O ChartSetSymbolPeriod() reinicia tudo no gráfico, inclusive reinicia do zero seu robô, que usará o parâmetro tempo_grafico como está definido no programa: PERIOD_CURRENT, e ainda, reexecutando o próprio ChartSetSymbolPeriod().

Nem sei como não entrou em loop...

Este é o tipo de inconsistência que vc encontra no MQL5... O que parece óbvio e lógico, jamais o é no MQL...

;)

;)

Obrigado por lembrar Flavio.
Vi a citação a esse problema quando pesquisava sobre o assunto.
Vou pesquisar melhor agora.
Muito obrigado.
Razão: