초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1304

 
Николай К :

제발 내게 말해줘. 다음은 해당 항목입니다.

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

그것이 의미하는 바, 해석하는 방법, 응용 프로그램. 옵션.

설명서 를 읽으십시오.

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

제발 내게 말해줘. 다음은 해당 항목입니다.

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

그것이 의미하는 바, 해석하는 방법, 응용 프로그램. 옵션.

var<10 = true이면 var1 = 1
그렇지 않으면 var1 = 0;

 

여기요! ! ! MQL4 터미널에서 OOP 요소(CLASS)가 있는 MQL5로 작성된 코드가 작동하지 않는지 알려주세요. 클래스가 포함된 프로그램을 컴파일하려고 하면 클래스 메서드 를 호출할 때 전달된 매개변수에 오류가 발생합니다. 그러나 클래스 자체는 오류 없이 4번째 편집기에서 컴파일됩니다.


 

안녕하세요. 돕다!

지표의 수평 수준 값을 Expert Advisor 에 전달하는 방법은 무엇입니까?

***

 
Oleg Kolesov :

안녕하세요. 돕다!

지표의 수평 수준 식별자 값을 Expert Advisor 에 전달하는 방법은 무엇입니까?

MQL5의 표시기 핸들은 OnInit에서 생성되어야 하며 이러한 방식으로 한 번 생성됩니다. 이것이 가장 먼저 수정해야 할 사항입니다.

 
블라디미르. OnInit()에서 생성됩니다. EA는 지표를 봅니다. 렌더링 할 때 매개 변수를 올바르게 전송하고 그립니다. 거래하고 싶지 않으세요?
 
Oleg Kolesov :
블라디미르. OnInit()에서 생성됩니다. EA는 지표를 봅니다. 렌더링 할 때 매개 변수를 올바르게 전송하고 그립니다. 거래하고 싶지 않으세요?

코드를 올바르게 붙여넣으십시오 .

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

버퍼 '0'에서 무언가를 두 번 복사하는 이유는 무엇입니까?

 
Oleg Kolesov :

ArraySetAsSeries (***,true)를 사용하여 복사하려는 배열을 뒤집는 것을 잊으셨습니까?