Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1304

 
Николай К:

Pode dar-me uma dica? Esta entrada:

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

O que significa, como interpretá-lo, opções de utilização. Parâmetros.

Ler documentação.

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

Pode dar-me uma dica? Esta entrada:

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

O que significa, como interpretá-lo, opções de utilização. Parâmetros.

Se var<10 = verdadeiro, então var1 = 1
caso contrário var1 = 0;

 

Hi! ! Pode dizer-me se o código escrito em MQL5 com elementos OOP (CLASSES) não funcionará no Terminal MQL4? Quando tento compilar um programa com classes incluídas, recebo erros nos parâmetros passados ao chamar métodos da classe. Mas a própria classe compila no editor 4 sem erros.


 

Olá, Pode ajudar!

Como posso transferir o valor dos níveisindicadores horizontaispara a minha EA?

***

 
Oleg Kolesov:

Olá, Pode ajudar!

Como passar a identificação dos níveis horizontaisde um indicador a um Consultor Especialista?

O cabo indicador em MQL5 DEVE ser criado no OnInit - e é criado desta forma UMA VEZ. Esta é a primeira coisa que precisa de consertar.

 
Vladimir. Criado em OnInit(). O Conselheiro Especialista vê o indicador. Quando a visualização, envia correctamente os parâmetros, desenha. Não quer negociar.
 
Oleg Kolesov:
Vladimir. Criado em OnInit(). O Conselheiro Especialista vê o indicador. Quando a visualização, envia correctamente os parâmetros, desenha. Não quer negociar.

Inserir o 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:

Porquê copiar algo duas vezes do buffer '0'?

 
Oleg Kolesov:

Lembra-se de virar as matrizes que está a copiar usandoo ArraySetAsSeries(***,true) ?