データマイニングを行うためには、まずマーケットデータを準備する必要がある。
無料で日本国内のマーケットデータを準備する方法を紹介。
国内マーケットデータを準備する
データマイニングをする、そうは決めたものの一体なにが必要でどのような手順で行うのか、データマイニング自体は投資のために作られたものではないため、なかなかダイレクトな情報がネットではみつからない。
Practical Data Mining
実践データマイニング 金融・競馬予測の科学
平成11年初版
という本をみつけアマゾンで購入。
そして
また
必要なものとしては
データマイニングを行うためのソフトとデータがあり、ソフトはWEKAに注目した。
データマイニングを行った結果トレーディングシステムが完成すれば
完全自動売買の場合システムのためのソフトも必要となるが、それはまだ先の話なのでここでは検討しない。
データとしては何のマーケットでトレードしたいのかによって必要となるデータが変わってくるが、上記の資料を少しでも参考にするため、なるべく同じにするということで日本株・日本先物にした。
データの入手先として
を利用させてもらった。
ここにある日足株価はテキストファイル一枚に1日分の株のデータが掲載されている。
2000年以降のデータを得ようとすれば、1枚ずつダウンロードする方法ではとてつもなく時間がかかる。
そこで一括ダウンロードするソフトとして
を使った。
これでまず株価データ倉庫のURLを入力し、Fuerzaにそのページにリンクしているすべてのページが表示される。
エクスプローラー風の表示であるため、使用方法はとても簡単で、そこからほしいデータを一括指定して実行するだけ。
任意のフォルダにダウンロード後はすべてZIP形式に圧縮してあるため、これらすべての解凍をおこなった。
繰り返しになるが、データマイニングを行うためにはまず材料となるデータがなければならない。
データはあればあるほどよいのだが、できるだけデータマイニングしやすい形のデータがよい。
国内のマーケットのデータでデータマイニングを行うこととし、データの取得先、取得方法、データの加工と保存について、現時点で確立した方法をここに記録しておく。
この方法の目的はデータを自分のPCにストックすることである。
保存されるデータは各項目の数値がコンマで区切られ、データごとに改行されたCSV形式のものとした。
そして1行には、日足のデータとして
日付 , コード , 始値 , 高値 , 安値 , 終値 , 出来高,
という順で値が書かれたものとする。
日付はYYYYMMDDの形で表現する。
他にも項目としてほしいものはあるが現時点ではその入手方法についてわからないためこのような形とした。
データを保存する方法としては、データベースを利用する方法もある。
具体的にはオープンウェアであるMySQLを使って自分のPCにデータベースを作成することが可能だ。
しかしMySQLを含む入手しやすい(安価な)データベースのソフトウェアには問題がある。
SQLといわれるプログラムを学習しなければならない。
データベースについても学習しなければならない。
各マーケットの時系列データをどう扱うのかという参考文献が見当たらない。
そしてもっとも大きな問題が、4000以上もの株の時系列データを一括に同じ処理をすることがMySQLなどのソフトウェアではどうやらできないらしい、ということだ。
(数を絞ったとしても数百以上はあるため、手作業で処理するのは現実的ではない)
すでに紹介した早稲田大学の「データマイニングによる株式投資」の文献にある3つの手法はどれもSPSS社のClementineというソフトを使ったもので、これであれば可能かもしれないが、その手法自身が疑問を抱くものであったし126万円以上という金額は話にもならない。
また「実践データマイニング 金融・競馬予測の科学 」、この本でもわずかな数のマーケットについてしか行っておらず、データマイニングというよりはニューラルネットワークを使ったらどうなるかという主旨のものである。
少し脇道にそれたが、複数のデータを一括で加工し保存する方法自体が即データマイニングのためのデータの準備(加工)の方法へとつながる。
遅かれ早かれその方法をみつける、もしくは別のアプローチを決定しないといけないのだ。
検討した結果、一括して複数のデータの加工・処理を行う方法として、今回は自作したプログラムを利用することにした。
私のようなプログラム初心者がどのように自作したのかについては説明を省略するが、これによりかなり作業時間が短縮できた。
そしてデータはコードごとのCSVファイルとして保存することにした。
データは前にも書いたように2000年以降のものは
に掲載されている。
株についてはテキスト1ファイルにつき上場株の日足データが書いてある。
1行目はYYYYMMDDの形で年月日が書かれ
2行目以降は
コード 会社名 始値 高値 安値 終値 出来高
がTABで区切られて書かれている。
これを
日付 , コード , 始値 , 高値 , 安値 , 終値 , 出来高,
という形式に変換し、すべてのファイルを1つにまとめるか、またはコードごとにファイルを分けるところまで行う。
また2000年以前のデータについてはベクターのサイトに
「パンローリング 相場データCD-ROM 国内相場版」
というデータがあり、これを利用する。
このページに
”東証1・2部銘柄の1975年~、大証1・2部銘柄1987年8月~2003年9月の日足データ
(四本値・出来高、東証銘柄には権利落ち乗数を含む)・・・・を、タブ区切りテキストファイルで収録しました。 ”
と書いてあるように、ダウンロードしたデータはコードごとにテキストファイルとして保存されている。
各ファイルの中身は
日付 始値 高値 安値 終値 出来高
が書いてあり日付はYYMMDDの形である。
ファイル名はコード+市場の頭文字となっている。
東証であればコードT、大証であればコードOということだ。
これについてデータ倉庫のデータに関しては東証と大証の両方あるわけではなく”代表的な方”1つが入っている。
このデータも
日付 , コード , 始値 , 高値 , 安値 , 終値 , 出来高,
という形式に変換する必要がある。
2000年以前の年月から現在までのデータがほしい場合には、上記した2つのデータ(データ倉庫とパンローリングCD)を結合することにする。
本来ならばこの2つのデータの整合性がとれることを確認したうえで合わせるのだが、現時点ではデータマイニングの練習ということで考えないことにした。
以上をまとめると、行う作業は次のようになる。