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

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

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

【RSS 365FX、RSS 365CFD】質問箱

のび太

HISTORICALRATEDATAAUTOの価格取得の所要時間は正規分布ではない件

他スレッド(「HISTORICALRATEDATAAUTOの取得本数がおかしい」「単位時間あたりにアクセスが集中しました」)に書いたことにも関係するのですが、新しい事柄なので、別スレッドにします。

時々、価格取得に失敗することがあって、どうにも謎だったので簡単なテストプログラムを書いて、CFDHISTORICALRATEDATAAUTOによる価格取得の所要時間を調べてみました。
すると全く正規分布にはなってなくて、2秒程度で更新される場合と10秒以上かかる場合とに二極分布していることが分かりました。
RSSの仕様になんらかの問題があるのだろうと思いますのが、いずれにせよこの事実は運用上の注意を要することだと思いますので、念のためみなさんに情報共有します。

ネットトレーダーで「単位時間あたりにアクセスが集中しました。しばらくたってご利用ください」というメッセージが表示されることがあるので、仕様上の何らかのネットワークのボトルネックが関係するのかもしれません。そうだとすると、「HISTORICALRATEDATAAUTOの取得本数がおかしい」の原因も関連するのでしょう。
もしそうなら、システムの改善を希望します。

関連して何かご存じの方があれば教えてください。

2025年05月05日

大野 了

のび太さん、こんにちは!!

では、自分もこちらにまとめてー
情報共有ありがとうございます!!
ありがたい限りです!

こちらは、CFDHISTORICALRATEDATAAUTOで取得間隔を60秒などにしておいて、
60秒ごとに行われるCFDHISTORICALRATEDATAAUTOの実行時間がxxx秒かかるという情報の分布になりますでしょうか?
※実行が2秒程度で終わる場合や、10秒以上かかってしまうなど両極端
※ホントは最頻値や平均値で正規分布してほしい


『単位時間あたりにアクセスが集中しました。』を再現させたいところですね。
もうちょっと再現できないか、チャレンジしてみます!

2025年05月05日

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

のび太

大野さん

早速ありがとうございます

>CFDHISTORICALRATEDATAAUTOで取得間隔を60秒などにしておいて、
>60秒ごとに行われるCFDHISTORICALRATEDATAAUTOの実行時間がxxx秒かかるという情報の分布になりますでしょうか?

以下のような処理を行っています。

1.画面をアクティベイトした後で、そこに表示されたヘッダーより下のデータをいったん全て空白にする
2.空白にしたセルに新たなデータが表示されているかどうかをチェックする*(空白である場合は、2秒待機して繰り返し合計50回まで*を行なう。リソース不足になることを回避するため、再帰処理は使わずdo whileとgotoで繰り返し処理する。)

処理2においては、2*5秒以上かかる場合は、単に待機するだけではなく、RSSアドインの更新をかけるようにしています。
(以前、大野さんに教えていただいた方法が役に合っています。改めまして、お礼を申し上げます。)

すると、2*1秒で収まる場合もありますが、2*5秒以上かかることも結構あり、その途中の秒数(2*2秒から2*2秒)で収まることは少ないので、結構二極分解します。
ということは、仕様上のなんらかのネットワークボトルネックで更新が必要なシステム状態になっているのかもしれません。

また、私はCPUはi3からi9まで、メモリは16GBから128GMまでいろいろなPCを利用していますが、低機能のPCのほうが止まってしまうことが多いようです。
もしかしたらCPUやメモリがボトルネックなのかもしれません。
といっても、単純な処理すし、CPUi3メモリ16GBでもタスクマネージャで見ると余力はたっぷりあるので、CPUやメモリがボトルネックとはちょっと考えられないです。

もしかしたら、仮想メモリが無駄に多くなっていてボトルネックになっているかもしれないので、今後仮想メモリをゼロにしたらどうなるかも調べてみます。

2025年05月06日

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

大野 了

のび太さん、こんにちは!!

なるほど!!
純粋に更新処理にかかる時間を観られてるんですねー

もしあるとしたら・・・
『再帰処理は使わずdo whileとgotoで繰り返し処理する』
こちらの処理をonTimeメソッドに変更する感じでしょうか・・・

ザラ場中は価格のチェックなどの処理を動かし続けたい為、do whileなどで繰り返し処理をされていると思います。
ですが、基本RSSはVBAが動作している時はシートへの更新処理が行えないため、いったんVBAを終了させてあげる必要があります。

このため、VBAから自分自身のVBAを呼ぶような形に変更することにより、動作が安定します!!


以前いただいた質問のリンクで大変申し訳ございませんが、こちらをご参考いただけますと幸いです。
onTimeの使い方
https://bbs.okasan-online.co.jp/ont/rss/board/?page=1&topic_id=258#comment_1385


これで直るとよいのですが・・・

2025年05月07日

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

すべての投稿を表示する

to_top
to_top

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

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

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

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

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

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

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