Pergunta de objectget e objectget valuebyshift - página 2

 
honest_knave:

Olá, por favor, use o botão SRC ao postar o código.

Todo o código em amarelo é OUTRO LADO o loop 'for'.

Portanto, o valor de 'nome' é sempre o nome do objeto final.


Talvez tente isto (presumindo que o preço1 e o preço2 já estão declarados em outro lugar):

Muito obrigado por sua ajuda. Como imprimir para ver o preço1... na revista para ter certeza de que funciona.
 
Rajakumar1:
Muito obrigado por sua ajuda. Como imprimir para ver o preço1... na revista para ter certeza de que funciona.
Da mesma forma que você imprime o nome...
int obj_total = ObjectsTotal();
   string name;
   for(int j = 0; j<obj_total; j++)
     {
      name = ObjectName(j);
      Print(j, "Object - ", name);
      if(ObjectType(name) == OBJ_TREND && name == "Trendline1-m30")
        {
         price1 = ObjectGetValueByShift(name, 0);
         Print("price1: ", price1);
        }

      if(ObjectType(name) == OBJ_TREND && name == "Trendline2-m30")
        {
         price2 = ObjectGetValueByShift(name, 0);
         Print("price2: ", price2);
        }
     }
 
honest_knave:
Da mesma forma que você imprime o nome...
Obrigado. Eu tenho o comando de impressão na EA. Ele não está sendo impresso no diário. Onde ele imprime a saída?
 
Rajakumar1:
Obrigado. Eu tenho o comando de impressão na EA. Não está sendo impresso na revista. Onde ele imprime a saída?

Especialistas (aba à esquerda do Diário)
 
honest_knave:

Especialistas (aba à esquerda do Diário)
Eu tenho uma linha de tendência de desenho indicador. A EA se baseia nas linhas de tendência traçadas pelo indicador. Existe alguma forma de verificar por que não imprime os valores. Estou anexando os arquivos. Desculpe-me por incomodá-lo. Obrigado por sua ajuda.
 
Rajakumar1:
Eu tenho uma linha de tendência de desenho indicador. A EA se baseia nas linhas de tendência traçadas pelo indicador. Existe alguma forma de verificar por que não imprime os valores. Estou anexando os arquivos. Desculpe-me por incomodá-lo. Obrigado por sua ajuda.


Você precisará passar por seu código adicionando declarações de impressão em vários pontos.

Dessa forma, você pode rastrear seu problema.

Você precisa procurar funções que não sejam chamadas, ou valores inesperados de variáveis.

Isso levará algum tempo, mas é algo que você mesmo pode fazer.

Por exemplo, eu tenho um EA com uma variável que aumenta em 1 a cada tick.

Não sei por que às vezes a variável é reajustada para 0


#property strict

int myVariable;

int OnInit()
  {
   myVariable = 0;
   Print(__FUNCTION__, " // myVariable = ", myVariable);
   EventSetTimer(5);
   return(INIT_SUCCEEDED);
  }

void OnTimer()
  {
   myVariable = 0;
   Print(__FUNCTION__, " // myVariable = ", myVariable);
  }

void OnTick()
  {
   myVariable++;
   Print(__FUNCTION__, " // myVariable = ", myVariable);
  }


E a saída:




Posso ver que a myVariable está aumentando 1 a cada tick, mas OnTimer() está zerando de volta a zero.

Agora eu sei onde está o problema.

----

Ou você pode tentar usar a função de depuração incorporada no MetaEditor, embora alguns usuários tenham relatado problemas com isso... YMMV

 
honest_knave:


Você precisará passar por seu código adicionando declarações impressas em vários pontos.

Dessa forma, você pode rastrear seu problema.

Você precisa procurar funções que não sejam chamadas, ou valores inesperados de variáveis.

Isso levará algum tempo, mas é algo que você mesmo pode fazer.

Por exemplo, eu tenho um EA com uma variável que aumenta em 1 a cada tick.

Não sei por que às vezes a variável é reajustada para 0



E a produção:

Obrigado. Devo apagar os arquivos ?.



Posso ver que a myVariable está aumentando em 1 a cada tick, mas OnTimer() está zerando de volta para zero.

Agora eu sei onde está o problema.

----

Ou você pode tentar usar a função de depuração incorporada no MetaEditor, embora alguns usuários tenham relatado problemas com isso... YMMV

 
Rajakumar1:
Obrigado. Devo apagar os arquivos.
 
Rajakumar1:
Obrigado. Devo apagar os arquivos.


Essa é sua decisão - há quase 800 linhas de código entre esses 2 indicadores... alguém pode ter tempo para analisá-los para você.

Mas você mesmo pode conseguir uma solução mais rápida diminuindo o problema primeiro.

Boa sorte.


 
honest_knave:


Essa é sua decisão - há quase 800 linhas de código entre esses 2 indicadores... alguém pode ter tempo para passar por ela para você.

Mas você mesmo pode conseguir uma solução mais rápida diminuindo o problema primeiro.

Boa sorte.


Muito obrigado por sua ajuda. Alguma área onde procurar primeiro? O Meta editor mostra apenas avisos. Sem erros.

Razão: