人生、徒然なるままに。

Webエンジニアのぼやきです。IT系の話題をメインに。

Rubyで経済指標自動巡回プログラム作成しました。

スクリプト言語Rubyを使って経済指標の自動巡回プログラムを作りました。2014年のRubyの締めとして公開。

 

経済指標との出会い

表題の通り、rubyの勉強がてら、経済指標巡回プログラムを作ってみました!

 

経済指標って何ぞ?っていう人もいると思いますが、米FOMC政策金利発表や雇用統計の発表など世界中の為替や株の値動きに直結するような日々のイベントのことですね!

 

「本日1ドル122円まで急落し・・・」とかテレビで言ってますが、

そのきっかけとなるのが経済指標の発表となることもあります。

 

そんな経済指標の発表時間・重要度などは各証券会社などのHPに載っていますが、

毎日見ていくのは面倒!ということで自動で集めてデータベースに保管してくれるプログラム作ることを決意。

 

http://www.flickr.com/photos/68229468@N00/5798812875

photo by timaoutloud

  

丁度その頃、本屋でこんな本を発見。

 

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

 

 まさに、やりたいことが1から10まであるという!

Rubyはやったことが無かったんですが、どうやらRubyは面白いらしい、という風の噂が届いていたんで躊躇なく購入。

体系的に勉強するために、Rubyの教本も買っちゃった。

 

たのしいRuby 第4版
 

 元々.Netやjavaオブジェクト指向を知っていたので、ある程度フンフンと頭に入ってきた。

一通りぱらぱらっと見たところで、InputよりOutputということでプログラミング開始。

 

Rubyによるクローラー開発技法から、フレームワークとしてCapybara、レンダリングドライバー・javascriptドライバーとしてpoltergeist,PhantomJSをチョイス、

アウトプット先をSqliteにしました。sqliteにしたのは、高機能なRDBMSを必要としなかったことと、MT4などの他プログラムとの連携も用意だったことから。

MT4からC++でラッパー書いちゃえばなんでも呼べるんだけど、直で呼べることに越したことはないし。 

 


 

これを機に、githubリポジトリ作って公開してみました!


shoutatani/GetMarketInfo · GitHub

 

 構成は、メインプログラム1本と設定ファイル1本だけ。

設定ファイルに、どれだけの日数分取得したいか・どの重要度以上の指標を取得したいか記述するだけでOK。

動かす前にはgemなどから、capybara,poltergeist,PhantomJSをインストールしてください。

あとは、引数なしでキックしてもらえれば同ディレクトリにsqlite3のファイルができます。煮るなり焼くなり。

 

 

今回、capybaraで全部やっちゃったけど、レンダリング終わった段階で独自にNokogiriなどに渡して分離した方がいいのかな?

何はともあれ、勉強がてらやってみて楽しかったなー!

今年一番読み込んだ本がRubyによるクローラー開発技法だった。

rubyを知らなかったから最初は読み進めるのが大変だったけど、後ろになるにつれて段々と読み進めるスピードも速くなって、"読むのが楽しい"と思える本に!

 

情報を集められる者がIT時代の勝者になるのは間違いない。 

プログラミングを学習するにあたって、inputのデータを得られるのも大きいね。

 

2015年はMT4と連携させてEA作ってみようと思います。

 

ではでは!