みね
更新速度の設定について
新規信用注文→約定→POSITION関数により保有情報更新→信用返済注文の手順で自動売買を行っているのですが、新規信用注文約定後の保有情報の更新に少し時間がかかっている感じがします。
更新速度は0~10mmの間で試しているのですが、更新速度を速く設定しすぎると逆にレスポンスが悪くなってしまうこともあるのでしょうか?
ちなみに古いノートPCではありますが、2コア4スレッドのcore i5で1銘柄のみの取引(マクロ未使用)、通信回線のping値は80ms程度です。
2020年05月30日
大野 了
みねさん、こんにちはっ!
岡三RSSの更新が止まったり遅くなったりしてしまう原因としては、以下の2点が原因のことが多いです
・マクロが裏で動いている
・Excel(同一プロセスの場合、別のExcelでも影響がある)で何か作業をしていた
もし同時間にExcelで作業をされていないのであれば、マクロも使われていないとのことですので、
環境上の遅延だと思われますっ
PCのスペックはメモリがどれくらいかわかりませんが、お聞きしているスペックでは問題はないと思います。
Ping値は若干遅めな感じですが、岡三RSSを使用する上では問題ないと思われます。
POSITION関数の応答時間はどれくらいでしょうかー?
Excelを使う関係上、ネットトレーダーと同等の反応速度で動かすことは難しいみたいで、
自分の環境では、約定後1,2秒、込み合って遅い時は10秒ぐらいかかる時があります。
しかし、毎回1、2分とかかかるとなると別に問題があると思われます。
2020年05月30日
大野 了
もし、Excelの動作が遅いのが原因の場合、以下のオプションを確認して頂くと良いかもしません・・・
オプションダイアログの詳細設定を開く
(ファイルーオプションー詳細設定タブ)
・表示の中にある『ハードウェアグラフィックアクセサレータを無効にするに』
にチェックを入れてみる
→ 古いPCだとこれにチェックを入れると描画が早くなる時があります
・数式の中にある『マルチスレッド計算を行う』
のチェックが入っていて、『このコンピュータの全てのプロセッサを使用する』
にチェックが入ってることを確認する。
多分、効果は無い可能性が高いのですが、ぱっとできる範囲で・・・
2020年05月30日
みね
大野さん
ありがとうございます。
POSITION関数の応答時間は、感覚的なものですが、速い時は1秒以内、遅い時は4~5秒かかっているような印象です。
メモリは8Gで、取引時間中は3G程度しか利用していません。
EXCELのオプションについては、ハードウェアアクセラレータの無効化、マルチスレッド計算の有効化はともにチェックしており、取引時間中のCPU利用率が50%を超えることはほぼありません。
サーバの負荷が高くなった場合に遅延が発生するのであれば、それほど効果はないのかもしれませんが、今週中に通信環境が光回線化しますので、しばらく様子を見てみます。
2020年05月31日
大野 了
みねさん、こんにちは!!
なるほどー!!
そういうことなんですねー
岡三RSSの場合、Excelでの表示等もあるので、
POSITION関数の表示等にどうしても、数秒かかってしまうみたいです。
なので、遅い時に4,5秒なら岡三RSSとしては問題ないのかもです。
もし新規発注が成行で、
約定後、ミリ秒単位で少しでも早く決済注文を出されたいのでしたら、
投機実行というPGの作り方があります。
これは相手先の処理の結果を待たずに、
次の処理を先行してやって、
あとで帳尻を合わせるというやり方になります。
今回でいうと、
新規発注後、POSITION関数の更新を待たずに、決済注文を繰り返しだし、
POSITION関数が更新されたら、発注処理を止めると・・・
もちろん、約定自体しているかわからないし、
ポジション情報も更新されていないため、
建玉が無いだの、決済建玉が無いだの、エラーは出るのですが、
もし市場で約定して、
岡三オンライン証券さん側のポジション情報が更新されれば、
その瞬間に決済注文が通るので、
岡三オンライン証券さんのポジション情報がExcelに更新される間の時間は稼ぐことができます。
エラー処理もいりますし、だいぶシステムが複雑になってしまいますが、
リアルタイム性が上がると思います!!
※そもそも大量に投げすぎると間違いなく問題になると思いますので、
※ここら辺のさじ加減も必要かもしれません。
※0.5秒ごとに1回とか・・・
>更新速度は0~10mmの間で試しているのですが、更新速度を速く設定しすぎると逆にレスポンスが悪くなってしまうこともあるのでしょうか?
返答忘れてました。
これは更新速度を上げるだけではPCの負荷はあまり上がらないのですが
この更新速度の間隔で岡三RSSの関数の描画がかかりますので、
岡三RSSの関数が多くなると掛け算で負荷が増えて、レスポンスが遅くなるかもしれません。
2020年05月31日
みね
大野さん
ありがとうございます。
投機実行については(言葉は知りませんでしたが)検討しているのですが、銘柄数を増やしていくとエラーだらけになってレスポンスが悪くならないか心配しています。
更新速度については、規定値(500ms)を考えると、あまり速くしすぎないほうがいいかもしれませんね。
いろいろと試してみます。
2020年05月31日
みね
現在の返済注文方法はそのままにしておいて、保険として1秒間隔程度での投機実行を追加すればエラー数もそれほど気にならないですね。
新規発注は指値でやってますので、注文中の情報から指値+αで返済注文を見込み発注してみます。
大野さん、アドバイスありがとうございます。
2020年05月31日
大野 了
みねさん、こんにちは!!
新規発注は指値なんですねー
指値の場合はいつ約定するかわからないので、
投機実行的に発注される注文が長時間なる可能性が出てくるため、
止めたが良いと思います。
もし1時間約定しなかったりすると、3600回も空の発注が掛かってしまうので・・・
他の証券会社のお話ですが、
知り合いがプログラムミスって、約定できない発注を延々と繰り返してしまったときに、
電話がかかって来て怒られたと言ってました・・・(笑
2020年05月31日
みね
大野さんのコメントを見る前に今日試してみたところ、エラーでRSSが止まってしまいました。
指値注文ではありますが、値が反対方向に行くと早めに注文キャンセルするようにしているため、延々と空の発注がかかることはないのですが、投機実行はやめておきます。
2020年06月01日
大野 了
エラーで止まってしまいましたか・・・
なにはともあれ、値が反対方向に動くと指値のキャンセルって動きいいですねー
考えたこともなかったんですが、資金効率が良くなりそうです。
なんかの機会にまねさせてください(笑
2020年06月02日