Sai Kyuusei
国内株 注文番号の紐づけについて
現在、自動売買ツールを自作中ですが、困っていることがあり、
わかる範囲で教えてください。
日本株サンプルシートをベースに、自動売買ツール(関数+マクロ)をチャレンジしております。
その中、注文照会シートを利用し、発注するたびに、その注文番号を取得したいですが、ORDQUERY関数が書き込んできて、1行ずつずれていく、紐づけがうまくできず。。。
いろいろ調べましたが、発注IDと注文番号の紐づけができないようで、断念しました。
ご教授ください。
2018年05月16日
Ryo Ohno
Sai Kyuuseiさん、こんにちは!!
返信が遅くなりました。
こちらは、最後に発注かけたものの注文IDを取得したいということで間違いありませんでしょうか?
残念ながら、Sai Kyuuseiさんがおっしゃられる通り、注文IDから発注IDを調べることは出来ず、
発注を情報を見つけるのがなかなか難しい状況です。
確かに注文後の情報を一発で探せると、便利なのですが・・・
ORDQUERYでいったん表示された物から、
銘柄コードや受付日時などの項目を使用して探し出すしかないのが現状です。
ちなみに、注文番号は取得しても、その後あまり使用できないような情報なのですが、
どのようなことに使われますご予定でしょうか?
もしかしたら、注文番号を取得する方法以外で何か解決策があるかもしれません!!
2018年05月20日
Sai Kyuusei
小野さん
返事、ありがとうございます。
紐付けしたい理由は利食い注文を出した後、価格が下がったら、訂正注文を出すときに、売り注文の注文番号がないと訂正できないだと思います。
やはり、マクロでORDQUERYのデータから銘柄や受け付き日時などさがしないといけないでしょうか。
また、ORDQUERY関数の戻り値について、岡三RSSサーバーから注文情報を取得しているでしょうか。そうでしたら、エクセルがなんか異常終了しても、再度ブックを開いたら、過去の情報を取れるでしょうか。取れるとしたら、何日分とれるでしょうか。
いろいろ、質問してしまい、すみません。
2018年05月21日
Ryo Ohno
注文番号取得サンプル.xlsx (10.7KB)
Sai Kyuuseiさん
利食い注文の変更のためのREPLACEORDERやORDERCANCELのための注文番号ということですねー
ちなみに、日本株はひと銘柄1つの利食い注文でしょうか?
それでしたら、マクロ等でPGを書くと大変ですので、
ORDQUERYの表示対象を『注文中』の情報のみにし、
それを注文した銘柄コードを使用してlookup関数などで探すというのはいかがでしょうかー?
説明が大変なので、サンプルシートを作ってみましたー!!
参考になれば幸いです!!
A1:注文中の銘柄コード
B1:注文中の注文番号
D列:注文した銘柄コード
E列:銘柄に対する注文番号が表示される
>また、ORDQUERY関数の戻り値について、岡三RSSサーバーから注文情報を取得しているでしょうか。そうでしたら、エクセルがなんか異常終了しても、再度ブックを開いたら、過去の情報を取れるでしょうか。取れるとしたら、何日分とれるでしょうか。
こちらもSai Kyuuseiさんのおっしゃられます通り、
ORDQUERY関数は、毎回、岡三RSSサーバーから取得していますので、
Excelが異常終了して、再起動させた場合でも再度正常に表示されます。
また、取得できる期間に関してですが、
注文状況が『注文中』『保留中』は、その注文が消えるまで
『約定済完了』『失効/取消/エラー』『全注文』の場合は、確か1日分だったと思います。(少し記憶が怪しいです)
2018年05月21日
Sai Kyuusei
小野さん
仰る通り、1つ銘柄に対する、利食いと損切訂正と考え方です。
添付ファイルを確認しましたが、大変ヒントを得られました。
ありがとうございます。
そして、質問させてください。
①ORDQUERYの表示対象を『注文中』の場合、データの取得期間が注文が消えるまでと仰いましたが、消えるとは取消注文を出すと指していますか。それでも、「注文完了」になったら、消えるでしょうか。消えるとしたら、成行注文を出す場合、時間的にはどのぐらい消えるでしょうか。
②注文状況が「保留中」とは、どうな場合に発生しますか。
③注文状況の受付日時のデータは文字列ですか。
下記のように、桁数やスペースはあっていますか。
「2018/05/24 13:03:58」
いろいろ細かくて、すみません。
2018年05月24日
Ryo Ohno
Sai Kyuuseiさん
サンプルシートは、お役に立ててよかったです!!
>①ORDQUERYの表示対象を『注文中』の場合、データの取得期間が注文が消えるまでと仰いましたが、消えるとは取消注文を出すと指していますか。それでも、「注文完了」になったら、消えるでしょうか。消えるとしたら、成行注文を出す場合、時間的にはどのぐらい消えるでしょうか。
こちらは両方になります。
こちらは注文を出して、その注文が生きている間ですので、
指値の場合は、指値が約定するまでか、取消注文を出すまでとなります
また、成行注文に関してですが、たぶん上がらないか、上がったとしても一瞬だと思います。
>②注文状況が「保留中」とは、どうな場合に発生しますか。
こちらは正確な知識がないので、間違ってる可能性大ですが・・・
確か逆指値のトリガー待ちの時だったと思ます。
#間違っていたら本当にごめんなさい。
>③注文状況の受付日時のデータは文字列ですか。
下記のように、桁数やスペースはあっていますか。
「2018/05/24 13:03:58」
はい、全角と半角の違いはありますが、桁等はあっていると思いまーす。
2018年05月24日
Sai Kyuusei
小野さん
買い注文が成行と考えているので、この間、受付日時の照合からリンクしている注文番号のマクロを作成しました。
ORDQUERY関数の戻り値について、質問させて頂きます。
①受付日時
売り注文を発注し、注文番号と受付日時をもらいました。
この売り注文の訂正注文を出すときに、注文番号が上記の売り
注文の注文番号となり、受付日時は訂正注文を受ける時間ですか、それども売り注文の受ける時間ですか。
②注文状態
売り注文を指値で出して、「注文中」「完了」「失効」というのはどんなタイミングで発生するでしょうか。
③訂正/取消可能状態
「一時不可」とはどういうことでしょうか。
④エクセルに書き込む行
最新データがどんどん最終行へ書き込むでしょうか。
注文の訂正や取消などは既存の注文にデータを更新ですか、
それども新たな行へ新規書き込みですか。
2018年05月30日
Ryo Ohno
Sai Kyuuseiさん
>①受付日時
こちらは訂正注文後のORDQUERYで帰ってくる値がどのようなものかということでしょうか?
それでしたら、
訂正注文後の『注文番号』『受付日時』に関してですが
注文番号:新規注文の時の注文番号のまま
受付日時:訂正注文を出した日時
となります!!
>②注文状態
「注文中」
指値を出して、まだ約定していない時
「完了」
指値注文が約定した後
「失効」
指値注文が時間切れで、取消となった場合
>③訂正/取消可能状態
申し訳ありません、
一時不可の状態がどのような時に発生するか、自分もわかりません。
マニュアルもひっくり返してみたのですが、どこにも書いてありませんでした(^^;
もしかすると、売買が一時的に停止している銘柄とか、
取引時間終了後から17:00頃までのシステムメンテの時間に、表示されるかもしれません。
>④エクセルに書き込む行
ORDQUERYは、確か日付の降順(新しいものが上にくる)だったと思います
また、訂正注文は既存の注文に上書きとなりまーす!!
2018年06月01日
Sai Kyuusei
小野さん
誠にありがとうございました。
来週から、試運転をかけてみます。
2018年06月03日
Ryo Ohno
上手くいくことを祈ります!!
2018年06月04日