Plot de linha no último candle aparece vertical

 

Pessoal, continuando com os estudos em MQL5. Criei o seguinte handle:


   int copied = CopyBuffer(handle_iCustom,0,0,rates_total,bufferiCustom);

   if (prev_calculated != 0) index = prev_calculated-1;
   for(int i=index;i<rates_total;i++)
   {
      if (copied == 0 || copied == -1)
      {
         Print("Não consegui copiar os dados do indicador!");


Ele plota normal, exceto pelo último candle. Exatamente no último candle a linha fica plotada de forma "VERTICAL". Alguém sabe explicar por que isso acontece?


 
b2tradingclub:

Pessoal, continuando com os estudos em MQL5. Criei o seguinte handle:



Ele plota normal, exceto pelo último candle. Exatamente no último candle a linha fica plotada de forma "VERTICAL". Alguém sabe explicar por que isso acontece?


Provavelmente esta sendo atribuido zero o valor pra linha e isso faz ela despencar. Aprender a usar o depurador é necessário quando programando.

 
Seguindo a ideia do Ricardo, o valor atribuído não pode ser 0, precisa ser EMPTY_VALUE, se não a linha descerá como na foto até a região do 0
 

Olá Ricardo, tudo bem? A depuração está sendo feita com uso do Print(). Não sei se é a forma mais adequada de depurar. Se houver outras ferramentas para isso, poderia indicar qual?

Com relação a plotagem, eu descobri o problema depois de muita tentativa e erro. Acho interessante colocar aqui para que outros possam entender esse funcionamento do iCustom. Vamos lá... Bem, no indicador que estou chamando no iCustom, ele possui vários inputs de entrada e alguns desses inputs são do tipo GROUP (input group "Nome do Grupo"). O que aconteceu foi que eu não estava passando valor algum na posição desse input, o que acabava por definir o restante dos parâmetros todos errados. Basicamente, sempre que você chamar um indicador com iCustom e ele tiver na janela de propriedades input group, passe um valor zerado na posição dele. Bem, isso resolveu o meu problema.

 
b2tradingclub #:

Olá Ricardo, tudo bem? A depuração está sendo feita com uso do Print(). Não sei se é a forma mais adequada de depurar. Se houver outras ferramentas para isso, poderia indicar qual?

Com relação a plotagem, eu descobri o problema depois de muita tentativa e erro. Acho interessante colocar aqui para que outros possam entender esse funcionamento do iCustom. Vamos lá... Bem, no indicador que estou chamando no iCustom, ele possui vários inputs de entrada e alguns desses inputs são do tipo GROUP (input group "Nome do Grupo"). O que aconteceu foi que eu não estava passando valor algum na posição desse input, o que acabava por definir o restante dos parâmetros todos errados. Basicamente, sempre que você chamar um indicador com iCustom e ele tiver na janela de propriedades input group, passe um valor zerado na posição dele. Bem, isso resolveu o meu problema.

O Print() é mais arcaico porque é quase como se não tivesse nenhuma ferramenta de depuração. Eu uso pra coisas pontuais. Junto do editor do mql, voce pode definir breakpoints e pra executar dentro do testador (não lembro se tem como executar no mercado ao vivo, se alguem souber). Isso da mais liberdade porque voce pode verificar todas as variaveis que estão localmente visiveis se assim quiser e verificar a evolução delas conforme as coisas vão sendo feitas.

Legal que foi algo simples e voce mesmo trouxe a solução.