質問掲示板
岡三RSS
集いの広場

アップロードされたファイルおよび投稿内容についての注意事項 別窓

複数の単語で検索する方法 別窓

【国内株式、先物・オプション】岡三RSS質問箱

kamap

POSITIONに関して教えてください

POSITION質問.xlsx (0.5MB)

以前、分割約条でお世話になった者です
おかげさまで、VBA取引を行ってます。
最近、銘柄制限のためにPC2台体制に変えたのですが
 (1つの口座を2台で独立にRSSを走らせています)

ところが、最近たまに片側のPCのみ、POSITIONの取得に失敗していることが分かりました。

やってることは、”TRD”シートにて
 ①成り行き買い
 ②POSITIONで買い約定の確認(分割も)
 ③指値売り注文
 ④ORDQUERY(1)で売り注文の確認
 ⑤成行売りへ変更
 ⑥ORDQUERY(2)売り約定の確認

で②が成立しません
本日、状況をみていたら、POSITIONがENDも返してませんでした

その場で、VBAの式を書くサブルーチンを実行しても、アドインの更新をしてもダメでした。
EXCELを終了して、再度実行(式のみ)したらENDがでました
実際の動作中はApplication.OnTimeが5秒間隔で走ってます
また、ORDQUERYは問題ないように思います

何かアドバイスありますでしょうか?
また、ORDQUERYで分割約定ごとに取得する方法はありますか?

該当シートのEXCELを添付します、95行が取得関数で値のコピーとなっています
実際の式を書くマクロはマクロという名前のシートに
TRD_CHK()という名前で入ってます

また、前回同様、つまらないミスと思いますが
よろしくお願いします

2020年02月03日

大野 了

kamapさん、こんにちはー!!
お久しぶりでーす!!

さて、本題ですが・・・

片側のPCのみ、POSITION関数でデータが、たまに取れない時があると・・・
毎回じゃないんですよね・・・
辛いですね・・・(涙

難しいですね・・・
上がっているソースも実行してみたんですが、問題なく書き込まれて、
ポジション情報も落ちてきました。

kamapさんのおっしゃられます通り、ORDQUERYもPOSITIONも問題ない様に思いまーす。

Excelを再起動したらちゃんと取ってくるとのことですので、
岡三RSSの環境も正常だと思います。

現状で、更新が止まる可能性としては以下のことが考えられます。

〇VBAがループなどで動きっぱなしになっている。
〇シートの『計算方法の設定』が自動以外になっている。
〇データの更新対象にならなかった


もし頻繁に起こるようでしたら、次にデータが取れなかった時に、以下のことを試して頂けますでしょうかー?

〇リボンの『数式』にある再計算実行ボタンを押してみる(F9でも大丈夫です)
〇101行目以降を選択しDELキーを押してみる

もし再計算で表示されるなら、何かしらの理由でExcelの再計算が掛からない状況になってしまっていて
岡三RSSがデータを更新できません。
また、もし101行目以降を選択して、DELキーを押して表示されるようであればー
何かしらの理由で岡三RSSが更新できなくなってるっぽいです!!



>また、ORDQUERYで分割約定ごとに取得する方法はありますか?
残念ながら・・・
確かORDQUERYはあくまでも発注した情報のみなので、
その結果までは取れなかった気がします。
一瞬でよければ、もしかしたら『約定状態』が"一部約定"で返ってくるかもしれませんが、
本当に一瞬と思いますので、判断に使用するのは厳しいと思いまーす!!

2020年02月03日

ログインしてコメントを投稿する

kamap

大野様、返信ありがとうございました

POSITION取得ができなくなった履歴を調べましたら
①PC1台の時はOK(旧PC)
②PC2台で別ファイルで動かしてた時はOK
③PC2台でファイルを共通にしてから、旧PCのみでNG発生
のようです

旧PCはEXCEL2010の32bit版で新PCはEXCEL2019の64bit版

アルゴルをいじるのを新PCに統一し、そのファイルを旧PCに
コピーして並列動作させるようにした頃からこの現象が発生
32と64の吸収は Declare PtrSafe で対応したのですが
ここに問題があったのかもしれません

とりあえず、旧PC用にEXCEL2019を購入し、64bitに
合わせて試してみます。結果が分かれば報告します

この現象は夜のデバックでは発生せず、昼間はずっと再現なので
本番の ontime が絡んでるのかなぁと思ってます

とりあえず、EXCELのバージョンとbit を合わせて神頼みですw
 新PCをいじりたく無いので、64bitでやってみて
 だめなら32bitも試してみます

2020年02月04日

ログインしてコメントを投稿する

大野 了

kamapさん、こんばんは!!

そんな経緯があったんですね・・・
それであればVBAが正常に動いてないのかもしれません。

kamapさんのおっしゃられます通り、VBA内でWindowsAPIを使用するときは
Officeが32bitと64bitで記述の仕方が異なります。

もし、64bitと32bitで完全に同じソースで行きたい場合は
下記のようにAPIの宣言に対し条件付きコンパイルを付けてあげると、
32bitでも64bitでも同じソースで動かすことができます。
※エラーで赤色にはなりますが、問題はありません。

#If Win64 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#Else
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If

また、VBAのソースに問題があるかどうかはコンパイルを行うと確認することができます。

VBAエディタの中で
『デバッグ』-『VBAProjectのコンパイル』
をクリックしますとソースをコンパイルしてくれて、問題があれば教えてくれます。

2つのPCで各々でコンパイルをクリックしてみてみますと、
ソースが正常かどうかの確認が出来まーす!!


2つのPCでうまく行くことを祈ります!!

2020年02月05日

ログインしてコメントを投稿する

RSSユーザー

kamap さん
投稿をあまり読み込んでいないので参考になるかわかりませんが、問題がまだ解決されていないならば、私の分割約定建玉決済の経験を書きたいと思います お知らせください

2020年04月12日

ログインしてコメントを投稿する

すべての投稿を表示する

to_top
to_top

アップロードされたファイルにはウイルスチェックを行っておりますが、未知のウイルス等に感染されている場合がありますので、アップロードされたファイルのご利用はご注意ください。
また、取引パスワード等の重要な情報を投稿内容に含めないようご注意ください。
なお、アップロードされたファイルの利用や投稿内容によって、投稿者自身や他の利用者が被った損害に対して当社は一切責任を負いません。

また、セキュリティの関係上、一部コマンド等を含む内容を送信するとエラー画面が表示され、投稿ができない場合がございます。何卒ご了承ください。

岡三RSS集いの広場では、複数の単語による検索が可能です。

例)関数 and サンプル
→AND検索となり、「関数」および「サンプル」を含む検索結果が表示されます。

例)関数 or サンプル
→OR検索となり、「関数」または「サンプル」を含む検索結果が表示されます。

例)関数 not サンプル
→NOT検索となり、「関数」を含むが「サンプル」は含まない検索結果が表示されます。

※and、or、notの前後は半角スペースで区切ってください。
※単語の間を半角スペースで区切るだけだと、OR検索となります。