Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1291

 
Alexey Viktorov:

Il est facile d'ajouter à la condition.

Ou == 0, plus probablement. Ou mieux encore, utiliser la recherche d'un objet par son nom, et s'il n'existe pas, en créer un. Et il importe peu que le bouton soit cliqué ou non.

Je l'ai fait, mais
OBJPROP_STATE

Il change toujours lorsque le bouton est cliqué.

Jusqu'à présent, j'ai résolu le problème de cette manière

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

Bonjour. 2020.10.28_05:19:00 GMT+3. J'ai traduit l'indicateur LeManTrend_Indicator.mq5 dans la quatrième version .mq4 .

Avez-vous construit l'indicateur ? Je l'ai construit, il semble être le même - je dois juste télécharger cet indicateurhttps://www.mql5.com/ru/code/9096.

BrainTrend1Sig LeManTrend

LeManTrend
LeManTrend
  • www.mql5.com
Индикатор определяет положение тренда на основе текущей цены и максимальных и минимальных цен за три периода.
Dossiers :
 
MakarFX:
Je l'ai fait, mais

change toujours quand on appuie dessus

Jusqu'à présent, j'ai résolu le problème de cette façon.

Quel est le problème général ?

 
Alexey Viktorov:

Quelle est la tâche générale ?

Lorsque vous cliquez sur le bouton, l'objet est créé et le bouton reçoit
.
ObjectSetInteger(0,"Button 3",OBJPROP_STATE,true);

S'il y a un objet, vous appuyez sur le bouton et il devient

OBJPROP_STATE,false

et vous devez la garder vraie tant qu'il y a un objet sur le graphique.

 
MakarFX:
Lorsque le bouton est cliqué, l'objet est créé et le bouton reçoit
.

s'il y a un objet, vous appuyez sur le bouton et il devient

et le garder vrai tant qu'il y a un objet sur la carte.

Ensuite, il suffit de rendre la propriété avant de dessiner

   //--- обработка кнопки Создать трендовую линию 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;
         }
      }
 
Je le fais ... vous pouvez voir dans le code
 
MakarFX:
et je le fais... vous pouvez voir dans le code

Pas tout. J'ai souligné dans mon exemple

   if(ObjectGet("OrderBuy: "+Symbol(),OBJPROP_PRICE1)!=0)// Это лучше заменить на if(ObjectFind(ChartID(), "OrderBuy: "+Symbol()) >= 0);
     ObjectSetInteger(0,"Button 3",OBJPROP_STATE,true);
Cela permet d'éviter que le bouton ne se bloque lorsqu'on appuie dessus s'il y a une ligne sur le graphique.
 
Alexey Viktorov:

Pas tout. J'ai souligné dans mon exemple

Cela permet d'éviter que le bouton ne se bloque lorsqu'on appuie dessus, s'il y a une ligne sur le graphique.

Le problème n'est ni l'un ni l'autre... J'ai juste besoin que ça colle, mais OBJ_BUTTON lui-même est cliquable, même s'il ne fait rien.

J'ai besoin de rendre le bouton inactif, et cela, comme je le comprends, n'est pas possible(

 
MakarFX:

Ce n'est pas le problème... J'ai juste besoin que ça colle, mais OBJ_BUTTON lui-même est cliquable, même s'il ne fait rien.

J'ai besoin de rendre le bouton inactif, et ceci, comme je le comprends, n'est pas possible(

Que voulez-vous dire par "inactif" ou "non cliquable" ? Et quel est le but de tout ça ?

Si vous voulez que le bouton ait l'apparence d'avoir été cliqué, alors au lieu de true sur cette ligne, mettez false et supprimez la ligne

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

qui avant de créer la ligne...

 
Alexey Viktorov:

Que voulez-vous dire par "non actif" ou "non cliquable" ? Et quel est le but de tout ça ?

Si vous voulez que le bouton ait l'apparence d'avoir été cliqué, alors au lieu de true sur cette ligne, mettez false et supprimez la ligne

qui est avant que la ligne soit créée...

OBJPROP_STATE,true

voici l'aspect pressé du bouton...

ne vous donnez pas la peine... ce n'est plus d'actualité.

Merci.

Raison: