ニューラルネットで為替レート予測(準備)

pyget

やりたい事

為替をニューラルネットで予測する。以上。

やる方法

為替データをどうにかして取ってきて学習。予測させる。以上。

今回やったとこ

為替データをどうにかして取ってくるところ。

方法

リアルタイムの為替レートを取ってくるためのAPIを公開しているところが無いか調べたが、いい感じのところが無かった。Googleの電卓機能が為替レートをJSONで取得するAPIを公開していたようだが、もうすでに使えないようだ。

なので、ちょっとゴソゴソやってみる。

いろんなサイトでリアルタイム為替レートを見れる。ソースを見てみると、どれもこれもjQueryで非同期で取ってきたデータを表示しているだけだ。データを取ってくるURLにアクセスすると、CSVとかJSONとかいう形式で為替レートが取れる。

じゃ、これを使わせてもらおうっと。普通にブラウザから表示させても数秒に一回、レート更新のために通信が発生するのである。数分に1回アクセスするくらい許してくれるだろう。怒られたらやめる。不安なら、取ってくる時にいかにもブラウザであるようなUAを設定すればいいかもしれない。今回はそこまでやらない。アクセス履歴を見て、妙なUAがあったら追跡調査するなんて暇なことをやってる管理者は居ないだろう。

取ってくる処理はPythonで書いた。cronで5分毎に取ってきてデータベースに放り込む。

最近になってようやくPythonを本格的に使い始めたのだが、素晴らしすぎる。今回のようなことをやるプログラムをコメントや空行含めて46行、実質の処理部分で言えば10行~20行で書けてしまった。RDBMSとのO/Rマッパー、HTTPクライアント、CSVパーサ、XMLパーサ、JSONパーサ、なんでも揃ってる。我々はやりたい事だけを書けばいいのである。

コードはどこから取ってきてるかバレたくないので公開しないが、大体こんなかんじです。

crontabを設定してしばらくすると・・・。取れてる取れてる。

pyget

あとはこれを元にニューラルネットで学習か。

愚痴

このようなプログラムはPythonでやれば、ライブラリの使い方を調べながらやっても10分かそこらで出来てしまう。うちの会社(社会インフラ関係のシステム開発)にこのようなソフトを発注すれば、1ヶ月弱はかかるだろう。もちろん、ドキュメントを整備したり、試験方案、試験報告書の作成などと言った作業があるからという理由もあるんだが、それでも掛かり過ぎじゃないか。

この原因は、うちの職場のプログラマのほとんどがC言語しか知らない、何でもかんでもC言語でやろうとする、という変態的な精神の元で働いているのと、凝り固まったクソの役にも立たない数多のルールでがんじがらめになっているせい。

日本の社会インフラ系事業も、IBM、Microsoft、Googleあたりがちょっかい出してぶち壊して欲しい。日本人はなんでこんなにソフトが出来ないんだ。

これは、インド人にちょっと前に聞いたことがあって、日本で働いた経験のあるインド人技術者に対して「日本のIT技術をどう思うか」と聞いた所、「実装力はインド人が若干上、問題解決力は大幅に日本人が劣る、品質は日本人が上だろう」と言っていた。まさに私もそのように思う。

品質は重要だ。そのとおりである。しかし、私は最近、その品質を維持するために大きなコスト(時間、金)をかけるのは常に正しいとは限らないと思う。うちの会社がいい例だが、その1ヶ月のほとんどは品質、つまり、徹底的なバグつぶしに当てられる。なんせ、「オープンソースソフトでは不具合があった時に対処できない」と、データベース機能一式を自前で開発するような連中である。

その結果、保守性、リリースまでの時間、お金、そういったものは犠牲にさせられる。品質だって本当にいいかどうか考えものである。使ってるユーザー数が少ないし、使い方も固定されているからバグが出ないだけで、潜在バグは山ほどあるだろう。

そうして失ったリリースまでの時間でビジネスチャンスを逃すかもしれない。

今どき、大規模なソフトウェアプロジェクトはどれもこれもまともに動かない初期段階からリリースしている。たとえば、Node.jsだってまだバージョン1になっていないのにみんな使っているだろう。完璧を求めるがゆえに多くのものを失うのだ。

今までは官公庁も電力、交通関係の企業も、金があった。だから、莫大な金を使って車輪の再発明をするようなソフト開発をすることを良しとしていた。けれども今後は社会インフラの分野でもコスト競争が始まる。そうした時に、全世界の技術者が普通に使っているオープンソースソフト資産を、「使ったこと無いからしらない、使えない、信用出来ない、サポートできない」ではお話にならない。

残念ながら、これが、日本の社会インフラシステム系メーカーの現状である。