マーク
特定の建玉番号に対して、返済注文を出すときの不具合
以前も質問しましたが未解決なため再度よろしくお願いします。
225ミニで取引しています。
複数枚指定した新規発注(例えば買の時)が、複数の売り注文に分かれて約定する時があります。
そのような場合、メモを使って建玉番号を引っ張て来て分割返済注文を出すと、
「決済建玉がありません」
「指定された建玉数が実際の建玉数より多い」
などのエラーが出ます。
●具体的なエクセルの動作
新規発注
FNEWORDER(新規買、指値10000、10枚、メモ001)
一つの売り注文に対して10枚全てが約定すると
FOPPOSITION(買、10枚、建玉番号A1、メモ001)
となり、以下のように分割で返済注文を出しても、問題ありません。
FNEWORDER(返済売、指値10010、建玉番号A1、5枚)
FNEWORDER(返済売、指値10020、建玉番号A1、2枚)
FNEWORDER(返済売、指値10030、建玉番号A1、2枚)
FNEWORDER(返済売、指値10040、建玉番号A1、1枚)
しかし複数の売り注文に対して約定すると
FOPPOSITION(買、3枚、建玉番号A1、メモ001)
FOPPOSITION(買、2枚、建玉番号A2、メモ001)
FOPPOSITION(買、1枚、建玉番号A3、メモ001)
FOPPOSITION(買、4枚、建玉番号A4、メモ001)
のように、一つのメモに対して複数の「建玉番号」が返ってきます。
この時、メモを使って建玉番号を引っ張ってきて先ほどと同じように以下の注文を出します。
FNEWORDER(返済売、指値10010、建玉番号A1、5枚)
FNEWORDER(返済売、指値10020、建玉番号A1、2枚)
FNEWORDER(返済売、指値10030、建玉番号A1、2枚)
FNEWORDER(返済売、指値10040、建玉番号A1、1枚)
すると、上記の例のように、A1の建玉数が3枚で、最初の返済注文A1が5枚の時、
「指定された建玉数が実際の建玉数より多い」というエラーがでて、
もし、最初の返済注文がA1、3枚だと注文が通り、二つ目の返済注文で、
「決済建玉がありません」
とエラーが出てしまいます。
新規注文は手動ですが、返済注文は自動で発注したいと思っています。
ややこしい内容で恐縮ですが、これを解決する方法はないでしょうか。
よろしくお願いします。
2019年06月20日
Ryo Ohno
分割決済.xlsx (10.2KB)
マークさん、こんにちは!!
返信遅くなりました・・・
分割約定面倒ですよね・・・
俺はVBAで対応しているのですが、一応、セル関数だけでできるように考えてみました。
だいぶいろいろと考えたのですが、できるのはできるのですが、
やっぱりすっごい複雑になってしまいます。
もし『決済は1枚ずつ発注』ということで良ければ、比較的簡単な仕組みでできました。
※もし10枚発注するのであれば、1枚ずつ10回に分けて発注を出す
詳しくは添付ファイルのExcelブックをご覧ください!!
内容としては、
分割決済用の設定と実際のFOPPOSITIONの内容に枚数の開始枚数を算出するロジックを入れて
それに対する、建玉番号と指値をMATCHで引いて、
実際の決済用FNEWORDER設定値とするロジックです。
ご参考になれば幸いです!!
2019年06月25日
マーク
Ohnoさん、おはようございます。
ありがとうございます!
シンプルな関数だけでここまでできるサンプルを作っていただき感謝です。
自分でもかなり考えたのですが、開始枚数と言う考え方に至りませんでした。
この考え方を参考に自分のイメージに落とし込もうと思います。
2019年06月26日
Ryo Ohno
複雑に作ってしまうと、メンテも大変ですし、組み込みにくいですからね・・・
なにはともあれ、お役に立てたようでよかったです!!
わかり辛い辛い部分などあると思いますので、
また何かありましたら、ご連絡頂けますと幸いです!!
2019年06月26日