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

 
Alexey Viktorov:

Es fácil de añadir a la condición.

O == 0, más probablemente. O mejor utilizar la búsqueda del objeto por su nombre, si no existe tal objeto, entonces crear uno. Y no importa si se hace clic en el botón o no.

Lo hice, pero
OBJPROP_STATE

Sigue cambiando cuando se hace clic en el botón.

Hasta ahora, lo he resuelto así

   if(ObjectGet("OrderBuy: "+Symbol(),OBJPROP_PRICE1)!=0)
      {
      Sleep(1);
      name="Button 3";
      ObjectSetInteger(0,name,OBJPROP_STATE,true);
      return;
      }
 
Николай Никитюк:

Hola. 2020.10.28_05:19:00 GMT+3. He traducido el indicador LeManTrend_Indicator.mq5 a la cuarta versión .mq4 .

¿Has construido el indicador? Lo construí, parece ser el mismo - Sólo tengo que descargar este indicadorhttps://www.mql5.com/ru/code/9096

BrainTrend1Sig LeManTrend

LeManTrend
LeManTrend
  • www.mql5.com
Индикатор определяет положение тренда на основе текущей цены и максимальных и минимальных цен за три периода.
Archivos adjuntos:
 
MakarFX:
Lo hice, pero

sigue cambiando cuando se pulsa

Hasta ahora lo he resuelto así.

¿Cuál es el problema general?

 
Alexey Viktorov:

¿Cuál es la tarea general?

Al hacer clic en el botón, el objeto se crea y el botón recibe
ObjectSetInteger(0,"Button 3",OBJPROP_STATE,true);

Si hay un objeto, se pulsa el botón y se pone

OBJPROP_STATE,false

y es necesario mantenerlo como verdadero mientras haya un objeto en el gráfico

 
MakarFX:
Cuando se hace clic en el botón se crea el objeto y el botón recibe

si hay un objeto, pulsas el botón y se pone

y mantenerlo verdadero mientras haya un objeto en el gráfico.

Entonces sólo hay que devolver la propiedad antes de dibujar

   //--- обработка кнопки Создать трендовую линию Buy
   if(sparam=="Button 3")
      {

   if(ObjectGet("OrderBuy: "+Symbol(),OBJPROP_PRICE1)!=0)// Это лучше заменить на if(ObjectFind(ChartID(), "OrderBuy: "+Symbol()) >= 0);
     ObjectSetInteger(0,"Button 3",OBJPROP_STATE,true);
      if(trigger_greateB==true)
         {
         Sleep(100);//А это зачем???
         trigger_greateB=false;
         ObjectSetInteger(0,"Button 3",OBJPROP_STATE,true);
         //--- Определяем координаты
         ChartXYToTimePrice(0,xn,yn+20,window,dt_1,price_1);
         ChartXYToTimePrice(0,xn+100,yn-20,window,dt_2,price_2);
         //--- Создаем трендовую линию Buy
         TrendCreate(0,("OrderBuy: "+Symbol()),0,dt_1,price_1,dt_2,price_2,ColorUP,0,1,false,true,false,false,0);
         return;
         }
      }
 
Lo hago... puedes ver en el código
 
MakarFX:
y lo hago... puedes ver en el código

No todo. He destacado en mi ejemplo

   if(ObjectGet("OrderBuy: "+Symbol(),OBJPROP_PRICE1)!=0)// Это лучше заменить на if(ObjectFind(ChartID(), "OrderBuy: "+Symbol()) >= 0);
     ObjectSetInteger(0,"Button 3",OBJPROP_STATE,true);
Esto evita que el botón se pegue al pulsarlo si hay una línea en el gráfico.
 
Alexey Viktorov:

No todo. He destacado en mi ejemplo

Esto evita que el botón se pegue al pulsarlo, si hay una línea en el gráfico.

El problema no es ninguno de los dos... Sólo necesito que se pegue, pero el propio OBJ_BUTTON es clicable, aunque no haga nada.

Necesito que el botón esté inactivo, y eso, según tengo entendido no es posible(

 
MakarFX:

Ese no es el problema... sólo necesito que se pegue, pero el OBJ_BUTTON en sí mismo es clicable, aunque no haga nada.

Necesito que el botón esté inactivo, y esto, según tengo entendido no es posible(

¿Qué quiere decir con "inactivo" o "no se puede hacer clic"? ¿Y qué sentido tiene?

Si quieres que el botón tenga la apariencia de haber sido pulsado, entonces en lugar de true en esa línea, pon false y elimina la línea

         ObjectSetInteger(0,"Button 3",OBJPROP_STATE,true);

que antes de crear la línea...

 
Alexey Viktorov:

¿Qué quiere decir con "no activo" o "no clicable"? ¿Y qué sentido tiene eso?

Si quieres que el botón tenga la apariencia de haber sido pulsado, entonces en lugar de true en esa línea, pon false y elimina la línea

que es antes de que se cree la línea...

OBJPROP_STATE,true

este es el aspecto del botón pulsado...

no te molestes... ya no es relevante.

Gracias.