新参者
FNEWORDERの指値注文時の制御について
どなたか詳しい方におたずねします。
FNEWORDERで指値注文をして
なかなか約定しないので成行に変えようとする場合、
FOPPOSITIONが***END***である事を確認してから
FORDERCANCELでキャンセルして
FNEWORDERで成行注文を入れようとすると
できません、みたいなメッセージがでて
40秒後ぐらいに指値注文が約定するということがあります。
これは、一度、FNEWORDERで指値注文を入れると、制御が岡三rssにうつってしまい、
エクセルの関数もvbaも黙ってしまうということでしょうか。
岡三オンラインに確認したところ、
発注して注文が受け付けられればキャンセル等の命令は可能との事ですが
(スマホからの注文ではそうですが)
vbaで実行している限り、
一回FNEWORDERで指値注文を入れると、
約定するまで制御がかえってこない感じがします。
FNEWORDERで指値注文をして
約定しないうちに成行に変える(キャンセルしてから成行で注文する)
ということは普通にできるのでしょうか?
2022年01月12日
新参者
考えてみれば出来ないわけないですよね。
FORDERCANCELという命令があるのだから。
もう少し考えてみます。
2022年01月12日
大野 了
新参者さん、こんにちは!!
こちらですが、結論から申しますと、
岡三RSSで指値発注後、キャンセル後、成行で発注することは可能です。
※自分もやっています!!
40秒後に指値で約定しているところを見ると、一発目のキャンセルの発注がうまく行っていない感じがしています。
ORDERRESULT関数を使用して頂くと発注エラーの原因が分かりますので、
一度、こちらで原因を確認して頂けますでしょうかー?
もし関数の使い方に問題がなければ、発注ID等が重複していると思われます!!
2022年01月12日
新参者
早速のご返答ありがとうございます。
大野さんが別の箇所で説明されている
Application.CommandBars("岡三RSS2").Controls.Item("更新").Execute
DoEvents
等と使ったら使える様になりました。
sleep等で待っていると、エクセルが更新されないのかも知れません。(そんな事ないのかも知れないですが)。
どうもありがとうございました。
2022年01月12日
大野 了
新参者さん、こんにちは!!
なるほどー
DoEventsで動くようになったということは、
VBA自体が永久ループのような形で動き続けてますでしょうか?
もしそうであれば、ExcelがVBAの処理に夢中で、岡三RSSの情報の更新がかかってなかったためと思われます。
DoEventsは、Excelに『VBAばっかり処理するなよ』とお願いする関数になりますので、
DoEventsを入れたことにより岡三RSSのFOPPOSITIONが正常に動作できるようになったのだと思われます!!
また、Sleepですが新参者さんのご認識通り、
Sleepを使用中は岡三RSSも止まってしまい更新ができません!!
なにはともあれ、無事に動いてよかったです!!
2022年01月12日