MT4 EAについて

例えば、OrderSend関数や、OrderClose関数が実行されると、−1や1を返しますが、注文がTP・SLに掛かって、ポジションを閉じた場合、返してくれる関数や簡単な判定方法はありますか?

現状は
注文後、OpenPrice()からTP値を出して、現在値との大小を検出し、変数に1や−1を入れることで、TP・SLに掛かった、掛かってないを判定しています。もっとシンプルなやりかたあれば教えてください。

回答1

・orderselect で SELECT_BY_POS の MODE_TRADES なら 未決済注文「しか」selectされない。
・orderselect で SELECT_BY_POS の MODE_HISTORY なら 決済された注文「しか」selectされない。

・orderstotal で現在のポジション数がわかり
OrdersHistoryTotalで決済されたポジション数がわかる。

・最後に決済された注文を確認したいなら
OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS, MODE_HISTORY);

これらの応用で対応どうぞ。

回答2

TP,SLに掛かったら直ぐに清算されるので無意味です。
プログラムを組む価値無し。
残っているポシ゜ションをプログラム上で検出し、注文変更をするならOrderSelect,Ordermodifidです。
ただ、監視するだけなら、ターミナルをながめていれば済むことです。


Originally posted 2019-09-09 19:26:31.

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


Translate »