ポジション数(指値・逆指値)を取得する関数

オリジナル関数

どうも潤奈です( ・Д・)

今回は待機注文(指値・逆指値)しているポジション数を取得するオリジナル関数を作成したいと思います。

オリジナル関数って?という方はこちらのEA講座を最後まで閲覧して頂くと理解して頂けると思います。

スポンサーリンク

オリジナル関数を作成

では早速オリジナル関数の全文をご覧下さい。

では順番に説明して行きます。

枠を作成

PendingPosition関数をint型で宣言します。

引数はPositionDirection変数をint型と、magic変数をint型を宣言して準備します。

PositionDirection変数には取得したいポジションを買いなら1を、売りなら-1を、両方なら0を渡して使用します。

magic変数は取得したいポジションのマジックナンバーを確認するのに使用します。

ポジション数を格納する変数

取得したポジション数を格納するres変数をint型で宣言して、0リセットします。

最後にはreturn処理でres変数に格納された数値を返します。

ポジション数をチェック

ループ処理のfor文を使用して、OrdersTotal関数で取得した数をチェックして行きます。

そして最初のif文でその注文データに問題がないかチェックします。

【OrdersTotal関数とは】

エントリー中注文と保留中注文の総数を取得出来る関数です。

【OrderSelect関数とは】

注文の選択する方法として、各注文に順番に割り振られた番号からとチケット番号から選択する方法があります。そして、その注文が現在取引中の中から選択するのか、取引後の履歴から選択するのかを選択する事が出来ます。

ポジションを絞ります

次のif文でその注文データが現在のチャートの通貨ペアと同じか?調べたいマジックナンバー取引の注文データか?をチェックします。

【OrderSymbol関数とは】

現在選択中の注文の通貨ペア名を取得します。注意としては事前にOrderSelect関数で対象の注文を選択している必要があります。

【_Symbol変数とは】

現在のチャートの通貨ペア名が含まれている変数です。Symbol()関数で取得する事も出来ます。

【OrderMagicNumber関数とは】

現在選択中の注文のマジックナンバーを取得します。 注意としては事前にOrderSelect関数で対象の注文を選択している必要があります。

ポジションを絞り込みます

次のif~else if文でPositionDirection変数に渡した数値でそれぞれカウントします。

PositionDirection変数が0の時は、買い指値・逆指値ポジション&売り指値・逆指値ポジションの両方の時にresに1が足されます。

1の時は買い指値・逆指値ポジションの時のみで、-1の時は売り指値・逆指値ポジションの時のみ1が足されます。

【OrderType変数とは】

現在選択中の注文の注文タイプを取得します。注意としては事前にOrderSelect関数で対象の注文を選択している必要があります。

【OP_BUYLIMITとは】買いの指値ポジションを指します。

【OP_BUYSTOPとは】買いの逆指値ポジションを指します。

【OP_SELLLIMITとは】売りの指値ポジションを指します。

【OP_SELLSTOPとは】売りの逆指値ポジションを指します。

オリジナル関数を使用する際のコード

この様なコードを入れる事で、今回のオリジナル関数を使用してそれぞれの指値・逆指値ポジション数を取得する事が出来ます。

まとめ

複数ポジションを取るEAを作成する時に、各ポジションを取得したい時にこのオリジナル関数を作成しておいて設置しておく事で、1行の簡単なコードで取得出来るようになります。

こういったオリジナル関数を増やして引き出しを増やして行きましょう。

では( ・Д・)

コメント

タイトルとURLをコピーしました