口座内の異なる通貨ペア、マジックナンバーのポジションを区別する
MT4では同時に異なる種類のポジションを持つことができます。
それゆえに決済の際にはどのポジションに対する条件なのかを明確にしないと、
ドル円でとったポジションをユーロドルの条件で決済してしまう、
なんてことになります。
これまでに使ったOrderSelect, for文を使ってポジションを区別します。
上記は現在もっているポジションの通貨ペアとマジックナンバーでポジションを識別します。
一度PositionAmountという変数にポジション数を入れます。直接
と書いてしまうと、
for文で繰り返し処理をしている最中にOrdersTotal()の数が変わってしまうことがあり、バグの原因となります。
これはもっているポジションの数だけ下の判別処理をすることを表します。OrderSelectが0から始まるので、int iも0から宣言します。
オーダーを選択し、
それぞれの情報がマッチするかを調べます。
オーダーを送信する際にマジックナンバーを固定にせず変数に格納しておけば、
1234ではなくその変数名で条件に組み込むことができて便利です。
決算処理についてはこれでほぼ完成です。