MQL4におけるGetLastError()関数の使い方

GetLastError()関数は、MQL4プログラムの実行中に発生した直近のエラーコードを取得するために使用される関数です。この関数は、エラーが発生した際にその原因を特定し、適切なエラーハンドリングを行うために重要です。

目次

GetLastError()関数の基本構造

  • 戻り値int型のエラーコードを返します。
  • 引数: なし

この関数を呼び出すと、システム変数_LastErrorに格納されているエラーコードが返され、その後_LastErrorの内容はリセットされます

サンプルコード: GetLastError()を使用したエラーハンドリング

以下のサンプルコードは、OrderSend()関数を使用して注文を送信し、失敗した場合にGetLastError()を使ってエラーコードを取得し、エラーメッセージを出力する例です。

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   // 注文を送信
   int ticket = OrderSend(Symbol(), OP_BUY, 0.1, Ask, 10, 0, 0, "", 123, 0, clrNONE);
   
   // 注文が失敗した場合
   if(ticket == -1)
     {
      // エラーコードを取得
      int errorCode = GetLastError();
      
      // エラーコードに基づいてエラーメッセージを出力
      Print("OrderSend failed with error code: ", errorCode);
     }
   else
     {
      Print("Order placed successfully with ticket #", ticket);
     }
   
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+

コードの説明

  • OrderSend(): 新規注文を送信する関数。失敗した場合は-1を返します。
  • GetLastError(): 直近のエラーコードを取得します。OrderSend()が失敗した場合に呼び出されます。
  • Print(): エラーコードをコンソールに出力します。

このコードでは、OrderSend()関数が失敗した場合にGetLastError()を使用してエラーコードを取得し、エラーメッセージを出力しています。

これにより、何が問題で注文が失敗したのかを特定することができます。

エラーコードは数値で返されるため、具体的なエラー内容を知るには、エラーコードをエラーメッセージに変換する必要があります。これには、ErrorDescription()関数を使用することができます

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

池田 直哉 池田 直哉 メタプロアカデミー創業者・講師

オリジナルのEAを作ることができるようになるWebスクール【メタプロアカデミー】を運営しています。プログラミング未経験の方が最短1ヵ月で勝てるオリジナルEAが作れるようになります。

目次