Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1304

 
Николай К:

Puoi darmi un suggerimento? Questa voce:

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

Cosa significa, come interpretarlo, opzioni di utilizzo. Parametri.

Leggi la documentazione.

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

Puoi darmi un suggerimento? Questa voce:

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

Cosa significa, come interpretarlo, opzioni di utilizzo. Parametri.

Se var<10 = vero, allora var1 = 1
altrimenti var1 = 0;

 

Ciao! Potete dirmi se il codice scritto in MQL5 con elementi OOP (CLASSI) non funziona nel terminale MQL4? Quando provo a compilare un programma con classi incluse, ottengo errori nei parametri passati quando chiamo i metodi della classe. Ma la classe stessa si compila nell'editor 4 senza errori.


 

Ciao, mi puoi aiutare!

Come posso trasferire il valore dei livelli dell'indicatore orizzontaleal mio EA?

***

 
Oleg Kolesov:

Ciao, mi puoi aiutare!

Come passare l'ID dei livelli orizzontalidi un indicatore a un Expert Advisor?

L'handle dell'indicatore in MQL5 DEVE essere creato in OnInit - e viene creato in questo modo UNA SOLA volta. Questa è la prima cosa da sistemare.

 
Vladimir. Creato in OnInit(). L'Expert Advisor vede l'indicatore. Quando la visualizzazione, invia i parametri correttamente, disegna. Non vuole commerciare.
 
Oleg Kolesov:
Vladimir. Creato in OnInit(). L'Expert Advisor vede l'indicatore. Quando la visualizzazione, invia i parametri correttamente, disegna. Non vuole commerciare.

Inserire il codice correttamente.

 
//+------------------------------------------------------------------+
//|  Настраиваемые параметры                                         |
//+------------------------------------------------------------------+
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:

Perché copiare qualcosa due volte dal buffer '0'?

 
Oleg Kolesov:

Ti sei ricordato di capovolgere gli array che stai copiando usandoArraySetAsSeries(***,true)?