SSブログ

世の中には凄い人がいたものです! [雑感]

先日公開しました当日データ取得更新マクロですが、その後同様のエクセルツールをいろいろと試してみたところ、世の中には凄い人がいるものだと、改めて感心いたしました。
ツールの入手先はVectorで、エクセルで動作するフリーソフトをいくつかダウンロードし、実際にデータを取得してみました。

動作確認の結果、それらの中でも特に秀逸だったのが、はちべえ氏が作成した「株価情報一括取得ツール」です。
はちべえ氏はご自身でもサイトを運営しており、リンクフリーとのことですので、以下にリンクを示します。

  「初心者が始める株&副業でハッピー計画!」
   http://happy.kabu-web.net/

こちらでは、上記のツール以外にも、時系列データ取得ツール等、いくつかの株式関連ツールを公開していますので、興味のある方は一度訪問してみるといいかもしれません。
時系列データ取得も、信じられないくらい高速です。私のGatewayマシンで試してみたところ、1993年11月1日以降のデータ取得に要した時間はわずか30秒程度でした。

話が前後してしまいましたが、「株価情報一括取得ツール」で全市場データ(ただし事前に登録した3,775銘柄)の株価データの更新に要した時間は、私のGatewayマシンで3分50秒ほどでした。
さらに、エクセル2007で実行すると、マルチスレッドが働くためか3分30秒ほどになります。

私が作成したマクロでは、単独実行で40分ほど、4並列実行でも10分ほどかかりましたから(ただし4,042銘柄です)、はちべえ氏のツールの速さは圧倒的です。
もちろん、プロジェクトはロックされているので、何故そんなに高速なのかは分かりません。

ただ、サイトへのアクセスを並列化しているらしいことと、タイムアウト処理を備えているらしいことは推測できます。
試しに、サイトにアクセスしてデータを読み込むだけのマクロを作成し、実行時間を計ってみたのですが、それでも1銘柄当り0.3秒以上かかります。全銘柄では20分も掛かる計算です。

しかし、エクセルのVBAでは基本的に逐次処理しかできませんし(私がそう思っているだけかもしれませんが)、もしも並列処理を行うのであれば、私が行っているように複数のエクセルを起動してやる必要があるように思えるのですが、全くそのような気配はありません。

とりあえず、データを取得して簡単な処理をするだけであれば、CPU負荷やメモリ消費はそんなに大きくなりませんので、私のマクロを思い切って8並列、さらには16並列で実行してみました。
さらに、現状では10銘柄取得毎にセーブをしていましたが、それを撤廃してみました。

その結果、8並列では全ての処理が完了するまで6分前後、16並列で5分前後という結果が得られました。それでも、はちべえ氏の4分以内という結果には敵いません。
ちなみに、10銘柄毎のセーブを撤廃して4並列実行すると、9分弱で処理を完了しました。

何にしましても、はちべえ氏の「株価情報一括取得ツール」は素晴らしいの一言に尽きます。私も氏のレベルに到達したいとは思いますが、歴然とした差を感じずにはいられません。
エクセルを使わないツールではもっと高速のものがあるのかもしれませんが、エクセルの限界を分かっていたつもりになっていた私にとっては衝撃的でした。

nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:

nice! 1

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。