本を書きたいと願っているが、なかなか難しいもので遅々として進まない。今のネタはネットワークプログラミングと、スクレーピングである。スクレーピングというのはネットから情報をかき集めるものである。
ネットワークプログラミング
Javaのネットワークプログラミング本ってありそうでないなーと思っていたら、あった。2007年出版だからかなり長いこと見逃していたことになる。内容もnioについて触れているし、まあいい本だと思う。ただし応用がないので差別化は図れるかな。
スクレーピング
こっちが本題。細かい技術の下書きは別のブログに書くことにして、ざっくり説明することにする。
最終的な目標は自動的に株取引をしていて寝ているだけで大金持ちになれるというものである。それはあまりに遠大な計画なので手近な話から。まず株価のデータを刻々と取らないといけない。以前は携帯サイトにアクセスするのが簡単かと思ったが、頻繁にリロードしていると証券会社から叱られるらしい。マウス連打程度の間隔(1秒に1回とか)に押さえないといけない。そうすると1分間に取得できるのは60銘柄だけになり、逆に言うと60銘柄を取得すると1銘柄の更新間隔は1分おきになってしまう。これはリアルタイムにはほど遠い。
そういうわけで、いくつかの証券会社を見て回ったが、どうもSBI証券がよさそうな感じがする。
このようなリストを簡単に作れる点でメリットがある。どうも50銘柄まで一覧にできるようだ。これを30秒ごとにリロード(このくらいなら迷惑にならんでしょう、マウス連打する人よりはよほど転送量は少ないし、また画像とか余分なものを読まない)してゴリゴリ切り出す。
今のところロジックとプレゼンテーションが分離されていないとかごちゃごちゃになっているけど、とりあえずこういうことができる。そこで、本番では得たデータをデータベースにどんどん放り込むプログラムにしたい。あとはRという統計処理のソフト(実に検索しにくい名前だと思う)で時系列分析をして、またデータベースに放り込み、プレゼンテーション部分を作る。
評価関数の自動生成
ところで、将棋ソフトのBonanzaというのがある。突如現れて非常に強かったことで話題になった。プロがブログで「プロが平手で餌食になった」とか「奨励会有段者クラスがコロコロ負けているらしい」とか「奨励会の三段くらい」だそうだ。女流は2級からなので、女流ではBonanzaには勝てないかも知れない(女流は奨励会で4段になった人はいないそうだ)。
Bonanzaの画期的なところはボナンザメソッドという棋譜から評価関数を自動生成するところにあるそうだ。逆に言うと今までのソフトはプログラマの棋力が評価関数に影響して、将棋が強くプログラミングもできる人が勝っていたらしい。
で、このテーマはいま結構流行っているらしく、是非盛り込みたいと思っている点の一つである。つづく。
最近のコメント