株価DB作成中

株価情報からゲットした株価情報を即席100行程度の超簡単なDBインポート用PHPスクリプトでインポート中。しかし、2000〜2005年までのcsvの形式がなぜかリレーショナル型になっておらず、全レコードに銘柄名がくっついている。インポート中にこれをいちいちチェックする必要があるので、非常に時間がかかる。ローカルのApacheで、1か月分のデータのインポートに10分かかる。6年分で10時間かかる計算だ。今日は株価の表示まで進むことは不可能そうだ。また、1年分のデータが50MB程度になりそうだ。15年で750MB。生データとしては小さすぎず大きすぎずちょうどいいサイズか。ローカルPCはあまり性能が良いわけではないので、解析には時間がかかるかもしれない。

表示に使うAPIはenvision.jsを予定しているが、グラフが複雑になってきたら考え直す必要はあるかも。flotr2でできることは全部可能らしいので、移動平均線やらいろんなグラフを同時に書きこむことはできるかな。
デフォルトだとローソク足がグラフのオプションに入ってないので、flotr2からコピーして使わないといけないらしい。参考:Draw candlestick in Envision


方針1

銘柄別の株価をかなり詳しい方法で統計分析したい。EXCELは大量のデータに弱いし、あくまでプレゼン用のソフトだろう。
ACCESSと連携すれば大量のデータを扱うことができるが、仕事でもよく使っているのでわかるけれど、操作性が非常に悪い。なので却下。
そもそもEXCELってインタラクティブ性に欠ける。
なので、やはりWebベースのアプリケーションを作成することにする。拡張が容易だし、常に新技術が現れるのでとても助かる。Javascriptがベースになるだろう。
ところがPHPは統計周りが弱い。全然充実してない。PHPで複雑な統計分析をするには困難が予想される。文字列処理はとても充実してるんだけどねぇ。JavaScript側で統計処理を書くのも苦しいものがあるだろう。クライアント側はプレゼンテーションに徹したいし。
そこでRかPython、という選択肢が現れる。どちらを採用するか1日悩んだ。R言語は純粋に統計のために開発された言語なのでとても魅力的だ。が、サーバーサイドで動かすのがしんどそうだ。一方Pythonは無料サーバーでも動くところが多く、かつ数値計算に強い。
というわけで、Pythonを採用する。1から勉強のし直しだ。
参考:Algorithms with Python / 番外編:統計学の基礎知識 Pythonで統計学を学ぼうとして関数型に打ちのめされる。 | とのログ


2000年からのデータ

株価情報
を発見した!これで15年分の統計と検証が可能になった。ただし、圧縮形式がなんとlzh(セキュリティ脆弱)なので、プログラムで自動的に取り扱うことが不可能だ。面倒だけれど、一括ダウンロードして全部解凍・個別インポートしなきゃいかんね。一括インポート用のスクリプトを作ろう。
しかし、どんなシステムトレードのソフトも、高いな!どれも18万だの20万だの、さらにDB使用料金まで取る金の亡者っぷりだ。許るさん。他人が作った、もしかしたらどこかに重大な欠陥や穴のあるかもしれない予想ソフトに数十万も払えないよ。他人の作ったシステムの欠陥で自分が損したら腹が立って仕方がない。自分で作るしかないね。欠陥があっても自分で引き受けられるし、直せる。カスタマイズが楽。人の作った枠の中で完結するのは嫌。(といっても、株自体は人の作った枠である)
株価データは単なる数値の記録なので、創作性が認められることはなく、著作権はない。日経平均は日本経済新聞社が創作性を主張してるらしいが、やはり単なる数字だし、著作物としていいのかどうか怪しい。仮に著作性が認められるとしても、あまりにも公共的に使用されすぎているので、権利行使は困難だろう。
まずこのデータでDB作成、簡単なビューを表示するところまでを目標にしよう。グラフ描画にはEnvision.jsを使う。