SSブログ

株価データ取得法あれこれ(1) [システムトレード]

トレーディングシステムを開発するにしても、株式投資の研究をするにしても、株価データの入手は必須です。
当ブログでも、今までに何回か、株価データの入手方法について述べてきました。今回は、より具体的な入手方法について、考えてみたいと思います。

まずは、日次データの入手ですが、例えばPanRolling社のサイトから、「自動売買ロボット作成マニュアル初級編」(森田佳佑 著)用のサンプルシートが入手可能です。
本書は前著「自動売買ロボット作成マニュアル」の続編ですが、内容的には前編となっています。

自動売買ロボット作成マニュアル初級編

自動売買ロボット作成マニュアル初級編

  • 作者: 森田佳佑
  • 出版社/メーカー: パンローリング
  • 発売日: 2007/05/10
  • メディア: 単行本(ソフトカバー)


自動売買ロボット作成マニュアル~エクセルで理想のシステムトレード

自動売買ロボット作成マニュアル~エクセルで理想のシステムトレード

  • 作者: 森田佳佑
  • 出版社/メーカー: パンローリング
  • 発売日: 2006/09/14
  • メディア: 単行本(ソフトカバー)

(ようやくAmazonのリンクが見つかりました。まさかロボットが半角しか受け付けなかったとは。)

サンプルシートはZIPで圧縮されていますが、これを解凍すると「robot_samplesheets2」というフォルダが得られます。この中の「Webテーブル番号ランダム化対応版」フォルダを開くと、3つのシートがありますが、その中の「第8章(ランダム対応).xls」が株価取得用シートです。

なお、本シートを利用する場合は、原則として同書を購入するのが礼儀だと思います(私は2冊とも購入済です)。

このエクセルシートを開くと、日経平均株価を取得するためのマクロが含まれていますが、マクロを編集することにより、他の銘柄や異なった期間のデータを取得することができます。
なお、相変わらずIE7ではエラーが生じる場合がありますので、ご注意ください。

まず、上記のシートを開きます。その際、マクロの使用に関するセキュリティ警告が出ますが、当然、「マクロを有効にする」を選択します。
この状態でマクロを実行すると、2005年1月4日から2005年12月30日までの1年間の日経平均株価データが得られます。

ここで、エクセルのメニューから"ツール"を選び、"マクロ"メニューから"Visual Basic Editor"を選びます。
すると、Module1というエディタ画面が現れます。この内容を書き換えてやるわけです。

まず、緑字で書かれた'変数に各値を代入'の部分を見ます。そこに、株価コードや取得日等の情報が入力されます。
初期状態では株価コードは日経平均株価のもの(998407.o)になっています。もちろん、これはヤフーファイナンス上での株価コードです。

まずはこれを、株価データを取得したい銘柄のコードに書き換えます。"998407.o"を、例えばトヨタ自動車にしたいなら、"7203.t"に書き換えるわけです。
次に、各取得日を順番に変更します。意味は、右側に緑字で示されているので分かると思います。

今、上から順に、31、12、2005、1、1、2005、となっているところを、例えば開始日を1993年11月1日、終了日を2007年7月2日にしたければ、上から順に、2、7、2007、1、11、1993、に変更してやればいいわけです。

そして、次に'株価データを取得'の部分を見ます。そこには「For i = 0 To 365 * 0.65 Step 50」と書かれていますが、この「365 * 0.65」を、上記の例の場合は3500に変更します。
取得年数がさらに長い場合は、それに合わせてこの値を変更します。この値は、取得年数×240をやや上回る程度がいいでしょう。

上の部分の変更後を示すと、「For i = 0 To 3500 Step 50」となります。これで、銘柄や期間の変更は終了です。
Visual Basic Editorの"ファイル"メニューから、"終了して Microsoft Excel へ戻る"を選択します。

エクセルシートに戻ったら、"ツール"メニューから"マクロ"を選択して、Calcというマクロが選択されていることを確認後、"実行"をクリックします。
これで、ヤフーファイナンスから目的の銘柄と期間の株価取得を開始します。

株価データ取得後、取得開始日の株価終値と調整後終値とを比較します。両者が等しければ問題はないのですが、もしも両者が異なっていた場合は、途中で株式分割等が行なわれていたことになります。

分割の日付がすぐに分かればいいのですが、分かりにくい場合には、空いている列でちょっとした計算を行なえば、分割日を容易に確認することができます。

株価取得直後には、B列~H列の5行目以降にデータが入ります。I5セルに「=F5/H5」と入力し、それを最下行までコピーすれば、株式分割以降では値が1になります。その境目を見つけることで、容易に分割日を知ることができます。

分割日が分かったら、それ以前の日付の株価と出来高を修正します。この方法は、以前のコラムで紹介したことがありますが、再度説明いたします。
ただ、今日のところはかなり長文になりましたので、続きは明日のコラムで行ないたいと思います。


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

nice! 0

コメント 0

コメントを書く

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

Facebook コメント

トラックバック 1

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