TradingViewにはMT4みたいな自動売買は出来ません。色々調べてみると、Webhookを使えばbot側で受信可能というのが分かりました。
TradingViewのアラート機能とpythonを組み合わせて自動売買botを作ってみました。少し記事にまとめてみます。
TradingViewでのメリット
現在、MT4のEAを作成中なのですが、TradingViewでも同じアルゴリズムでプログラムを作ってます。
なぜ、そんな面倒くさい事をするかというとバックテストのためです。なんとかTradingViewでEAできれば一番ベスト。
MT4のバックテストは膨大な時間がかかる
自動売買プログラムを作ったら、必ずバックテストは必要です。
パラメータの調整次第で、プラスに化ける事があるので、あれこれ試す必要があります。しかし、MT4ではパラメータを1つ変更するたびに、テスト時間が20分以上かかります。
面倒なバックテストですが、TradingViewでは一瞬でおわります。
TradingViewは自動売買できない
売買の関数はあって、プログラムを組んでBuy、Closeなどの関数をコールすると、チャート上にもこんな感じで表示するのですが
何と実際の取引所とは自動的に売買は出来ません。
取引所と連携は出来るけど手動売買のみ
トレードパネルから、FXから仮想通貨と、色んな取引所と連携できるのですが
プログラム上での売買は出来ません。いやー、こんなのあるから、自動売買出来ると思ってましたよ。
連携出来ても手動売買のみ
取引所との連携が成功すると、左上の売買マークが光ってボタンを押すと売買出来るようになります。
しかし、PineScript(プログラム)上からは売買できません。
TradingViewで自動売買させる全体像
ここからが本題ですが、以下の手順で自動売買させます。
- PineScriptで売買ロジック設定
- Ngrokに登録してWebhook設定
- TradingViewのアラート機能を使い売買タイミングでWebhook通知
- パソコン側で受け手のWebhook受信bot作成
- buyシグナルだったら買い、sellシグナルだったら売る
利益でるロジックは必要
利益が出るロジックを持っていて、PineScriptで組んでいる事が大前提です。バックテストで右肩上がりの結果になるということ。
勘違いする方がいらっしゃるのですが、自動売買すれば稼げるわけではありません。稼げないロジックで自動売買しても、延々と損するだけだからです。
参考サイト
Webhookの受信コードは、OANDAさんの記事を参考にさせて頂きました。OANDA使っていないのですが、目からウロコでした。感謝感謝!
Webhook発信サービス
WebhookはNgrokを使いました。無料で使えるので助かります。
受け手側のbot
bot側はかなり簡単な構造で、ほとんどソースがないです。売買タイミングの肝の部分は、TradingView側で考えないといけないから、botでやることと言えば
- Webhookを受信
- buyだったら買う処理
- sellだったら売る処理
これだけです。シグナルの内容はアラートで設定する「文字列」なので、解析がめちゃくちゃ楽です。
Webhook受信は2行だけ
Webhookハンドラー側で売買処理
TradingViewのアラートは形式は自分で設定出来るので、必要な情報を通知するようにして、受け手側で文字列解析します。カンマ区切りで必要な情報をアラートで発信、Webhookで受信したら、ハンドラー側から直接売買コールします。
botとしてはありえないくらいコード数少ないです。結構良いかもしれないですね。
実施結果
TradingView側で、アラートが発生したら
受け手のbotで無事に売買できました。多少誤差はありますが、ほぼ狙ったタイミングでトレード出来てます。
TradingViewのアラートはパソコンを立ち上げておく必要がないので便利です。TradingView側のサーバーからWebhookで通知が発生する仕組みです。
ご質問はコメント欄からお願いします