OANDAの REST APIを使ってphpから口座情報にアクセス

最近,為替(FX)のシステムトレードにハマっています.

ブローカーに発注するプロトコルは “FIX” API が一番高速でシェアがあるのですが,

これは口座情報が取得できず,少し使い勝手が悪いものです.

一方で,”REST” API は発注だけでなく口座情報も取得できて便利です.

実際,OANDA社の REST API で遊んでいます.発注システム等は github にある適当なサンプルプログラムを動かしてみればすぐ分かります.

口座情報にアクセスするのは javascript と php にサンプルがありますが,どちらもローカルサーバー上で動かして情報を取得するもののようで,外部に公開する仕様にはなっていません.

【モチベーション】外部から自分のトレードの様子が分かるwebページが欲しい.仕事中なんかにちょろちょろ確認してテンション上げたい

javascript だとhtmlでソースを見た時にtokenがバッチリ書いてるのでセキュリティ的にアウトです.

そこで php版のサンプルプログラムのソースコードを調べてみると,tokenを取得しないデモ口座用のものなので,token を取得するように改変してみました.

AccountManeger-php

サンプルプログラムはここにあります.ここの oandaAPI.phpの最初

 function retrieveAccount($accountNumber) {
 $ch = curl_init("https://api-sandbox.oanda.com/v1/accounts/".$accountNumber);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

という箇所に,引数$tokenを追加してヘッダーに次を追加するようにします.

function retrieveAccount($accountNumber,$token) {
 $ch = curl_init("https://api-fxtrade.oanda.com/v1/accounts/".$accountNumber);
 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization:Bearer '.$token));
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

そして,あとは accountInfo.php の$inputFromUser あたりに

$AccessToken = "hogehogehoge"

を追加し,

$api->retrieveAccount($inputFromUser);

という箇所を

$api->retrieveAccount($inputFromUser,$AccessToken);

とすればおしまいですね.するとアクセストークンはphpのソースコードに隠れて見えない上に,外部から自分のトレードの様子が分かるwebページが作れて捗りますね.

広告

OANDAの REST APIを使ってphpから口座情報にアクセス」への1件のフィードバック

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中