TPやSLによって決済が発生したローソク足では、たとえエントリー条件が揃っていてもエントリーさせたくない場合があります。
現在のローソク足で決済が発生しているかを判定する方法をご紹介します。
bool isClosed(int magic){
int magic
}
パラメータ
magic
対象とするポジションのマジックナンバー
戻り値
最新のローソク足にて決済が発生していればtrueを、決済が発生していない場合はfalseを返す。
ただし決済情報の取得に失敗して正しく処理が行われなかった場合もfalseとなることに注意が必要。
bool isClosed(int magic){
for(int i = OrdersHistoryTotal() - 1; i >= 0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) == false) return(false);
if(OrderMagicNumber() != magic) continue;
if(OrderSymbol() != Symbol()) continue;
if(Time[0] <= OrderCloseTime()){
return(true);
}
}
return(false);
}
決済が発生したローソク足でのエントリーを制限するには発注処理の直前でこの関数を実行し、結果がfalseであることを確認して下さい。
void OnTick(){
if(isClosed( /*マジックナンバー*/ ) == false){
// 発注処理...
}
}
検索結果がありません。 |
検索結果がありません。 |