ポジションを決済したいとき、ロット数を取得しないとね!
OrderLots関数とは
OrderLots関数とは、選択したポジションのロット数を取得する関数です。
OrderLots関数を実行する前に、ポジションを選択する必要があるので、OrderSelect関数と組み合わせて使います。
使う場面は限られていますが、ポジションを決済するときに使う重要な関数なので、覚えておきましょう。
OrderLots関数の書き方
OrderLots関数の使い方は、基本的な関数と同じです。
関数をマスターしていない方はこちらの記事が参考になります。
基本的な書き方
OrderLots関数の基本的な書き方は以下の通りです。
double lots = OrderLots();
このように返り値は double型で、引数は必要ありません。
まずは返り値から見ていきましょう。
返り値(戻り値)
OrderLots関数の返り値は double型です。
選択したポジションのロット数が返ってきます。
注意することは1つです。
ロット数は、全てのポジションの合計値ではなく、1つのポジションのロット数が返ってきます。
そのため、全てのポジションの合計値を使いたい場合は、for文で OrderLots関数の返り血を合計すると良いでしょう。
OrderLots関数の具体的な使い方
それでは、OrderLots関数の具体的な使い方を見ていきましょう。
OrderLots関数は、主に決済注文(OrderClose関数)を出すときに使用します。
具体的には以下のようなプログラムを使います。
//保有ポジションを一つ選択
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
//ロット数を取得
double lots = OrderLots();
//ポジションを決済
bool orderClose = OrderClose( OrderTicket(), lots, OrderClosePrice(), 10, clrNONE);
}
初めに、OrderSelect関数で決済したいポジションを選択します。
その後にOrderLots関数で、ポジションのロット数を取得し、OrderClose関数の引数に書いています。
このように、決済注文(OrderClose関数)を出すときに便利な関数なので、覚えておくと良いでしょう。
まとめ
OrderLots関数は、ポジションのロット数を返す関数です。
単体で使われることは少なく、OrderSelect関数やOrderClose関数と組み合わせて使います。
サンプルプログラムは OrderClose関数の記事にありますので、そちらをご利用ください。