◎概要
MQLプログラムから成行注文を発注する場合、
該当証券会社MT4サーバの取引実行モードが、「成行方式」、「カウントダウン方式」の違いによって、処理を変える必要があります。
具体的には、
「成行方式」の場合、成行注文の発注と利益・損失の設定をセットでできるので問題ないですが、
「カウントダウン方式」の場合、成行注文の発注と利益・損失の設定をセットでできない為、
①成行注文の発注(利益・損益は0設定)
②利益・損益を修正する。
と分けて処理する必要があります。
なお、MQLプログラム内部に、下記の詳細の様に記述すれば、自動判定可能です。
◎詳細
1,取引実行モード変数の宣言
ENUM_SYMBOL_INFO_INTEGER TradeExeMode;
2,初期化関数の中で、取引実行モードを取得する。
int init() {
//取引実行モードの取得
TradeExeMode=SymbolInfoInteger(Symbol(),SYMBOL_TRADE_EXEMODE);
Print("TradeExeMode=",TradeExeMode);
return(0);
}
3,発注関数の中で、成行方式、カウントダウン方式の処理を分岐させる。
////////////////////
//SYMBOL_TRADE_EXECUTION_REQUEST 0
//SYMBOL_TRADE_EXECUTION_INSTANT 1
//SYMBOL_TRADE_EXECUTION_MARKET 2
//SYMBOL_TRADE_EXECUTION_EXCHANGE 3
////////////////////
int doOrderSend(
//成行方式の場合
if(TradeExeMode==0 || TradeExeMode==1){
}
//カウントダウン方式の場合
else{
}
}