初心者の方からの質問 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。

 

こんにちは!MQL5で書かれたOOP要素(CLASSES)を含むコードは、MQL4ターミナルでは動作しないのか教えてください。 クラスを含むプログラムをコンパイルしようとすると、クラスのメソッドを 呼び出す際に渡されるパラメータでエラーが発生します。 しかしクラス自体は4エディタでエラーなくコンパイルされます。


 

こんにちは、助けてください

水平方向の指標のレベルの値をEAに 転送するにはどうしたらいいですか?

***

 
Oleg Kolesov:

こんにちは、助けてください

Expert Advisorにインジケータの 水平レベルのIDを渡すには

MQL5のインジケーターハンドルはOnInitで作成する必要があり、この方法で1回だけ作成されます。これはまず直さないといけない。

 
ウラジミールOnInit()で作成される。Expert Advisorは、インジケータを見ます。可視化する場合は、正しくパラメータを送信し、描画します。貿易をしたくないのです。
 
Oleg Kolesov:
ウラジミールOnInit()で作成される。Expert Advisorは、インジケータを見ます。可視化する場合は、正しくパラメータを送信し、描画します。貿易をしたくないのです。

コードを 正しく挿入してください。

 
//+------------------------------------------------------------------+
//|  Настраиваемые параметры                                         |
//+------------------------------------------------------------------+
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' から何かを 2 回コピーするのですか?

 
Oleg Kolesov:

ArraySetAsSeries(***,true)を使ってコピーした配列を反転させたのを覚えていますか?

理由: