
MQL5 MQL5 の取引関数
PositionSelect()
- できること
- 銘柄名を指定してポジションを選択する
- 対応
- MQL5
PositionSelect() とは
MQL5 で、銘柄名を指定して、その銘柄のポジションを選択する関数です。選択すると PositionGetDouble() などで情報を読めます。ネッティング口座(1銘柄に1ポジション)で「この銘柄のポジションを持っているか」を調べるのに便利です。
PositionSelect() の書式と引数
bool PositionSelect(string symbol)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
symbol | string | 必須 | 銘柄名。 |
戻り値
ポジションがあって選択できたら true、なければ false を返します。
PositionSelect() の使い方(コード例)
if(PositionSelect(_Symbol))
{
long type = PositionGetInteger(POSITION_TYPE);
Print(type == POSITION_TYPE_BUY ? "買い" : "売り", "ポジションあり lots=", PositionGetDouble(POSITION_VOLUME));
}
else
Print("ポジションなし");OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
PositionSelect() の注意点
- ヘッジ口座で同じ銘柄に複数のポジションがあるときは、そのうち1つしか選べません。1つずつ処理するには PositionGetTicket() でループするか、PositionSelectByTicket() を使います。
- 選択した内容はその時点のコピーです。時間がたったら選び直して最新の情報を読みます。
MQL4 と MQL5 の違い
MQL4 には銘柄名で選ぶ関数はなく、OrderSelect() のループで OrderSymbol() を比べます。
PositionSelect() でよく出るエラー
関連する関数
MQL5 の取引関数の関数一覧
- OrderCheck
- OrderCalcMargin
- OrderCalcProfit
- PositionsTotal
- PositionGetTicket
- PositionGetSymbol
- PositionSelect
- PositionSelectByTicket
- PositionGetDouble
- PositionGetInteger
- PositionGetString
- OrderGetTicket
- OrderGetDouble
- OrderGetInteger
- HistorySelect
- HistoryDealsTotal
- HistoryDealGetTicket
- HistoryDealSelect
- HistoryDealGetDouble
- HistoryDealGetInteger
- HistoryDealGetString












