Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1291

 
Alexey Viktorov:

Semplice da aggiungere alla condizione.

O == 0, più probabilmente. O meglio usare la ricerca dell'oggetto per nome, se non c'è tale oggetto, allora createne uno. E non importa se il pulsante viene cliccato o meno.

L'ho fatto, ma
OBJPROP_STATE

Cambia ancora quando il pulsante viene cliccato.

Finora ho risolto in questo modo

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

Ciao. 2020.10.28_05:19:00 GMT+3. Ho tradotto l'indicatore LeManTrend_Indicator.mq5 nella quarta versione .mq4 .

Hai costruito l'indicatore? L'ho costruito, sembra essere lo stesso - ho solo bisogno di scaricare questo indicatorehttps://www.mql5.com/ru/code/9096

BrainTrend1Sig LeManTrend

LeManTrend
LeManTrend
  • www.mql5.com
Индикатор определяет положение тренда на основе текущей цены и максимальных и минимальных цен за три периода.
 
MakarFX:
L'ho fatto, ma

cambia ancora quando viene premuto

Finora ho risolto in questo modo.

Qual è il problema generale?

 
Alexey Viktorov:

Qual è il compito generale?

Quando si clicca sul pulsante, l'oggetto viene creato e il pulsante riceve
ObjectSetInteger(0,"Button 3",OBJPROP_STATE,true);

Se c'è un oggetto, si preme il pulsante e si ottiene

OBJPROP_STATE,false

e dovete mantenerlo vero finché c'è un oggetto sul grafico

 
MakarFX:
Quando il pulsante viene cliccato, l'oggetto viene creato e il pulsante riceve

se c'è un oggetto, si preme il pulsante e si ottiene

e tenerlo vero finché c'è un oggetto sul grafico.

Poi basta restituire la proprietà prima di disegnare

   //--- обработка кнопки Создать трендовую линию 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 faccio ... si può vedere nel codice
 
MakarFX:
e lo faccio... potete vedere nel codice

Non tutto. Ho evidenziato nel mio esempio

   if(ObjectGet("OrderBuy: "+Symbol(),OBJPROP_PRICE1)!=0)// Это лучше заменить на if(ObjectFind(ChartID(), "OrderBuy: "+Symbol()) >= 0);
     ObjectSetInteger(0,"Button 3",OBJPROP_STATE,true);
Questo evita che il pulsante si attacchi quando viene premuto se c'è una linea sul grafico.
 
Alexey Viktorov:

Non tutto. Ho evidenziato nel mio esempio

Questo evita che il pulsante si attacchi quando viene premuto, se c'è una linea sul grafico.

Il problema non è nessuno dei due... Ho solo bisogno che si attacchi, ma OBJ_BUTTON stesso è cliccabile, anche se non fa nulla.

Ho bisogno di rendere il pulsante inattivo, e questo, da quanto ho capito, non è possibile (

 
MakarFX:

Non è questo il problema... ho solo bisogno che si attacchi, ma OBJ_BUTTON stesso è cliccabile, anche se non fa nulla.

Ho bisogno di rendere il pulsante inattivo, e questo, da quanto ho capito, non è possibile (

Cosa intendi per "inattivo" o "non cliccabile"? E che senso ha?

Se volete che il pulsante abbia l'aspetto di essere cliccato, allora invece di true su quella linea, mettete false e cancellate la linea

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

che prima di creare la linea...

 
Alexey Viktorov:

Cosa intendi per "non attivo" o "non cliccabile"? E che senso ha?

Se volete che il pulsante abbia l'aspetto di essere cliccato, allora invece di true su quella linea, mettete false e cancellate la linea

che è prima della creazione della linea...

OBJPROP_STATE,true

questo è l'aspetto del pulsante premuto...

Non preoccupatevi... non è più rilevante.

Grazie.