システムトレード構築編

FXのAPIの比較

2018/07/31 加筆修正しました。

FXのシステムトレードで MT4/MT5 を使わない場合、発注の実装はブローカー(証券会社)の API を使うことになります。

これまでは OANDA の REST API が鉄板だったのですが、スプレッドが低いベーシックコースで使えなくなるので状況は変わってきました。

ブローカーのAPIですが、サービスが開始されてもすぐに提供中止になったりします。そのためか、まとまった情報や比較サイトがありません。なので調べてみました。
対象は国内にある証券会社です。海外を入れると候補が多すぎるので。(他にもあると思います。全ては調べ切れないです。)

OANDA

使いやすさ
スプレッド
信頼性
API種類
REST, Java SDK, FIX

「FX API」で検索すれば、 OANDA の REST API ばかりヒットします。それぐらい代表的なAPIといえます。

実装方法を解説した記事がそこら中にあり、公式のマニュアルも詳細でわかりやすいです。日本語マニュアルは一部、内容が古かったので、英語が得意な方は英語版を参照したほうがいいです。GitHub に wrapper があり、それは使えば、比較的簡単に実装できます。マニュアルの豊富さ、公式の丁寧さから、使いやすさは、APIの中でもトップクラスといえます。

API種類が豊富なのも、ありがたいです。REST APIがあるので、Pythonできます。RESTの他、JavaとFIXもありますが、OANDAを使うならRESTでいいでしょう。FIX APIのサンプルコードもあるのも地味に嬉しいポイントです。FIXのサンプルコードがある証券会社はほとんどありません。FIXしか対応していない証券会社を使いたいけど、サンプルコードがないから実装方法がわからないというときも、OANDAの口座を持っておけば、サンプルコードが手に入ります。

APIをこれから使ってみようという方は、とりあえず OANDA でやってみるのがいいと思います。デモ口座で、リスクなしで導入テストできます。

昔はスプレッドの低いベーシックコースでも使えていたのですが、今では使用不可になりました。プロコースのみで使用可能なので、スプレッドは高めです。USDJPY: 0.8pips と海外口座級です。

私は法人口座で、OANDAを使用中です。これまで特にトラブルなく使えています。信頼性も十分です。

公式 API
REST APIマニュアルGitHub

DUKASCOPY JForex

使いやすさ
スプレッド
信頼性
API種類
Java SDK, FIX

Java SDK なので、開発環境が若干使いづらいです。サンプルはあまりありませんが、公式のマニュアルはしっかりしてあるので、Javaが使えるなら実装可能です。価格データがストリーム方式で、RESAT APIとは、実装方法が異なります。日本語の情報もわずかながらにあるので、OANDAの次に使用者が多い気がしています。

昔からあるAPIで、透明性のあるブローカーなので信頼度は高いです。昔はありませんでしたが、現在はFIX APIも対応しています。

スプレッドは資金力がないと高めですが、資金力がある人には使いやすい証券会社です。個人的には、資金が増えたら使用したい証券会社です。

公式 API公式SDKマニュアル

YJFX C-NEX

使いやすさ
スプレッド
信頼性
API種類
FIX

提供されているのはFIX APIのみで、実装難易度はかなり高いです。情報も全くなく、公式のマニュアルも存在しません。FIX APIは金融業界のデファクトスタンダードらしいですが、素人(個人投資家)には無縁の存在です。私も少しだけ手を出したことありますが、途中で挫折しました。

信頼度は微妙な気がします。YJFXですし、公式でスキャルピングOKと謳っているところが危うい気がします。スキャ公認のサービスはそのうち提供中止になるイメージしかありません。

スプレッドは低めです。個人的には、FIX APIの実装問題を解決できたら使ってみたいブローカーの一つです。

私は個人名義で口座は持っていますが、未使用です。チャートソフトのUIが、かなり古くさいです。これが逆にプロっぽいのかもしれませんが。。。

IG証券

使いやすさ
スプレッド
信頼性
API種類
REST API

かなりマイナーなAPIじゃないでしょうか。偶然見つけました。それゆえ、いつサービスが打ち切られてもおかしくない感じがします。

REST API で、公式のマニュアルやサンプルがあります。OANDAの次ぐらいに実装しやすい気がします。FXだけでなく商品やオプション等にも対応しているようなので、FX以外のシステムトレードもやる人なら候補になるAPIだと思います。

スプレッドは微妙です。ただOANDAよりは若干良さそうなので、個人的には法人口座の乗り換え候補だったりします。

公式 IG LabsGitHub

Interactive Brokers

使いやすさ
スプレッド
信頼性
API種類
独自API(IB API), FIX

IB API は、Java/C++/C#等に対応しています。ただ、かなり使いづらいです。ローカルにチャートソフトを起動していて、プログラムからは証券会社に対してではなくチャートソフトに命令を送る仕組みになっています。そして、このチャートソフトというか、IB証券自体が非常に使いづらいです。約定履歴1つもってくるのにも、非常に苦労しました。

このAPIも、DUKASCOPYのAPIと同様、価格データがストリームになっていて、それをキャッチしてトリガーとして発注する仕組みです。公式のマニュアルはあまり親切ではありません。Qiitaに実装方法の記事があり、とても助かりました。

IG証券同様、商品やオプション等の他の金融商品にも使えあるので、システムトレードの規模拡大には強いです。

スプレッドはDUKASCOPY同様、手数料制で資金力があるほど優遇されます。ブローカー自体の信頼度は高く、APIの提供実績もあります。ただFXの場合、海外口座になってしまい、送金や確定申告がめんどくさいのが難点です。

IB証券は、私が現在ディーラー契約中のプロップファームで使用しています。

例外(APIがないブローカー)

使いやすさ
スプレッド
信頼性
API種類

例外としてAPI提供がないブローカー(ほとんどの国内証券会社)を無理矢理使う手段があります。APIがないので、httpクライアントやブラウザ操作などで注文操作を行うことになります。プログラミングの難易度も、FIX APIほど高くありません。一般技術なので調べればいくらでも情報が出てきますし、好きな言語で構築できます。

この方法だと国内ブローカーの裁量と同じ扱いになるので、低スプで自動売買ができます。

ただしこの方法は、証券会社の規約違反になることがほとんどです。ブローカー側は人の手による発注でないことはすぐにわかりますので、目をつけられたら終わりです。口座を凍結させられるでしょう。こういったリスクがあるので、信頼度は低いとしました。

まだAPIがそれほど多くない頃、流行った手法だと思います。検索すれば結構な記事がでてきます。
こういうのとか。
http://aleag.cocolog-nifty.com/blog/2016/02/fx-f55d.html


以上になります。

このページは、本サイトで一番アクセスがあり一定需要があるようなので、定期的に更新したいと思います。

COMMENT

メールアドレスが公開されることはありません。