前回,Bloglinesに溜めたRSSの記事をメールで受信できるようにした.せっかくなので,他にも毎日チェックするものとして為替レート情報もこの仕組みに載せようと考えて,為替レートのRSS配信機能を作成した.

為替レートのRSSを生成する

為替レートも,毎日チェックする情報としてBloglinesに読ませるためには,為替レートのRSSを用意する必要がある. Web上にそのようなサービスもあるようだが,自動分析をやってみたい関係で,自前でRSSを生成することにした.

1.為替レートのRSS化

citibankの為替レートのページ のHTMLをwgetで取得して, そのHTMLをperlでテキストに変換するとこんな感じになるので,
[ 2008/08/30 05:07	現在]
アメリカドル (USD)			 109.75	108.75	107.75
オーストラリアドル (AUD)	 94.60	93.60	 92.60
ここからgrep的に通貨毎のレートを取得すればよい.簡単だ.

そしてこの内容を元にRSSを生成し,それをBloglinesで購読すればおしまい.

これで,それぞれの通貨におけるその時点での仲値(TTM)を1日1回出力するという仕組みができた.

2.自動分析の実装

知りたい情報は何か?

しかしそれだけでは,RSSで配信された仲値を見ても「フーン」という感じで,ピンとこない. 最新の数字だけを見ても,それがどういう状況なのかいまいちよくわからない.

かといって,ニュースなどでよく見かけるように,前日との差(前日から+3ドル円安とか)を出してみたところで,あまり変わらない. こういうのはチャートのグラフを見れば一目瞭然なんだが,RSSとしては何とかテキストで表現できるように工夫してみたい.

それで,俺なりに考えてみたのだが...

結局,何らかの行動を起こすきっかけは,おそらく「最近の傾向に比べて異常に高くなったか安くなった」というタイミングだと思うので, このタイミングがわかるような情報を作れれば良いという結論に至った.

そのようなタイミングをどうやって求めるか?が問題になるが, 日経などの株式欄で見かける表現で,数字が黒く塗られていると年初来安値(その年の最安値)というのがある. これは,現在からある程度過去にさかのぼった期間内で,最安値または最高値であれば,それは普通ではない(ので黒く塗って表現する)という発想なのだと思われる.

これと同じように考えて,

  • レートの過去データをさかのぼったときに,本日のレートがn日前以前の昔でないと現れない場合,そのレートは報告すべき異常値である

と見なすことにした.nが大きいほど重大で,例えばn=365なら「1年ぶりの安値」となる.

RSSへの組み込み

このロジックで,実装した.具体的には10日前以前でないとその値が現れないときに,RSSにレポートを入れるようにした.

例えば,1/17日のEURが117円/EURだとすると,EURの117円というのは最近2ヶ月以上無いため,こういうRSSになる.

<title>[為替] (EUR) 2009-01-17 120.45 (LOW 0/2/20)</title>
<description>ユーロ(EUR) の為替レート:117.00.2ヶ月20日ぶりの安値です.前回は,2008/10/28 の 116.15 円/EUR です.最安値は,2000/10/27 の 89.45 円/EUR です</description>
<title>と<description>属性にレポートを入れて,2ヶ月20日ぶりの安値だということがわかるようにした.(高値の場合は逆に「LOW」が「HIGH」になる)

これで,かなりレート変化の雰囲気をRSSから読み取りやすくなったと思う.


© 2024 KMIソフトウェア