Pregunta sobre objectget y objectgetvaluebyshift - página 3

 
Rajakumar1:

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


Bien, si el indicador está funcionando / dibujando las líneas de tendencia como esperas, céntrate en el EA.

Si las declaraciones de impresión no se muestran, los objetos no existen. ¿Tienes el indicador añadido al gráfico al mismo tiempo que ejecutas el EA?

Si no puede ver las líneas en el gráfico, el EA no va a funcionar.

 
honest_knave:


Bien, si el indicador está funcionando / dibujando las líneas de tendencia como esperas, céntrate en el EA.

Si las declaraciones de impresión no se muestran, los objetos no existen. ¿Tiene el indicador añadido al gráfico al mismo tiempo que ejecuta el EA?

Si no puedes ver las líneas en el gráfico, el EA no va a funcionar.

Gracias. El indicador funciona bien. Me pregunto por qué los objetos no son visibles para el EA. La lista de objetos del gráfico muestra todas las líneas de tendencia.
 
Rajakumar1:
Gracias. El indicador funciona bien. Me pregunto por qué los objetos no son visibles para la EA. La lista de objetos del gráfico muestra todas las líneas de tendencia.


Intente reemplazar todo esto:

   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);
      }

      if(ObjectType(name) == OBJ_TREND && name == "Trendline3-m30")
      {
       price3 = ObjectGetValueByShift(name, 0);
       Print("price3:  ", price3);
      }

      if(ObjectType(name) == OBJ_TREND && name == "Trendline4-m30")
      {
       price4 = ObjectGetValueByShift(name, 0);
       Print("price4:  ", price4);
      }

      if(ObjectType(name) == OBJ_TREND && name == "Trendline5-m30")
      {
       price5 = ObjectGetValueByShift(name, 0);
       Print("price5:  ", price5);
      }

      if(ObjectType(name) == OBJ_TREND && name == "Trendline6-m30")
      {
      price6 = ObjectGetValueByShift(name, 0);
      Print("price6:  ", price6);
      }

      if(ObjectType(name) == OBJ_TREND && name == "Trendline7-m30")
      {
       price7 = ObjectGetValueByShift(name, 0);
       Print("price7:  ", price7);
      }

      if(ObjectType(name) == OBJ_TREND && name == "Trendline8-m30")
      {
       price8 = ObjectGetValueByShift(name, 0);
       Print("price8:  ", price8);
      }
     }

Con esto:

   string name = "Trendline1-m30";
   if(ObjectFind(0,name)<0) Print("Error: cannot find ", name);
   else price1 = ObjectGetValueByShift(name, 0);

   name = "Trendline2-m30";
   if(ObjectFind(0,name)<0) Print("Error: cannot find ", name);
   else price2 = ObjectGetValueByShift(name, 0);

   name = "Trendline3-m30";
   if(ObjectFind(0,name)<0) Print("Error: cannot find ", name);
   else price3 = ObjectGetValueByShift(name, 0);

   name = "Trendline4-m30";
   if(ObjectFind(0,name)<0) Print("Error: cannot find ", name);
   else price4 = ObjectGetValueByShift(name, 0);
   
   name = "Trendline5-m30";
   if(ObjectFind(0,name)<0) Print("Error: cannot find ", name);
   else price5 = ObjectGetValueByShift(name, 0);
   
   name = "Trendline6-m30";
   if(ObjectFind(0,name)<0) Print("Error: cannot find ", name);
   else price6 = ObjectGetValueByShift(name, 0);   

   name = "Trendline7-m30";
   if(ObjectFind(0,name)<0) Print("Error: cannot find ", name);
   else price7 = ObjectGetValueByShift(name, 0);
   
   name = "Trendline8-m30";
   if(ObjectFind(0,name)<0) Print("Error: cannot find ", name);
   else price8 = ObjectGetValueByShift(name, 0);
 
honest_knave:


Intenta reemplazar todo esto:

Con esto:

Gracias. La función de impresión no está imprimiendo el precio. La lista de objetos del gráfico muestra todas las líneas de tendencia y también están en el gráfico. He añadido "Print("precio1: ", precio1);" después de la primera línea de tendencia.
 
Rajakumar1:
Gracias. La función de impresión no está imprimiendo el precio. La lista de objetos del gráfico muestra todas las líneas de tendencia y también están en el gráfico. He añadido "Print("precio1: ", precio1);" después de la primera línea de tendencia.


Sí, el código que proporcioné sólo imprime si hay un problema.

¿Ve algún mensaje en el registro de expertos?

Por ejemplo, "Error: no se puede encontrar la línea de tendencia 1-m30".

 
Rajakumar1:
Gracias. La función de impresión no está imprimiendo el precio. La lista de objetos del gráfico muestra todas las líneas de tendencia y también están en el gráfico. He añadido "Print("precio1: ", precio1);" después de la primera línea de tendencia.

Muchas gracias. Ahora funciona. El problema es con el comercio automático desactivado.

 
Rajakumar1:

Muchas gracias. Ahora funciona. El problema es con el comercio automático desactivado.


 
honest_knave:


Sí, el código que proporcioné sólo imprime si hay un problema.

¿Ve algún mensaje en el registro de expertos?

¿Por ejemplo, "Error: no se puede encontrar la línea de tendencia 1-m30"?

Muchas gracias. Ahora funciona. El problema es con el auto trading desactivado.
 
Rajakumar1: Ahora funciona. El problema es con el auto trading desactivado.
  1. El problema por el que preguntas no tiene nada que ver con la desactivación de las operaciones automáticas.
  2. Comprueba tus códigos de retorno (OrderSend) y averigua por qué.¿Qué son los valores de retorno de las funciones? ¿Cómo los utilizo? -Foro MQL4 y Errores comunes en los programas MQL4 y cómo evitarlos - Artículos MQL4
 
Hola chicos, me gustaría llamar al indicador por doble iCustom(Symbol(), 0, jebatfx-breakout-trendline, Price_close, 0, 1);

Para obtener la línea de tendencia alta y la línea de tendencia baja en mi ea.

Cuando el precio lo rompe, toma un comercio.

He conseguido mi ea pero no puedo obtener el alto y el bajo .


¿Crees que podría utilizar ObjectGetValueByShift() para definirlo? Gracias
Razón de la queja: