
MQL5 MQL5 の取引関数
PositionsTotal()
- できること
- 保有中のポジションの数を取得する
- 対応
- MQL5
PositionsTotal() とは
MQL5 で、口座で保有中のポジションの数を返す関数です。PositionGetTicket() と組み合わせて、すべてのポジションを順に処理するループに使います。
PositionsTotal() の書式と引数
int PositionsTotal()引数はありません。
戻り値
ポジションの数。
PositionsTotal() の使い方(コード例)
// この EA(マジックナンバー 12345)のポジション数を数える
int mine = 0;
for(int i = PositionsTotal() - 1; i >= 0; i--)
{
ulong ticket = PositionGetTicket(i); // 選択もされる
if(ticket == 0) continue;
if(PositionGetString(POSITION_SYMBOL) == _Symbol && PositionGetInteger(POSITION_MAGIC) == 12345)
mine++;
}
Print("この EA のポジション:", mine);OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
PositionsTotal() の注意点
- ネッティング口座では1つの銘柄につきポジションは1つ、ヘッジ口座では同じ銘柄に複数持てます。
- 口座全体の数なので、ほかの EA や手動のポジションも含まれます。
MQL4 と MQL5 の違い
MQL4 では OrdersTotal() がポジション+待機注文の数を返します。MQL5 の OrdersTotal() は待機注文だけです。
関連する関数
MQL5 の取引関数の関数一覧
- OrderCheck
- OrderCalcMargin
- OrderCalcProfit
- PositionsTotal
- PositionGetTicket
- PositionGetSymbol
- PositionSelect
- PositionSelectByTicket
- PositionGetDouble
- PositionGetInteger
- PositionGetString
- OrderGetTicket
- OrderGetDouble
- OrderGetInteger
- HistorySelect
- HistoryDealsTotal
- HistoryDealGetTicket
- HistoryDealSelect
- HistoryDealGetDouble
- HistoryDealGetInteger
- HistoryDealGetString












