TradingViewのストラテジーで自動売買する方法(BitFlyer,Bybit)
ねくすこです。(@tenten1091)
本日は、TradingViewのストラテジー通りに自動売買を行う方法を
Pythonを使った例で紹介します。
※更新履歴
◆2020/04/30 Bybit取引所に対応
◆2020/05/19 アラート受信方式にWebSocketを追加
◆2020/06/07 ストラテジーアラートに対応
■はじめに
今回紹介する方法はストラテジーからアラートを作成し、
それをPythonで検知して自動売買を行う方法です。
アラート受信をブラウザと同じ形式で行うWebSocket版を追加しました。
・コネクションを都度生成するWebHookよりも高速に行えます。
・TradingView無料アカウントでもbotを1台動かせるようになりました。
■用意するもの
・TradingViewアカウント
botを1つだけ動作させる場合は無料アカウントでOKです。
複数動作させる場合は有料アカウントが必要になります。
・Python3.x
3.6以降のバージョン推奨です。
■ストラテジーにアラートを仕込む方法
チャートを開いてストラテジーを適応させた後、
赤枠の時計ボタンを押し、アラート設定ダイアログを表示します。
"コピー用 (XXXXXXXの部分はアラート名に置き換え)"
XXXXXXX,{{strategy.order.action}},{{strategy.position_size}}
条件に先ほど適応させたストラテジーが入っていることを確認し、
メッセージの部分を上記のように入力してアラートを作成します。
アラートビューを表示させ、
上記のようになっていればアラートの完成です。
1つのアラートで1台のbotを動かせられます。
アラートは作成した時点のストラテジーの設定で動作します。
途中でストラテジーのパラメーターを変えたり、ストラテジーをチャートから外してもアラートには影響が無いので注意して下さい。
◆botの仕様について◆
取引所はBitFlyerとBybitに対応、
注文は同じ方向へのエントリーは複数行わない設計になっています。
強制決済(ロスカット)は考慮していません。
他の取引所での運用はコードに手を加える必要があるため、
Pythonの知識が必要となります。
◆メリットなど◆
従来のbotでは、テクニカルの計算を自作する必要がありましたが、
この手法では全ての計算がPineスクリプト内で完結するため、
その部分の移植が必要なくなります。
過去のデータをAPIで公開していないBitFlyerのような取引所でも
テクニカルによるトレードが可能になります。
TradingViewに登録されている全てのチャートで
売買サインを登録することが可能です。
ストラテジーの種類だけbotを作成することが可能です。
他の方の公開されている有用なストラテジーを取得し、
その日のうちに稼動させることができます。
◆ Python外部パッケージのインストール◆
botの内部でPythonの外部パッケージを使用しているため、
以下のコマンドを実行してパッケージのインストールをして下さい。
pip install retry
pip install flask
pip install requests==2.22.0
pip install ccxt==1.27.6
pip install websocket-client==0.46.0
pip show retry
pip show flask
pip show requests
pip show ccxt
pip show websocket-client
上記のコマンドを実行してパッケージの詳細が表示されていれば
正しくインストールができています。
■自動売買Botコード
自動売買のプロジェクト一式は
GitLabのプライベートリポジトリにアップロードしています。
GitLabへ登録していただいた後、そちらのアカウントを招待いたします。
登録方法はこちらの記事を参考にして下さい。
noteのお問い合わせからnote購入時の注文IDとGitLabのアカウント名を
お教えください。1日以内に招待を行います。
※招待完了後のこちらからの返信は行いません。
※注文IDが見当たらない場合は、IDの代わりに購入日を添えてください。
GitLabのアカウント名は、
ログイン後に画面右上のアイコンを押すと表示される、
@付きの名称になります。
招待が完了すると、GitLabからその旨を通知するメールが届きます。
GitLabのホーム画面に鍵付きのリポジトリが表示され、
その中の雲アイコンからプロジェクトがダウンロード可能になります。
■プロジェクト構成
client
┣ service
┃ ┣ bitflyer.py BitFlyerのトレード機能
┃ ┣ bybit.py Bybitのトレード機能
┃ ┗ exchange.py 取引所の共通機能
┣ wrapper
┃ ┣ bitflyer.py BitFlyerのccxt拡張
┃ ┗ errors.py 取引所エラー拡張
┣ parser
┃ ┣ legacy.py アラートパーサー(旧式)
┃ ┣ flexible.py アラートパーサー(strategy形式)
┃ ┗ alert.py アラートパーサーの共通機能
┣ notify.py Lineへの通知機能
┗ receiver.py アラート受信機能
server
┣ realtime
┃ ┗ tradingview.py TradingviewのWebSocket機能
┣ service
┃ ┗ tradingview.py TradingviewのWebSocket監視機能
┣ sender.py アラート送信機能
┣ setting.ini サーバー設定ファイル(共通)
┣ setting_webhook.ini サーバー設定ファイル(webhook版)
┗ setting_websocket.ini サーバー設定ファイル(websocket版)
setting
┣ bf_example.ini BitFlyer設定サンプルファイル
┗ bybit_example.ini Bybit設定サンプルファイル
server_webhook.py サーバーコード(webhook版)
server_websocket.py サーバーコード(websocket版)
trade.py トレードメインコード
プロジェクト構成と各種ファイルの概要になります。
この先では、上記プロジェクトの実行手順などを説明しています。
ここから先は
¥ 9,800
この記事が気に入ったらチップで応援してみませんか?