TerminalInfoInteger関数とMQLInfoInteger関数を使用してEAの自動売買が許可されているか確認する

MetaTrader 4
GogoJungle
2019/08/02 22:01
99

EAの利用にはMT4が正しく設定されている必要があります。
MT4の設定状況はプログラムから取得可能です。
販売・配布用のEAでは事前に設定状況を確認して通知することで、
「動かない」、「取引しない」などのトラブルを回避することができます。

自動売買の許可の確認

EAが取引を行うには、[自動売買の許可]にチェックが入っている必要があります。
[自動売買の許可]はMT4のオプションと、EAの設定の全般タブの2箇所にあります。
どちらか1つでもチェックが入っていないとEAによる取引は行われません。

オプションの設定確認

MT4のオプション内の[自動売買の許可]は、TerminalInfoInteger関数を使用することで確認できます。
引数にTERMINAL_TRADE_ALLOWEDを指定するとチェックの有無を取得できます。
戻り値はチェックが入っている場合true, チェックが入っていない場合falseとなります。

if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) == false){
   Alert("MT4の設定に誤りがあります。" + "
"
      + "MT4の画面上部の[ツール]から[オプション]を開き、" + "
"
      + "[エキスパートアドバイザ]内の[自動売買を許可する]がチェックされているか" + "
"
      + "確認して下さい。");
}

EAの全般タブの設定確認

全般タブ内の設定は、MQLInfoInteger関数を使用することで確認できます。
引数にMQL_TRADE_ALLOWEDを指定することでチェックの有無を取得できます。
戻り値はチェックが入っている場合true, チェックが入っていない場合falseとなります。

if(!MQLInfoInteger(MQL_TRADE_ALLOWED)){
   Alert("MT4の設定に誤りがあります。" + "
"
      + "チャート上で右クリックを行い、" + "
"
      + "[エキスパートアドバイザ]の[設定]をクリックしてください。" + "
"
      + "[全般]内の[自動売買を許可する]がチェックされているか確認して下さい。");
}

コメント

関連項目

検索結果がありません。