Questions des débutants MQL5 MT5 MetaTrader 5 - page 1304

 
Николай К:

Pouvez-vous me donner un indice ? Cette entrée :

var1=(var<10)?1:0 ;

Ce qu'il signifie, comment l'interpréter, les possibilités d'utilisation. Paramètres.

Lire la documentation.

Документация по MQL5: Основы языка / Операторы / Условный оператор ?:
Документация по MQL5: Основы языка / Операторы / Условный оператор ?:
  • www.mql5.com
Условный оператор ?: - Операторы - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Николай К:

Pouvez-vous me donner un indice ? Cette entrée :

var1=(var<10)?1:0 ;

Ce qu'il signifie, comment l'interpréter, les possibilités d'utilisation. Paramètres.

Si var<10 = vrai, alors var1 = 1
sinon var1 = 0 ;

 

Salut ! Pouvez-vous me dire si le code écrit en MQL5 avec des éléments OOP (CLASSES) ne fonctionnera pas dans le terminal MQL4 ? Lorsque j'essaie de compiler un programme avec des classes incluses, j'obtiens des erreurs dans les paramètres passés lors de l'appel des méthodes de la classe. Mais la classe elle-même se compile dans l'éditeur 4 sans erreurs.


 

Bonjour, pouvez-vous m'aider ?

Comment puis-je transférer la valeur des niveaux desindicateurs horizontauxà mon EA?

***

 
Oleg Kolesov:

Bonjour, pouvez-vous m'aider ?

Comment passer l'ID des niveaux horizontauxd'un indicateur à un Expert Advisor?

Le manche de l'indicateur dans MQL5 DOIT être créé dans OnInit - et il est créé de cette façon UNE SEULE fois. C'est la première chose que vous devez réparer.

 
Vladimir. Créé dans OnInit(). Le conseiller expert voit l'indicateur. Lors de la visualisation, il envoie les paramètres correctement, il dessine. Il ne veut pas faire de commerce.
 
Oleg Kolesov:
Vladimir. Créé dans OnInit(). Le conseiller expert voit l'indicateur. Lors de la visualisation, il envoie les paramètres correctement, il dessine. Il ne veut pas faire de commerce.

Insérez le code correctement.

 
//+------------------------------------------------------------------+
//|  Настраиваемые параметры                                         |
//+------------------------------------------------------------------+
input string Expert_Title="Exp_Tangents2";                        // The name of the EA
input int Period1=29;                                             // Period1
input int Period2=145;                                            // Period2
input int Period3=609;                                            // Period3
input double level1=46.0;                                         //                                    
input double level2=22.0;                                         //
input double level3=0.0;                                          //
input double level4=-22.0;                                        //
input double level5=-46.0;                                        //
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
// получаем хэндл индикатора Tangents
   HLHandle=iCustom(NULL,0,"Examples\\Tangents2",Period1,Period2,
                      Period3,level1,level2,level3,level4,level5);
// если хэндл неверный
   if(HLHandle<0)
     {
      Alert("Ошибка создания хэнла индикатора Tangents2 - ошибка: ",GetLastError(),"!!");
      return(-1);
     }
   }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//+---------------------------------------------------------------------+
//| Копируем значения индикаторов в массивы, используя хэндлы индикатора
//+---------------------------------------------------------------------+
   if(CopyBuffer(HLHandle,0,0,3,L1)<0 || CopyBuffer(HLHandle,1,0,3,L2)<0
      || CopyBuffer(HLHandle,2,0,3,L3)<0)
     {
      Alert("Ошибка копирования буферов хэндла индикатора Tangents2 - ошибка:",GetLastError(),"!!");
      return;
     }
  }
//+------------------------------------------------------------------+
//|  Проверяет условия на покупку                                    |
//+------------------------------------------------------------------+
bool checkBuy()
  {
   bool dobuy = false;
   if(L2[2]<level1 && L2[1]>level1 && L3[2]<level1 && L3[1]>level1 && (L1[1]>level1 || L1[1]<level5))
           {
            dobuy = true;
           }
   return(dobuy);
  }
 
Oleg Kolesov:

Pourquoi copier deux fois quelque chose depuis le tampon '0' ?

 
Oleg Kolesov:

Avez-vous pensé à retourner les tableaux que vous copiez en utilisantArraySetAsSeries(***,true) ?