TradingViewのアラート(Webhook)機能を用いて自動売買を行う際のAPI選択候補

トレーディングビュー 公開日: 2023-01-12
サムネ画像

今回はオンラインチャートサービス TradingView のアラート(Webhook)機能を用いた自動売買に対応可能なAPIの種類、それらAPIを利用可能なブローカーについて調査・検討した結果について紹介

今回、個人的に選択候補としてあがったものは OANDA JAPAN(REST API), MT5(Pythonパッケージ), Dukascopy Japan, cTrader(いづれもFIX API)の4つ

ちなみに、TradingView の無料プランでも価格、テクニカルに対するアラートを各1件までなら利用(登録)することが可能だが、Webhook通知は有料プラン限定の機能となっている

また、このWebhookを活用して自動売買をするには多少なりともPython等のサーバーサイドプログラミング言語の知識がないとちょっと難しいと思われる点には注意。

参考記事: TradingView 有料プランで利用することにした決定的な理由

目次

選択候補1️⃣ OANDA JAPAN の REST API

まず一番メジャーだと思われるのが OANDAのREST APIを利用した方法で、ネットで「TradingView, アラート, 自動売買」といったキーワードで検索すると、どの記事も OANDA REST API を使用している印象

RESTful API とはopen in new window

個人的にもFIX APIよりもWebAPIとして一般的なREST APIの方が圧倒的に利用しやすいと感じているが、2021年3月以降 OANDAではAPIの利用条件が変更されてしまった

OANDA REST API の利用条件

  1. 会員ステータスがGold(=前月の取引量 往復50万USD 以上)
  2. プロコース(NYサーバー)
  3. 口座残高 25万以上

参考ページ: OANDA APIサービスopen in new window

個人的に日足or週足ベースでの順張りトレード(1ポジション 0.1Lot以下)がメインということもあり、月間のトレード数量が往復50万USDを超えることはまずない為、条件1の会員ステータスGoldを維持する為には不本意なトレードを行うことが必須となってしまうので残念ながら今回はパス

月間の取引量が往復50万USD以上なら余裕という方も少なくないと思うので、そういった方はOANDA REST APIを利用するのが無難。というか一番情報量も多く、システムの構築も簡単だと思う

OANDAラボ - APIの使い方open in new window

選択候補2️⃣ MT5 + Python用パッケージ MetaTrader5

MT5といえば、MT4と同じくEAを用いて自動売買を行うのが一般的だが、Python用MetaTraderパッケージopen in new window を利用することで、PythonからMT5を操作することが可能となっている

MT5をPythonで操作してレート取得・注文する方法まとめopen in new window

このケースで個人的に感じるメリット&デメリットは以下

メリット

  1. MT5に対応さえしていれば好きなブローカーでOK
  2. ドキュメントの内容も充実しており、コードも理解しやすい

デメリット

  1. Python用MetaTraderパッケージはwindows環境でしか使えない
  2. 同じwindows環境下でMT5, MT5を操作するPythonプログラムを実行する必要がある
  3. 常時起動しておく必要がある為、サーバーコストが発生する

私はMacをメインのPCとして使用していることもあり、Python用MetaTraderパッケージがMacのPythonでは使えないというのは個人的に大きなデメリット(仮想環境でWindowsも動かせるが、メモリの消費やショートカットキーが違う点などが煩わしい)

また、それなりに月額コストのかかるWindowsのレンタルサーバーを契約する or Windows環境の自宅PCを常時起動させておく必要がある為、サーバーコストが発生してしまう

Macユーザーとしては少し使い勝手が悪い点と運用コストの面で個人的に「ちょっとイマイチかなぁ」と感じたので現時点ではパス(今後もしかしたら利用する可能性はあるが)

ちなみに、Macユーザーの方は仮想化ソフト Parallels Desktop for Mac を利用することで、Mac上でwindowsを起動させて2つのOSを同時使用することが出来るので結構オススメ

Parallels Desktopを用いてm1 Mac上でwindowsを起動した状態

選択候補3️⃣ Dukascopy Japan Jforex + FIX API

dukascopy.jp FIX APIopen in new window のページに記載されているように、デューカスコピー・ジャパンではFIX APIの提供も行っている

しかし、FIX APIを利用するには口座残高100万円以上 + FIX API利用申込書, 印鑑登録証明書の郵送手続きが必要となっており、いろいろと面倒な印象を受けたのでパス

ただ、デューカスコピー・ジャパンのJforexに対する評価は個人的にかなり高い

参考記事: 【本音レビュー】デューカスコピー・ジャパンのECNプラットフォーム JForexは使える?

選択候補4️⃣ cTrader + FIX API

cTraderで自動売買というと、プログラミング言語c#を用いてcBotを作成して行うのが一般的だが、cTraderにおいても FIX API が提供されており、特に口座残高●万円以上といった条件ナシで利用が可能となっている

FIX APIってなんぞやopen in new window

このcTrader FIX APIを利用するケースで個人的に感じるメリット&デメリットは以下

メリット

  1. cTraderに対応しているブローカーであればOK
  2. FIX APIを利用する為に一定額以上の証拠金や書類での申請などは不要
  3. cTrader = ECNなので透明性が高く、約定拒否や取引制限が発生しない
  4. MT4やMT5のように、常時起動の必要なし

デメリット

  1. cTraderに対応しているブローカーが少ない
  2. FIX APIを用いたトレード方法についての情報量が少ない(特に日本語の場合)

cTraderもデューカスコピー・ジャパン Jforexと同様、ノーディーリングデスク ECN方式で個人的に取引プラットフォームとしての使い勝手はMT4,MT5よりも間違いなく優秀だと感じる

しかし(以前はあったが)現在国内FX業者でcTraderに対応しているブローカーが存在せず、Tradeview, Axiory, FxPro といった海外ブローカーを利用するしかないのが現状

海外ブローカーを利用することに抵抗がある方はこの時点でパスとなるだろうが、個人的には問題なし(特に Tradeview, FxPro に関しては数多くある海外ブローカーの中でも安全性はトップクラスだと思っている)

参考記事: 海外FXを利用する上での落とし穴(危険性)について

これら候補から cTrader (FIX API) を選んだ理由

cTrader (FIX API)を選んだ理由

  1. 取引プラットフォームとしてcTraderの使い勝手の良さはJforexと比べても互角レベル
  2. cTrader (FIX API)用の Pythonパッケージ が存在し、テストして問題なかった
  3. MT4やMT5のように、常時起動しておく必要がない為
  4. cTraderのFIX APIはデモ口座であっても開設すればすぐに利用できる為

といった感じ。

ちなみに、cTrader (FIX API)用の PythonパッケージはejtraderCTopen in new windowというものを使用させてもらった

8=FIX.4.4|9=126|35=A|49=theBroker.12345|56=CSERVER|34=1|52=20170117- 08:03:04|57=TRADE|50=any_string|98=0|108=30|141=Y|553=12345|554=passw0rd!|10=131|

cTraderでは↑のような暗号文字列のように見えるバイト配列のメッセージを作成し、FIXサーバーとやり取りする必要があるが、Pythonパッケージ ejtraderCT を利用することで注文したい内容をこのようなバイト配列メッセージに変換して送受信することができる

ある程度Pythonの知識がある方は試してみると良いでしょう

さいごに

私は今回cTraderのFIX APIを選択したが、毎月 往復50万USD以上はトレードする + OANDA JAPAN プロコースの取引環境に不満はないという方であれば、やはりOANDAの REST APIを利用するのがオススメ!

ちなみにTradingView から Webhook通知を受け取って注文処理を行うPOSTサーバーに関しては、私は Pythonフレームワーク FastAPIopen in new windowで構築し、サーバーは無料の Deta Cloudopen in new windowにデプロイしてを利用中

POSTサーバーの構築方法などについては、気が向いたらまた別の記事にて紹介したいと思います。

脱!敗者のゲーム

© 脱!敗者のゲーム 2023 - All rights reserved