yamada
DoEvents関数の使い方について
初めて質問させていただきます。
現在15分足の4本値を取り込み、それを加工(再計算)して発注サインを発生させているのですが、新規の15分足の更新時に取り込みの順番やエクセルの再計算の関係(?)で、意図しないところでサインが出てしまいます。
※エクセルは自動で再計算させています。
そこで新規の足を取り込んだ時に下記のVBAを実行させ、ある一定の時間(5秒)は発注をストップさせ、ループ中にDoEvents関数により4本値の取り込みは行うことを考えましたが、実際はループ中は4本値の取り込みは行われず、ループ終了後に取り込み場行われます。
DoEventsの実行時、岡三RSSの処理が行われると伺ったのでこのような処理を考えたのです・・・。
関数の使い方がよくないのでしょうか。
尚、別な方法で私のやりたいことができるのであればその方法をご教授いただければ幸いです。
Dim tNow As Long
hachu = 0
tNow = Timer
'5秒間発注停止
While Timer < tNow + 5
DoEvents
Wend
hachu = 1
2019年01月21日
Ryo Ohno
分足完全取得.xlsx (36.4KB)
yamadaさん、こんばんは!!
DoEventsの関数に関してですが
yamadaさんのロジックをそのままコピペし、
5秒を、2分まで増やして動かしてみたのですが、
2分間、岡三RSSの情報が正常に更新され、VBAで更新後の内容も取得が出来ましたので、
ロジック自体には問題は無いと思います。
多分、yamadaさんもおっしゃられてます通り、
4本足の始値~終値の時間がずれてるため、誤発注がかかっていると思われます。
15分足は1日分の日足を使ったりされてますでしょうか?
もしそれでしたら、各足の合計数を取得し、その合計数が一致すれば、
対象の分足が完全にとれているという判断ができますので、
これで誤発注が防げると思われます。
言葉だと説明が難しいので、Excelブックを作ってみましたー
2行目で、各足が何本取れているかを取得し、
G2で取得できた足の数がすべて同じであれば、データがきちんと取得できていると判断しています。
わかり辛い点がありましたら、再度ご連絡を頂けますと幸いです!!
2019年01月21日
yamada
早速のご回答、ありがとうございます。
ご教示いただいた内容で試してみます。
今後ともよろしくお願いいたします。
2019年01月22日