Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1793

 
Nerd Trader #:
Sí, de hecho, tanto como 8 piezas, pero el gráfico no muestra que el precio es 0 no importa, la línea todavía se aferra al cursor (lo sigue)

No utilice ObjectDelete porque la línea se escapa a "0" cada vez

mejor
      ObjectSetString(0,"line 1",OBJPROP_NAME,line_name);
      ObjectSetInteger(0,line_name,OBJPROP_COLOR,clrRed);
 
MakarFX #:

No utilice ObjectDelete porque la línea se escapa a "0" cada vez

mejor
Tengo la opción de renombrar y sí funciona. En el caso de ObjectDelete(), ¿por qué las líneas verdes y rojas se crean en una sola instancia y no parpadean? Y la línea amarilla (Stop Loss) si ya está ahí es porque prolifera infinitamente cuando está por debajo del Bid?
 

0 significa falso. Todo lo que no sea 0 esverdadero. Pero, ¿alguien ha pensado en la legibilidad de ese código, en el que se mezclan todo tipo de condiciones?

if(!ObjectFind("Buy Stop"))

No es un valor booleano. Pero se puede convertir fácilmente en un booleano:

bool objectExist(const long _chartID, const string _name) { return(ObjectFind(_chartID, _name) >= 0); } // чётко определим условие существования объекта!
if (!objectExist(0, "Buy stop"))
  Print("Error! Object not found.")

Por lo tanto, lo principal es tener el enfoque correcto para la escritura de código. Entoncesnunca tendrás esos problemas.

 
Nerd Trader #:
Tengo la opción de renombrar y sí funciona. En el caso de ObjectDelete() ¿por qué las líneas verdes y rojas se crean en una instancia y no parpadean? Y la línea amarilla, si ya tiene una, ¿por qué se sigue multiplicando infinitamente?

Estas líneas están bajo su control.

if(id==CHARTEVENT_OBJECT_CLICK){

Y las líneas que parpadean reaccionan a cualquier OnChartEvent, porque

if(ObjectGetInteger(0,"Button Stop Order",OBJPROP_STATE))
 
Mihail Matkovskij #:

0 significa falso. Todo lo que no sea 0 esverdadero. Pero, ¿alguien ha pensado en la legibilidad de ese código, en el que se mezclan todo tipo de condiciones?

No es un valor booleano. Pero se puede convertir fácilmente en un booleano:

Por lo tanto, lo principal es tener el enfoque correcto para la escritura de código. Entoncesnunca tendrás esos problemas.

return(ObjectFind(_chartID, _name) >= 0)

¿Y si el objeto es "0" en la ventana principal, devolverá false?

 
MakarFX #:

Y las líneas que parpadean reaccionan a cualquier OnChartEvent, porque.

Le dije: Botón pulsado - crear línea, botón soltado - borrar (lo mismo con otros tipos de objetos que se pueden enlazar). Pero él dijo: no es nada, lo haré todo "normalmente". :)

 
Nerd Trader #:

¿Y si el objeto es "0" en la ventana principal, devolverá false?

Eso es lo que puede vencer su reticencia a leer la documentación.

https://www.mql5.com/ru/docs/objects/objectfind

https://docs.mql4.com/ru/objects/objectfind

Valor de retorno

Si tiene éxito, la función devuelve el número de la subventana (0 significa ventana del gráfico principal) donde se encuentra el objeto encontrado. Si no se encuentra ningún objeto, la función devuelve un número negativo. Para obtener más información sobreel error, llame a la funciónGetLastError().

Документация по MQL5: Графические объекты / ObjectFind
Документация по MQL5: Графические объекты / ObjectFind
  • www.mql5.com
ObjectFind - Графические объекты - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
MakarFX #:

Estas líneas están bajo su control.

Y las líneas que parpadean reaccionan a cualquier OnChartEvent, porque

así como la línea verde, en general todas las líneas también reaccionan al movimiento del cursor. Acabo de darme cuenta de que las tres líneas se crean en el área de spread porque la línea amarilla "Sell Stop" tiene la condición if(price > Ask) para la línea verde "Buy Stop" (price < Bid) y para la línea gris "not allowed"(price > Bid && price < Ask )
 
Nerd Trader #:

¿Y si el objeto es "0" en la ventana principal, devolverá false?

bool FindObject(string name)
  {
   if(ObjectFind(0,name)) return(false);
   return(true);
  }
 
Mihail Matkovskij #:

Le dije: Botón pulsado - crear línea, botón soltado - borrar (lo mismo con otros tipos de objetos a los que se puede adjuntar). Pero él dijo: no es nada, lo haré bien. :)

¿Te refieres al cambio de color a través de la propiedad? Tengo esa opción, necesito entender por qué no funciona.

Mihail Matkovskij #:

Aquí hay algo que puede vencer tu falta de voluntad para leer la documentación...

https://www.mql5.com/ru/docs/objects/objectfind

https://docs.mql4.com/ru/objects/objectfind

Entonces, ¿qué pasa cuando el objeto de la ventana principal es "0" su función devolverá false? Explica el punto con >= 0... o igual a cero
Razón de la queja: