OANDAのStreaming APIを利用して為替レートを簡単に取得するサンプルです。 ストリーミングなので持続的接続をしていて、相場のレートが変われば逐一表示されます。
使用するには、OANDAとのデモ口座契約が必要です。 (デモ口座は無料です)
デモサーバのレートを使用していますが、実際のレートとそんなに変わらない感じです。
以下のパッケージを使用しています。
- g++
- STL(libstdc++)
- libcurl-dev (opensslでもnssでも何でもいい)
ので、あらかじめインストールしてください。
Ubuntuの場合は次のようにしたら良いかもしれません。
$ sudo apt-get install g++ libstdc++6 libcurl4-nss-dev
その後makeでOK。
jpyrate_oandaと打つだけです。
すると、アクセストークンと口座番号を聞いてくるので、入力します。 アクセストークンはあらかじめ発行しておいてください。 アクセストークンは、My fxTrade Practice Account→APIアクセスの管理→Personal Access Token で発行した値です
サンプルではUSD/JPY(ドル円)のレートをStreamから取得するようにしています。
おまけでスプレッド(売値と買値の差)を表示しています。 OANDAさんは大体0.3ですが、この差が大きくなる場合は資金の流動性がなくなってきているか、相場の急変が発生していることがわかります。
[2015-01-23 14:42:45] bid: 118.593 ask: 118.596 sp: 0.3
[2015-01-23 14:43:44] bid: 118.594 ask: 118.597 sp: 0.3
[2015-01-23 14:43:44] bid: 118.596 ask: 118.599 sp: 0.3
[2015-01-23 14:43:44] bid: 118.600 ask: 118.603 sp: 0.3
[2015-01-23 14:43:44] bid: 118.603 ask: 118.606 sp: 0.3
[2015-01-23 14:43:44] bid: 118.602 ask: 118.605 sp: 0.3
[2015-01-23 14:43:44] bid: 118.600 ask: 118.603 sp: 0.3
[2015-01-23 14:43:44] bid: 118.597 ask: 118.600 sp: 0.3
[2015-01-23 14:43:44] bid: 118.595 ask: 118.598 sp: 0.3
[2015-01-23 14:43:44] bid: 118.594 ask: 118.597 sp: 0.3
[2015-01-23 14:43:45] bid: 118.594 ask: 118.597 sp: 0.3
[2015-01-23 14:43:45] bid: 118.591 ask: 118.594 sp: 0.3
[2015-01-23 14:43:51] bid: 118.588 ask: 118.591 sp: 0.3
[2015-01-23 14:43:51] bid: 118.584 ask: 118.587 sp: 0.3
[2015-01-23 14:43:51] bid: 118.581 ask: 118.584 sp: 0.3
時刻 売り値 買い値 スプレッド の順番で表示します。 Ctrl+Cで終わります。
エラー処理は手抜きです。 再接続とかせず、いつのまにか終わってるのでその辺はご注意を。
アクセストークンの取り扱いには十分ご注意を。
これはOANDAのStreaming APIを使用しています。 API契約書に従ってください。 個人で細々と使う分にはまぁ良いと思いますが、データを商用利用するとか、そういうのはまずいと思います。
- picojsonのkazuho氏 (https://github.com/kazuho/picojson) JSONの解析に使用しています。picojsonはSTLの親和性高くて便利です
OANDA RESTAPI 仕様書(日本語でわかりやすいです) http://developer.oanda.com/docs/jp/