ヒストリカルデータ取得 VBAの考え方 / 基本二要

ヒストリカルデータを取得する

エクセルにネットで配信されているcsvデータなどを取り込むことでネット上から検証用やロジック作成用の過去データを取得することができます。
例えばTradeロジックに過去数十日間の移動平均などを用いる場合には。楽天RSSなどによるリアルタイムデータだけでは十分ではありません。
そのためのデータを取得するという方法がありますが。データ配信などを行っているサイトの自動取得についての了解はなかなか得られないと思います。

このサイトでも過去にここで紹介するような方法による自動取得を計画したころがありましたが。自動Tradeに使うデータはそのデータの不具合が元でTradeの損失が出た時にかならず。事前に十分説明していても苦情やトラブルが有るということを耳にしているために現在のところは検証用としてのみの配信に留めています。

ネットという環境でTrade用のデータを提供する場合にはかなりの配信システムの信頼性が必要ということで。このサイトも含めて自分で配信元を見つけた上で。あくまでも自己責任で取得ということになります。
ここでは便宜上。世の中で広く用いられているヤフーファイナンスのヒストリカルデータの取得と言う方法に限定して紹介します。

WEBクエリ機能でネット上のデータを取得

エクセルにはWEBクエリと言う予め用意されたネットからデータを取得するツールが有ります。
また。VBAでもインターネットエクスプローラを介してウェブ情報にアクセスしたり。そこから所定の情報を取得することのできる方法があります。

ここでは簡単な備え付けのWEBクエリを使ってヤフーファイナンスから為替の価格情報を取得しています。
長期のデータを確実に取得するためにヤフーファイナンスの時系列を月単位で指定して。その月を遡って行くと言う方法で長期データを取得する例を記述しています。

サンプルファイルのそれぞれのコードに注釈を説明していますが。月を捲って必要なデータをエクセルに並べた上で。データでない部分をすべて消去し。エクセルの「並べ替え」機能を使って整形しています。

「並べ替え」では指定した順番にデータが並べ替えられるため不必要なデータを消去されたあとの空白行がすべてデータの最後に回されて。中身のあるデータだけが詰まって並びます。

また。データ並べ替えの際に昇順・降順の指定もできるために。これらを使ってデータは必要な形式に並びます。

シート上部の「データDL」ボタンをクリックすることで動作を確認できます。

また。VBEを開いてコードを注釈から確認することができます。

注意点はVBAからIEを経由してデータを取得するのと異なって。クエリではデータを取得したエリアがデータの元のサイトなどとリンクを張った状態になるので。不都合回避のためにこれを必ず解除する必要があります。
コード中の。

qt.Parent.Names(qt.Name).Delete。
qt.Delete。

の部分で。解除していますが。思わぬミスコードによるエラーなどを回避するためには取得したデータを別のシートに写した上で元のエリアを全削除するなどの方法でクリアできます。
ここは。予期せぬエラーの原因となる場合があるため注意が必要です。

 VBAコードサンプル エクセルファイル

下のメニューの「自動Trade用VBAチップ ファイル一覧」などのリンクページから各種研究用・分析用のエクセルファイルをダウンロードできます。

エクセルでVBA自動Tradeシステムを作る際に参考にしていただく素材集です。
このコーナーへのアクセスが多いようなら更に素材を追加します。

もっともよく知られたテクニカル指標の計算ファイルです。
トレンド系とオシレータ系の代表的なものを集めています。

ワイルダーの開発したテクニカル指標の計算ファイルです。
現在広く使われているのテクニカル計算法の基本的な指標群です。

バンド系。チャネル系テクニカル指標の計算ファイルです。
逆張りエリアや過熱エリアなどの境界検出に用いられます。

代表的な各種の移動平均をそろえた計算ファイル集です。
各テクニカル指標の移動平均部分で差し替え検証などを行うことができます。

エクセルで自立型のTradeシステムを作る際に参考にしていただく素材です。
更に素材を追加する予定です。

広告



 サイトからのお知らせ。
・11/21日 最新のお知らせや重要なサイトの更新は現在特にありません。

エクセル用無料ファイル(四本値&インジケーター)
 各種ファイルは利用者の共有資料です。(ダウンロードフリー)

・このサイトはグーグルクロム(PC)に最適化しています。
Sponsored Links


TOP