
MQL4MQL5 MQL4 の注文関数
OrdersTotal()
- できること
- 保有中の注文(MT5 では待機注文)の数を取得する
- 対応
- MQL4・MQL5
OrdersTotal() とは
注文の数を返す関数です。MQL4 では保有中のポジションと待機注文を合わせた数を返します。MQL5 では待機注文(まだ約定していない注文)だけの数で、保有中のポジションの数は PositionsTotal() で取得します。
OrdersTotal() の書式と引数
int OrdersTotal()引数はありません。
戻り値
注文の数。
OrdersTotal() の使い方(コード例)
MQL4
// この EA のポジションがなければエントリーする、の判定
int mine = 0;
for(int i = OrdersTotal() - 1; i >= 0; i--)
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderSymbol() == _Symbol && OrderMagicNumber() == 12345)
mine++;
if(mine == 0)
Print("ポジションなし:エントリー条件を確認します");MQL5
Print("待機注文 ", OrdersTotal(), " 件、ポジション ", PositionsTotal(), " 件");OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
OrdersTotal() の注意点
- 口座全体の数なので、ほかの通貨ペアや手動の注文も含まれます。自分の EA の分だけを数えるには、ループで OrderSymbol()・OrderMagicNumber() を確認します。
- MQL4 のコードを MQL5 に移すとき、OrdersTotal() を PositionsTotal() に置き換え忘れると「ポジションがあるのに 0」になります。
MQL4 と MQL5 の違い
MQL4 の OrdersTotal() はポジション+待機注文、MQL5 の OrdersTotal() は待機注文だけです。MQL5 でポジションを数えるときは PositionsTotal() を使います。












