メタトレーダー4(MT4)のEAの決済プログラムサインで教えてください。

エントリーしたバーの終値で決済するようなプログラムはどのように書けばよろしいのでしょうか?

あと、この検証しているデータなのですが、
MT4のデータではなくエクセルなどで作成した4本値を
MT4にインポートしたデータなのでTickデータがありません。

宜しくお願いします。

..[補足]..
fhat6014さん、ありがとうございます。私の説明不足なので補足させていただきます。
検証中のデータは為替のデータではなく他の市場の日足なので、窓が頻繁に空いています。
次のバーの始値だと、窓の影響を受けてしまうので、
エントリーバーの終値で決済できるプログラムを教えていただけると幸いです。

回答1

ほかの部分との兼ね合いもあるのであくまで一例ですが、

for(int i=OrdersTotal()-1;i>=0;i–){
if( OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false ){
break;
}
if( OrderSymbol() != Symbol() || OrderMagicNumber() != magic ){
continue;
}
if( OrderType() <= 1 && iBarShift(NULL,0,OrderOpenTime(),false) >= 1 ){
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage);
}
}

厳密に言うと次の足の始値になりますが、たぶんこんな感じでいいと思います。

補足について

終値での決済は、もう少し細かいデータがなければ不可能だと思います。

MT4のEAは、ティックの変動があったときに処理を開始します。
極端な話、一日中ティックの変動がなければEAは何の処理もしません。
バックテストでも終値付近でのティックの変動 を示すデータがない限り、決済処理は不可能だと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA