[1] tp01-ダウンロード(Yahoo)の使用方法

自分の書いた本「新・ExcelVBAで極めるシステムトレード 〜パワーアップ編」
では、Webページの株価データダウンロードは、HTMLファイルのソースをメモ
リーへ取り込み、必要部分をExcelシートへ取り込む方式で正規表現を使い
データを取得しました。Webクエリ機能で実行に比べ3倍以上高速で処理でき
ます。ここで紹介の全ツールは正規表現での株データ取得方式です。

正規表現とは、文字列の特徴(パターン)を記号化して表現するものです。
複雑なパターン マッチングと、テキストの検索置換アルゴリズムを開発するた
めのツールで、特定の文字列にマッチするパターンを作成することでデータの
検索、抽出、または置換を完全に制御することができます。


(1)ワークシートメニューへ追加した項目クリックで実行
Excel2007ではリボンに「アドイン」が追加され「アドイン」クリックで追加メニューが

(図tp01-1 メニュー例:Excel2016)


(2) 実行指定ダイアログから制御
追加したメニューの「データ取得」クリックで図1-21cの実行指定ダイアログが
表示されます。必要事項を入力して「ダウンロード」ボタンクリックで指定期間の
時系列株価を取得できます。
(図tp01-2 制御ダイアログ表示例)


[1]データ収集の最終日指定(デフォルトは本日の表示)
[2]取得日数指定(50*指定値となります。例:50*2=100日)
  データ取得日:[1]-[2]のスタート日 〜 [1]の最終日
(取得日数は祭日や休日を簡単に省けない関係で、日数は目安であり完全
  一致ではありません。表示より少し多めに取得します)。

[3]実行する銘柄コードの指定
  ケース1:「銘柄コード」ボックスは4桁のコードを入力
  ケース2:「日経平均」or「TOPIX」をオンにする
  ケース3:社名(一部でも可)を「社名入力」ボックスへ入力し「コード検索」
     ボタンクリック。一致した場合「銘柄コード」ボックスにコードが入ります。
検索は「ToushoNoシート」にある銘柄が対象です。現在東証1部2部
     のみ登録してありますが、必要に応じて銘柄を追加して下さい。

(なお、「ToushoNoシート」は非表示になっています。表示はメニューの
 「ウインドウ」「再表示」クリックで、ダイアログにあるt1-ダウンロード.xlsをクリック
 で表示できます。表示した場合は「ウインドウ」「表示しない」をクリックして再度
 非表示にして下さい)

[4]「ダウンロード」ボタンクリックで時系列データ取得がスタートします。

(3) シートに株価を取り込んだ例
YahooファイナンスのWebでの並び順は「始値」「高値」「安値」「終値」「出来高」
ですが、Excelの既存機能でローソク足チャートを作成の場合「出来高」が「始値」
の前にあるのが標準であり簡単にチャートを書けるよに図1-21dのようにマクロ
で列を並べ替えてあります。

(図tp01-3 シートに株価を取り込んだ例)



取得データが日経平均の場合は出来高がないので並べ替えは行っていません

(図tp01-4 シートに日経平均を取り込んだ例)



取得データが日経平均の場合は出来高がないので並べ替えは行っていません

(図tp01-5 シートにTOPXを取り込んだ例)



【ポイント2】
Webクエリでデータを取り込む場合はExcelの内部機能で自動的にシートに
データが貼り付きましたが、正規表現使用の場合は自分で貼り付ける関係で
どの配列番号にどんなデータが入っていりか把握しないとシートへ貼り付ける
ことが出来ません。データの内容はYahooファイナンスと後で紹介するInfoseek
とは異なりますし、「今日の値動き」や「財務指標」も時系列とは異なります。

したがって、取得データごとに配列要素を調べる必要があります。
ここでは以下に時系列データの配列要素を紹介します。
(時系列週データ、時系列月データ、TOPIXについてはPART11を参照のこと)


(5)-4 正規表現で株価データ取得
このプロシージャで正規表現を使用してWebページの株価データを取得して
います。概略の流れとしては「指定したURLページをメモリーへ取り込む(具体
的には変数dthtmlへ代入)」、「そのデータから株価分を取得(具体的には
変数dthtmlへ代入)」、「株価データをパターンにマッチしたアイテムに分割
取得(具体的には配列 hdat(*)へ代入)」等を実行します。

(図tp01-6 株データのWebデータ例)


(図tp01-7 日経平均のWebデータ例)




【戻る】    【HPへ】