Pregunta sobre objectget y objectgetvaluebyshift - página 2

 
honest_knave:

Hola, por favor utilice el botón SRC cuando publique el código.

Todo el código en amarillo está FUERA del bucle 'for'.

Así que el valor de 'nombre' es siempre el nombre del objeto final.


Tal vez intente esto (suponiendo que precio1 y precio2 ya están declarados en otro lugar):

Muchas gracias por tu ayuda. Cómo imprimir para ver el precio1... en el diario para asegurarse de que funciona.
 
Rajakumar1:
Muchas gracias por su ayuda. Cómo imprimir para ver el precio1... en el diario para asegurarse de que funciona.
De la misma manera que se imprime el nombre...
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:
De la misma manera que imprimes el nombre...
Gracias. Tengo el comando de impresión en el EA. No se imprime en el diario. ¿Dónde se imprime la salida?
 
Rajakumar1:
Gracias. Tengo el comando de impresión en el EA. No se imprime en el diario. ¿Dónde se imprime la salida?

Expertos (pestaña a la izquierda del Diario)
 
honest_knave:

Expertos (pestaña a la izquierda del Diario)
Tengo un indicador que dibuja una línea de tendencia. El EA se basa en las líneas de tendencia dibujadas por el indicador. ¿Hay alguna forma de comprobar por qué no imprime los valores? Adjunto los archivos. Perdonen las molestias. Gracias por su ayuda.
 
Rajakumar1:
Tengo un indicador que dibuja la línea de tendencia. El EA se basa en las líneas de tendencia dibujadas por el indicador. ¿Hay alguna forma de comprobar por qué no se imprimen los valores? Adjunto los archivos. Perdonen las molestias. Gracias por su ayuda.


Tendrás que revisar tu código añadiendo sentencias Print en varios puntos.

De este modo, podrá localizar su problema.

Tienes que buscar las funciones que no se llaman, o los valores inesperados de las variables.

Te llevará algo de tiempo, pero es algo que puedes hacer tú mismo.

Por ejemplo, tengo un EA con una variable que aumenta en 1 cada tick.

No sé por qué a veces la variable se reinicia a 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);
  }


Y la salida:




Puedo ver que la miVariable está aumentando en 1 cada tick, pero OnTimer() la vuelve a poner a cero.

Ahora sé dónde está el problema.

----

O puedes intentar usar la función de depuración incorporada en el MetaEditor, aunque algunos usuarios han reportado problemas con eso... YMMV

 
honest_knave:


Usted tendrá que ir a través de su código añadiendo declaraciones de impresión en varios puntos.

De este modo, podrá localizar su problema.

Tienes que buscar las funciones que no se llaman, o los valores inesperados de las variables.

Te llevará algo de tiempo, pero es algo que puedes hacer tú mismo.

Por ejemplo, tengo un EA con una variable que aumenta en 1 cada tick.

No sé por qué a veces la variable se reinicia a 0



Y la salida:

Gracias. ¿Debo borrar los archivos?



Veo que miVariable se incrementa en 1 cada tick, pero OnTimer() la vuelve a poner a cero.

Ahora sé dónde está el problema.

----

O puedes intentar usar la función de depuración incorporada en el MetaEditor, aunque algunos usuarios han reportado problemas con ella... YMMV

 
Rajakumar1:
Gracias. ¿Debo borrar los archivos?
 
Rajakumar1:
Gracias. ¿Debo borrar los archivos?


Esa es tu decisión - hay casi 800 líneas de código entre esos 2 indicadores... alguien puede tener el tiempo para revisarlo por ti.

Pero es posible que obtengas una solución más rápida reduciendo el problema tú mismo primero.

Buena suerte


 
honest_knave:


Esa es su decisión - hay casi 800 líneas de código entre esos 2 indicadores... alguien puede tener el tiempo para revisarlo por usted.

Pero es posible que consigas una solución más rápida acotando el problema tú mismo primero.

Buena suerte


Muchas gracias por su ayuda. ¿Alguna área donde buscar primero?. El editor de Meta muestra sólo advertencias. No hay errores.

Razón de la queja: