kamap
日本株の信用取引、分割約定について教えてください
やってる事は、
①成行買い(11列) 分割されているか列9にcheck
②指値売り(16列)
③成行売りへの変更(21列)
なのですが、分割約定の場合②の売りができません
約定毎に売り注文を出してるのですが、どこがいけないのでしょうか?
分割でなければ、②も③も正常に動いてます
よろしくお願いします
2019年12月19日
アップロードされたファイルにはウイルスチェックを行っておりますが、未知のウイルス等に感染されている場合がありますので、アップロードされたファイルのご利用はご注意ください。
また、取引パスワード等の重要な情報を投稿内容に含めないようご注意ください。
なお、アップロードされたファイルの利用や投稿内容によって、投稿者自身や他の利用者が被った損害に対して当社は一切責任を負いません。
また、セキュリティの関係上、一部コマンド等を含む内容を送信するとエラー画面が表示され、投稿ができない場合がございます。何卒ご了承ください。
岡三RSS集いの広場では、複数の単語による検索が可能です。
例)関数 and サンプル
→AND検索となり、「関数」および「サンプル」を含む検索結果が表示されます。
例)関数 or サンプル
→OR検索となり、「関数」または「サンプル」を含む検索結果が表示されます。
例)関数 not サンプル
→NOT検索となり、「関数」を含むが「サンプル」は含まない検索結果が表示されます。
※and、or、notの前後は半角スペースで区切ってください。
※単語の間を半角スペースで区切るだけだと、OR検索となります。
大野 了
kampaさん、こんにちは!!
分割されていなければ、正常に動作するとのことでしたので、
多分、決済の枚数絡みだと思いますが、
添付頂きましたファイルのセル関数の式が消えていて
判断がつかない状況です。
出来れば関数の式のままファイルを上げて頂くと、何かわかるかもしれませんっ!!
また、エラーになった時、岡三RSSのエラーメッセージが画面の右下の方に
ポップアップで出ると思うのですがー
そちらはどんなメッセージが出ていますでしょうかー?
2019年12月20日
kamap
分割約定の質問1220.xlsx (15.9KB)
レスありがとうございました
失礼しました、式入りのファイル添付しました
VBAでの自動売買をおこなっており、SIGが発生するとこのシート
にて前回の①から③の動作を行わせています
21行目で買いを行い、POSITIONで2分割約定していることから
22と23に約定値と約定数を書き込んで
(10分割されたら破綻しますがw)
売り動作をおこなった結果なのですが、売り動作自体は発注完了になっていますが
ORDQUERYにて執行中にならず止まってしまいました。
エラーメッセージは見るようにしてなかったのですが、参考のために追加しました。ORDERRESULTのエラーメッセージですよね?
また、②が動いた場合の③成行売りへの変更も式をBに入れましたのでアドバイスお願いします
2019年12月20日
大野 了
kamapさん、こんにちは!!
ファイルありがとうございます!!
VBAで売買されてるんですね・・・
ごめんなさい・・・
VBAのソースが無いのと、Bの部分の取得関数などいくつかセル関数が抜けているので、
何とも言えないのですが、
動きを整理させてください。
以下、想像の部分が大半なのですが・・・
まず、全体的な動きとして・・・
・1列の、2桁目が同じもの、11~19までが1つの銘柄に対する新規発注や決済などのワークフィールド
・VBAにてシグナルを感知して、シグナルが出ると・・・
11や21などに新規発注のための情報を書き込み、11列でMARGINORDERを書き込んで新規発注
・新規発注が終われば、ポジションなどをVBAで監視して、1列が12や22に決済のための情報を書き込み
・16列以降に、決済用のREPAYMENTORDERなどを書き込み
・書き込んだ後に15列のフラグを立てて、決済発注
・損切になれば 20列にフラグを立てて、損切様に注文を変更
という感じでしょうか
大半が妄想なので、間違っていらすみませんw
ちなみに、Bの部分はどうやって取得されているのでしょうか?
いきなり値だけ出ていて、判断がつかず・・・(ごめんなさい
もし、上記の場合、分割約定しなかった場合は正常に動いてるとの事と、
16列のAの部分の関数も問題なさそうなので
多分、建玉枚数関係か建単価関係だと思います。
だとしたときに以下の点が気になりました。
・建単価の取得用のPOSITION関数が無い(たぶん取得金額から保有数量を割って出している?)
こちらは取得単価にて、建単価を取得できますので、それを使ったが安全かもしれません
・決済の情報をたぶんVBAで転記されている思うのですが、そのタイミングが
POSITION関数の動きの間に入って動いてしたりして、転記と決済関数の動作タイミングがおかしい
>エラーメッセージは見るようにしてなかったのですが、参考のために追加しました。ORDERRESULTのエラーメッセージですよね?
こちらは、3種類のエラーの見方があります
・ORDQUERYで、第一引数に3をしてして約定のエラーを見る
・ORDERRESULTでエラーメッセージを見る
・REPAYMENTORDERが実行されたときに、左下にポップアップでエラーが出力される
この3つのどれかで、エラーが表示されていると思います!!
2019年12月21日
kamap
分割約定の質問1221.xlsx (16.3KB)
大野様レスありがとうございます
ファイル添付します
Bの部分は95列目にあり、結果は101行からなのですが
チェックした時点でのログをのこしてます
>動きを整理させてください。
はい、大野様の推測通りです
少し説明を書きます(PW等は省略)
1)買い動作
CODE,VOL(買い株数)を記入して11列の実行
2)買い注文の検証
Bブロック(ログなので行位置はズレている)から
約定回数に応じて、約定値と約定数(VOL)を記入
3)指値売り動作
必要パラメータは揃ってるので(?)16列実行
4)指値売り検証
Dブロックにて注文番号を取得し5列に記入
5)成行売りへの変更
注文番号は取得済なので21列実行
6)売り約定の検証
Eブロックにて終了を確認
という流れです
今回は、エラーメッセージの確認はできて無いのですが
3)の結果が”発注完了”になっており、4)のORDEQUERYで
止まっている状況です
800の注文に対し、300と500に分割されてそれそれの
約定金額もPOSITIONのログと一致しているのですが
そもそもの考え方が足りないのかな?と思い質問させて頂いてます
よろしくお願いします
2019年12月21日
大野 了
kamapさん、こんにちは!!
なるほど!!ログだったんですねー!!
だいぶ悩みましたw
ログ残ってるとありがたいですね
ログだとしたときに・・・
101行目の約定の部分(B101~G101)を見てみますと、
成行で決済がかかってるように見えるのですがー
問題の現象としては、
『ホントは指値で出したかったけど、なぜか成行で発注してしまっていて、
受付中にならず、4)の指値検証ができない』
と感じな感じがするのですがあってますでしょうかー?
でも、16列を見る限り、指値で発注してる感じですよね・・・
ちなみに、16列のREPAMENTの関数は、VBAで書かれてますでしょうか?
それとも本来のExcelシートには最初から関数は書いてあって、
VBAにて15列(O列)のフラグをたてている感じになりますでしょうかー?
多分、考え方とかは完璧と思うのですが・・・
VBAの処理順とか、書き込むタイミングとかで発生してる気がしまーす。
成行で決済がかかってしまっていたのであれば、
ポップアップに『対象の建玉がねーぜ』的なエラーが出てたと思います。
分割約定させないといけないので、テストが大変ですね・・・これは・・・(涙
2019年12月22日
kamap
大野様こんにちわ、説明が下手ですみません
>101行目の約定の部分
分割約定で止まっているのを認識して、HPから手動で成行売り
を行いました。101行はその結果が反映されています
HPからの注文照会でも、その1件はPCで以外の3件は
ネットトレーダーとなっていました
>16列のREPAMENTの関数は、VBAで書かれてますでしょうか?
SIG発生の都度、9列の約定回数を見てFOR分で回して
書いてます
Cブロックは質問のために後から追記してます
過去ログを検索した際に、”枚数”と”枝番”という私の知らないワードが出ていたのですが、日本株の信用取引では関係ないのでしょうか?
また、ORDERRESULTでのエラーは積み重なっていく形式でしょうか? ログ形式に残さないと上書きされる?
また、ORDQUERYで、第一引数に3をしてしてのエラーは
VBAで取得できますか?ポップアップでしょうか?
実際にある程度の売買を行わなければ検証できないので
ドキドキですw
2019年12月22日
大野 了
kamapさん、こんにちは!!
なんかわかった気がします。
この銘柄、S高してたんですね・・・
今回は分割約定が原因というより、値幅制限に引っかかってると思われます!!
この銘柄は18日の終値が、665円なので、19日の値幅制限は565円~765円になります。
しかし、4列で一日の値幅制限を超える766円で指値価格を指定しているため、
値幅制限超えで失効してるんだと思われまーすっ!!
値幅制限内で、指値を指定してあげるとうまくいくと思いまーす!!
&
ご質問の内容に答えますw
>過去ログを検索した際に、”枚数”と”枝番”という私の知らないワードが出ていたのですが、日本株の信用取引では関係ないのでしょうか?
枝番は先物での扱いになりますので、信用取引では関係ないでーす!!
>また、ORDERRESULTでのエラーは積み重なっていく形式でしょうか? ログ形式に残さないと上書きされる?
これは積み重なっていきますがー
日にちが変わると消えてしまうので、後日また観たいのであればVBAなどで転記してあげる必要があります!!
>また、ORDQUERYで、第一引数に3をしてしてのエラーは
>VBAで取得できますか?ポップアップでしょうか?
こちらはVBAでもポップアップでもなく、約定済みのORDQUERYと同じようにセル関数として書いてシートに書き出す形となります!!
確かにVBAで取れると便利なんですが・・・
2019年12月22日
kamap
大野様こんいちは
値幅制限ですかぁ、お騒がせしました
SIG演算の都合上、値段は全て一定値になるように正規化して
アルゴくんでたもので、実際の値段に関して意識が薄かったです
また、損切りのリミットも価格連動にしているため、最初の指値
は高めに設定してました、値幅制限のアルゴ追加します
丁寧な対応ありがとうございました
2019年12月23日
大野 了
kamapさん、こんにちは!!
S高が続いた上に、たまたま値幅の制限を超えちゃったからですねw
なにはともあれ、お役に立ててよかったです!!
2019年12月23日