Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1304

 
Николай К:

¿Puedes darme una pista? Esta entrada:

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

Qué significa, cómo interpretarlo, opciones de uso. Parámetros.

Lea la documentación.

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

¿Puedes darme una pista? Esta entrada:

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

Qué significa, cómo interpretarlo, opciones de uso. Parámetros.

Si var<10 = verdadero, entonces var1 = 1
de lo contrario var1 = 0;

 

¡Hola! ¿Me pueden decir si el código escrito en MQL5 con elementos de POO (CLASES) no funciona en el Terminal MQL4? Cuando intento compilar un programa con clases incluidas, me da errores en los parámetros pasados al llamar a los métodos de la clase. Pero la clase en sí compila en el editor 4 sin errores.


 

Hola, ¿puede ayudar?

¿Cómo puedo transferir el valor de los nivelesdel indicador horizontala mi EA?

***

 
Oleg Kolesov:

Hola, ¿puede ayudar?

¿Cómo pasar el ID de los niveles horizontalesde un indicador a un Asesor Experto?

El mango del indicador en MQL5 DEBE ser creado en OnInit - y se crea de esta manera UNA vez. Esto es lo primero que hay que arreglar.

 
Vladimir. Creado en OnInit(). El Asesor Experto ve el indicador. Cuando la visualización, envía los parámetros correctamente, dibuja. No quiere comerciar.
 
Oleg Kolesov:
Vladimir. Creado en OnInit(). El Asesor Experto ve el indicador. Cuando la visualización, envía los parámetros correctamente, dibuja. No quiere comerciar.

Introduzca el código correctamente.

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

¿Por qué copiar algo dos veces del buffer '0'?

 
Oleg Kolesov:

¿Te has acordado de dar la vuelta a las matrices que estás copiando conArraySetAsSeries(***,true) ?