FX APIをPythonで使うときに役に立つチュートリアルまとめ

2018年5月13日

使っているFX会社はどこ?
自動売買用(1万円キャッシュバック中) → インヴァスト証券
Python API用(FX APIはここしかない) → OANDA ジャパン

機械学習を使ってFXを予測するのが、もはや趣味になりつつあります、新米データサイエンティスト(@algon_fxです。ブログへお越し頂きまして、ありがとうございます。

本ブログですが、2つの大きな目的を持って運営しています。一つ目は、出会いの場としてです。様々なトレーダーさんやPython(特に機械学習)を使ったシステムトレードを行なっているエンジニアさんとの交流出来ればと願っています。

2つ目の目的は「個人用の勉強メモ」です。ほぼ毎日、1〜3時間程度を見つけてFX機械学習の勉強をしています。勉強をしたことに対しての理解度、さらに同じようにFX機械学習をやっている方へ少しでも役に立てばと思い、記事をまとめています。

以前から進めていた「【Python + テクニカル指標】機械学習の特徴量のためのテクニカル指標一覧まとめ」のシリーズに加えて、本日から本記事の「FX APIシリーズ」を始めたいと思います!本ページは、FX APIシリーズのまとめページです。

最終更新日:2018年5月3日
掲載ページ:2 チュートリアル公開

【更新情報】FX APIの初心者向けチュートリアル

OANDA API v20を使ってみる(デモ口座開設編)
OANDA API v1から最新のAPI v20への移管を念頭に置いて、米国OANDAでデモ口座を開設して実際にAPI v20への接続をしてドル円のレートを引っ張ってみました。(2018年4月17日公開)

OANDA API v20を使ってみる(注文編)
OANDA API v20を使ってPythonで簡単な注文の操作をしてみました。成行注文や指値注文、オーダーのキャンセルなど基本的な操作のまとめ。(2018年5月3日公開)

③OANDA API v20を使ってみる(ポジション編)
OANDA API v20とPythonを使って自分の口座のポジションのリストの取得、特定ポジションの詳細確認、ポジション決済をAPI経由で操作する方法のまとめ。(2018年5月13日公開)

FX APIシリーズの目的について

当ブログの目的は「自分の勉強用メモ」と「交流」ですが、本記事の「FX APIシリーズ」の目的について。

[1] 英語のドキュメントが多い
OANDAですがアメリカの会社ですので、必然とドキュメントが未だ英語のものが多いです。この間、知り合いのFX機械学習をやっている方と話していたのですが、コード自体は対して難しくないが、英語のドキュメントを紐解くのが時間がかかってしょうがないと仰ってました。ですので、日本語のドキュメントで足りていない部分や未だ翻訳されていない部分などをカバーしていきます。

[2] Python初心者でもOK
機械学習界隈でも多いのですが、データ分析はプロレベルだけど、Pythonでのコーディングが苦手で捗らない人がいるように、システムトーレドも同様かと。トレードの腕は上級者でも、それをPythonに落とし込むのができないという方もたくさんいます。ですので、そのような方でも簡単に学習できるようなコンテンツをまとめていきます。

[3] MT4は多いがPythonがほぼ無い
FXでシステムトレードを自分で組んでやってみようとすると、ほぼ間違いなくMT4(Meta Trader 4)へ行き着きます。MT4ではEA(Expert Adviser)と呼べれるロジックをプログラミングすることで、自動売買やさらにはバックテストまでも可能です。では、MT4を使えば良いじゃんと思われがちなのですが…機械学習を主軸に置いているのでPythonを使いたいんです。で、システムトレードのPython周りの勉強を始めると、参考になる書籍や記事などが一気に少なくなります。これではFX機械学習が盛り上がらないので…微力ではありますが自分が勉強した内容は他のエンジニアさんの参考になるかと思い、まとめようと考えました。

日本で使えるFX APIの会社

先に結論をかくと私はOANDA APIしか使っていません!(どんっ)理由は後ほど詳しく書きます。Meta Trader 4をトレード環境として提供している会社は日本国内でも数多くありますが、FXのAPIを提供している会社はごく一部です。下記が現時点で日本国内でFX APIを解放している会社です。

日産証券

会社名 日産証券(アクセスFX for プロフェッショナル)
URL http://www.nissan-sec.co.jp/bo/api/
特徴 ・1000通貨単位で可能
・口座最低額 300万円以上
・個別問い合わせで審査後使える
・Tickデータ取得可能
・C++、Java、C#

 

YJFX!

会社名 YJFX!(C-NEX)
URL https://www.cnex.jp/topics/014732.html
特徴 ・API利用条件が不明
・FIX-API(RESTは無い)
・とりあえずドキュメントが無い(笑)

なんでOANDA FX APIなのか?

MT4なら多数あり、さらに他にもFX APIを提供している会社は存在するのですが、個人的にはOANDA(オアンダ)が一番最適だと思っています。なぜなら…

(1)ドキュメントが親切
YJFXと日産証券を貶すわけではありませんが…ドキュメントが全く公開されていないのは個人的にはマイナスです。お問い合わせすれば詳細を教えてもらえるのでしょうけど、非常に面倒です。まぁ金融のシステムですので、外部に色々と詳細を出したく無い気持ちは解らなくもありませんが。対してOANDA APIはドキュメントが豊富です。大部分が英語ではありますが、それでもサンプルコードを含め、非常に丁寧にまとまっているので使いやすいです。

OANDA API 開発ガイド

(2)Pythonを使いたい
他社APIでPythonが使えない訳ではありませんが、OANDAはREST APIですので、言語に依存せず使い勝手が非常に高いです。他の言語でも良いのですが、個人的に最近はPythonでしか機械学習をやっていませんので、そうなるとFX API用にJAVA書いて、機械学習はPythonでってのが面倒です。

(3)APIの利用の敷居が低い
三番目のこの理由が、OANDA APIを使う最大の理由です。上記の日産証券にしろYJFXにしろ、APIの解放条件の敷居が高いです。口座300万円が妥当かどうかわかりませんが、OANDAであればデモは即時に利用可能ですし、本番環境でも25万円が口座に入っているだけで使わせてもらえます。

他の会社のFX APIを使ったことが無いので、機能面では比較することができませんが、OANDA APIは少なからず、必要以上に機能が豊富で困ることはありません。

OANDA APIのオーダー機能の一例。使っていて機能不足を感じたことはありません。

OANDA APIのv1とv20

TwitterのDMでいくつかご質問をいただいたので、こちらのページにも記載しておきます。OANDAのAPIですが、現在日本で解放されているのは「v1」のみとなります。

OANDA API v1はデモ口座でも本番口座でも使うことが可能です。

ただ、OANDAの本社があるアメリカでは2018年5月にOANDA API v1の提供が完全終了となり、現在の最新バージョンである「OANDA API v20」へ完全移管が行われます。

ただ、非常に残念なことに現時点で日本ではv20を使うことが出来ません。アメリカに住所と電話番号がある方であれば、米国OANDAにてデモ口座を解説することで、制限なしでv20を使うことは可能です。(が、当然、本番APIは使えません)

アメリカでは完全移管が行われますので、日本でも早々にv20の解放されるのではと予測はしていますが、今の段階では具体的な時期は決まっていません。(が、私は個人的に前倒しでv20の方を主軸に使っています)

使っているFX会社はどこ?
自動売買用(1万円キャッシュバック中) → インヴァスト証券
Python API用(FX APIはここしかない) → OANDA ジャパン

2018年5月13日

Posted by algon