kurumi
分割約定対応のVBAについて
新規注文で複数枚数を成行などで発注していた場合、約定時に分割約定されることがあります。
分割約定時に以下の処理をしたいです。対象は先物取引です。
① ロストカットのセット(逆指値注文)
② ①のロストカットが掛からなかった場合、取消注文
③ ②の後に決済注文
VBAで上記の注文を処理したいです。
FOPORDQUERYやFOPPOSITIONで注文照会や保有一覧からメモの値から注文番号を参照するという方法かと思っています。
工夫することで、簡単にできるテクニックなどあれば教えて頂けませんか?
もし、可能であれば、簡単で構いませんので、VBAのコードのサンプルファイルなどご提供頂けると有難いです。
(厚かましいお願いで申し訳ないです。)
過去の掲示板を見させて頂いたのですが、マネできるものがなく、、、知恵をお借りしたいです。
2022年09月06日
大野 了
kurumiさん、こんばんは!!
>新規注文で複数枚数を成行などで発注していた場合、約定時に分割約定されることがあります。
>分割約定時に以下の処理をしたいです。対象は先物取引です。
分割約定に関してですが、分割約定してしまった各ポジションは独立したものとなり、
通常のポジションと同一の扱いとなります!!
※建玉枝番もつかず、建玉番号自体が変わる
このため、ロスカットなどの決済処理に対して特別な処理は不要で、
通常のポジションと同じ対応で問題ありません。
一点違うとすれば、1回の発注で複数ポジション出来てしまうため、
FOPPOSITIONで取得できた件数分をループし、
メモが同一の行のみ、現在、処理されているロスカットと取消注文のVBAの部分を実行する形することで、
正常に動作すると思われます!!
現在がどのようなVBAの作りになっているかわからないため、何とも言えませんが、
多分、
2022年09月06日
kurumi
早速のご回答ありがとうございます。
「多分、」以下が気になりますが(笑)、概ね理解できました。
>一点違うとすれば、1回の発注で複数ポジション出来てしまうため、
>FOPPOSITIONで取得できた件数分をループし、
>メモが同一の行のみ、現在、処理されているロスカットと取消注文のVBAの部分を実行する形することで、
理解しました。
念のために確認なんですが、以下の認識でOKですかね?
・分割約定時は「建玉番号」、「枚数」が変わり、それ以外は同じ情報
・メモの値は、注文ごとに同じでも発注自体はエラーなしで可能 (分割約定後のLC設定時やLC取消注文時にセットするメモを同一のものを使用)
現在のVBAの作りは、
・複数システムを使用しているため、各行ごとにシステムをセットしています。(1行で1ロジック)
・各行で横に長くしており、新規発注⇒LC⇒取消注文⇒決済、のようにしています。
・処理が必要なものについては、関数でフラグを出しています。
・VBAでは上から順に参照していき、フラグが出ているものに関して処理しています。
上記の通りですので、関数でメモの値の個数をあらかじめ取得しておき、1以外の場合は、その値分VBA側でループするようにしようと思います。
ありがとうございました!
2022年09月07日
大野 了
『多分』の後は『上記のような流れで大丈夫だと思います』と書くつもりだったんですが、
なぜか消えていました(笑
>念のために確認なんですが、以下の認識でOKですかね?
>・分割約定時は「建玉番号」、「枚数」が変わり、それ以外は同じ情報
>・メモの値は、注文ごとに同じでも発注自体はエラーなしで可能 (分割約定後のLC設定時やLC取消注文時にセットするメモを同一のものを使用)
はい、ご認識通りです!!
メモ欄はあくまでもメモですので、新規発注、決済発注で同一の内容を入れても大丈夫です!!
kurumiさんのVBA事情がよくわからなかったので、サンプルを作ったり
詳しく説明することが難しかったのですが、
もし何かありましたら、再度投稿頂けますと幸いです!!
2022年09月07日
kurumi
大野さん、ご確認ありがとうございます!
「多分」以下も、すっきりしました(笑)
頂いた内容で対応します。
何かあれば、ご質問させて頂きます!
助かりました。ありがとうございました。
2022年09月08日