MQL5からMQL4への移植 4
MotionEのバージョンアップで、MT5版のVer2.0を行ったのですが、その際保有ポジションのチェックを入れたチケットのみの集計・決済できる機能を追加しました。
チェックを入れたポジションのチケット番号を保存する配列に
<Generic\Queue.mqh>
を使いました。
Queue = 先入れ先出し なので決済する際は 先にチェックを入れたほうから決裁されるのと、呼び出したものを決済後そのままキューから削除できるのが理由です。
使い方が今一つわかりにくかったので今まで使ったことがなかったのですが
#include <Generic\Queue.mqh>
CQueue<long> myQueue;
< >内に 型指定をして、CQueueのインスタンスを生成。
後は、
myQueue.Add(***);
myQueue.Remove(***);
でキューの機能が使えます。
ちなみにChatGPTに聞いてみたところ、ArrayObjでとの回答でした。
よく調べてはいないのですが、MQL4ではGenericフォルダーが含まれていないため、MQL4ではArrayObjを使ってみようと思います。
MotionE MT5 Ver2.00 です。チェックを入れたポジションのチケット№をキューに保存、ポジションクローズの際キューからチケット№を取り出して順次クローズしています。
(動画はdemo口座です)