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

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の設定に誤りがあります。" + "\n"
+ "MT4の画面上部の[ツール]から[オプション]を開き、" + "\n"
+ "[エキスパートアドバイザ]内の[自動売買を許可する]がチェックされているか" + "\n"
+ "確認して下さい。");
}


EAの全般タブの設定確認


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

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

TOPへ