見出し画像

【無料公開!!】 TANBOT for BitMEX -TradingView Webhookアラートを利用した自動売買BOT-

2020/2/22 追記
体調が悪く、緊急入院中で十分なサポートができないため、一時的に通常販売を中止します。
(Discord障害等の理由で)noteを購入したけれど、Discordに参加できていない人向けに有料部分(Discord URL)を残す必要があるため、noteの価格を最高額に設定しています。
❗❗決して購入しないでください❗❗
2020/02/10 追記
おまけの有料DiscordコミュニティにTANBOT for BitMEX ver.a038を公開するのに合わせて、有料部分の価格を4,000円から6,000円に変更します。
今回のバージョンアップによって、BitMEX/Testnetを同時に利用可能になったり、TradingViewからのアラートに5つほど情報を追加できるようになりました。それにより、複数のアラートを管理できたり、アラート時の注文と実際の建玉のスリッページを記録したりと、結構便利になったと思っています!
今回のアップデートに協力していただいた、講師の方々、テスターの方々にこの場をお借りしてお礼申し上げます。
2019/12/20 追記
体調がだいぶ良くなってきたため、しばらく有料Discordの募集を再開します。
(募集を終了する場合は事前にこちらかTwitterにて告知します)

主なおまけの内容は、導入サポート、TANBOT for BitMEXの最新版、bitFlyer損益くん(強)、BitMEX損益くん(強)、自分や講師の制作したインジケータの提供、TradingViewのテンプレート(アラートとストラテジーの利確損切り幅指定及びドテン機能)提供などがあります。

Discordへの参加URLは最下部の有料部分に記載します。
Discordへ参加後、note購入の際に送られてくる購入メールのスクリーンショット及び注文IDを #note購入者認証 チャンネルに記入してください。


2019/12/8 追記
予定通り、おまけの有料Discordの募集を終了します。
(Discord障害等の理由で)noteを購入したけれど、Discordに参加できていない人向けに有料部分(Discord URL)を残す必要があるため、noteの価格を最高額に設定します。
❗❗【決して購入しないでください。】❗❗
どうしてもという方はTwitterにDMをいただければ、(対応可能な場合のみ)元の値段で対応させていただきます。


2019/12/7 追記
思っていたより要望が多かったため、一時的におまけの有料Discordの募集を再開します。
12/7 10:00 ~ 12/8 23:59 の期間限定の予定です。




=======前置き=======

こんにちは。たんさんです。

先日、TradingViewのWebhookアラートを使ったbitFlyer自動売買BOTを制作しました。↓

これはBOTの基本的な機能しか備えていませんでしたが、この度様々な機能を追加したBitMEX版BOT「TANBOT for BitMEX」をリリースすることになりました。

TANBOT for BitMEXのコードと本noteは無料で読んでいただくことが可能です。

ただ、今回はnote購入者にはおまけとして専用Discordグループへ招待させていただきます。
DiscordグループではTANBOTの導入サポート、TradingViewアラートの共有、新たなBOTの先行利用などの特典を考えています。
(TANBOTの導入サポートはnote購入者のみとさせていただきます)

サポートや運営にも限界があるので、機を見てnote価格を上げる予定です。だいたい50部を目処に値段を上げますので、あらかじめご了承ください。

※商用利用はお断りします。





=======機能一覧=======

TANBOT for BitMEXの機能の概要は以下の通りです

自動売買
・TradingViewのWebhookアラートによる自動売買およびポジション決済
・注文内容をDiscordへの通知
・注文した際の各種情報Discordへの通知
・BitMEXサーバが稼働中か確認
・注文に失敗した際、1分以内に再注文
・証拠金不足による注文失敗の場合、再注文をやめる
・決まった期間に1度、証拠金の変遷のグラフをDiscordに投稿

スプレッドシート操作
・注文量、レバレッジ、通貨ペアの変更
・成行売買
・現在の建玉に関する情報の取得
・強制成行決済
・スプレッドシート操作による動作結果を表示
TANBOT for BitMEXの1番の特徴は、スプレッドシートから直接、設定変更、注文や情報確認を行うことができる点です。

BitMEXは公式アプリなどなく、スマートフォンからのアクセスが少し不便ですが、TANBOT for BitMEXを利用すれば、スマートフォンにGoogleスプレッドシートをインストールしておけば、手軽に操作できるようになります。

スクリーンショット 2019-09-13 19.37.04



=======必要なもの=======

TradingViewの有料アカウント
・TradingViewのアラート
・Googleアカウント
・Webhook URLを取得できるDiscordサーバ
・BitMEXのアカウントおよびAPI

↓TradingViewの有料登録はこちらから

・BitMEXはBOT専用の口座を作っておいた方が良いかと思います。
 成行注文BOTなので、アフィリエイト口座の方が手数料が安いです。
↓BitMEXの登録はこちらから



=======おことわり=======

BitMEXでBOT取引を行う際、API KeyとAPI Secretが必要になります。
BitMEXでの口座開設はもちろんですが、API Key等を使用する際の注意事項についても各々で充分に理解した上でご利用ください。
BOTを運用する際には別途TradngViewのインジケーターなどでアラートを設定する必要があります。
当プログラムコードを利用したことにより利用者が被る損失や被害について、筆者は一切の責任を負うことはできません。



===Google Apps Scriptの設定①===

※Googleの言語設定は日本語になっていますか?
当BOTは日本語設定向けで制作されているので、他言語に設定されている場合は変更されることをお勧めします。
日本語設定への変更は以下のURLを参考にされてください。

🔴Googleドライブにアクセス

🔴+新規をクリック

スクリーンショット 2019-09-10 1.11.30

🔴Googleスプレッドシートをクリック

スクリーンショット 2019-09-04 21.00.54

🔴無題のスプレッドシートをクリックし任意の名前(ここでは「TANBOT」)を入力

スクリーンショット 2019-09-10 10.23.02

🔴ツール > スクリプトエディタをクリック

スクリーンショット 2019-09-10 10.24.48

------------↓スクリプトエディタにアクセスできない場合↓-------------
スクリプトエディタにアクセスできない場合は以下の方法でGoogleアカウントにGoogle Apps Scriptを接続してください。
・Googleドライブにもどり、+新規 > その他 > +アプリを追加をクリック

スクリーンショット 2019-09-10 10.26.54

アプリを検索Google Apps Scriptと検索し、+接続をクリック

スクリーンショット 2019-09-10 10.34.00

チェックボックスにチェックが入っていることを確認し、OKをクリック

スクリーンショット 2019-09-10 10.37.12

------------↑スクリプトエディタにアクセスできない場合↑-------------

🔴無題のプロジェクトをクリックし、任意のプロジェクト名(ここでは「TANBOT」)を入力しOKをクリック

スクリーンショット 2019-09-10 10.40.38

🔴以下のスクリプトをコード.gsに貼りつける

【最新】2019/11/26   Discord Webhook部分を修正

🔴以下の部分に各自の情報を入力
(注文量やレバレッジ、通貨ペアは後ほどスプレッドシートから変更可能です)

//=========================================================
// ↓入力部分↓
//=========================================================
// API Key等を設定
var key = "API Key";
var secret = "API Secret";


// 注文量
ORDER_SIZE = 100;
MY_LEVERAGE = 15;
PAIR = "XBTUSD";


// Discord Webhook URL
DISCORD_WEBHOOK_URL = “Discord Webhook URL";



======BitMEXのAPIを取得======

🔴BitMEXのAPIページを表示

🔴名前に任意の名前(ここでは「TANBOT」)を入力し、キーのアクセス許可で注文を選択しAPIキーを作成をクリック

スクリーンショット 2019-09-10 10.59.14

🔴IDがAPI Key、秘密がAPI Secretです。Google Apps Scriptに戻り、該当部分に貼り付け

スクリーンショット 2019-09-10 11.02.50



====Discord Webhook URLを取得====

🔴+サーバーを追加をクリック

スクリーンショット 2019-10-03 22.41.55

🔴新規作成をクリック

スクリーンショット 2019-10-03 22.42.25

🔴サーバー名に任意の名前(ここでは「tanbot」)を入力し新規作成クリック

スクリーンショット 2019-10-03 22.43.18

🔴+チャンネルを作成をクリック

スクリーンショット 2019-10-03 22.44.15

🔴テキストチャンネルを選択し、チャンネル名に任意の名前(ここでは「tanbot」)を入力し、チャンネル作成をクリック

スクリーンショット 2019-10-03 22.44.50

🔴作成したチャンネルの⚙チャンネルの編集をクリック

スクリーンショット 2019-10-03 22.45.22

🔴ウェブフック > ウェブフックの作成をクリック

スクリーンショット 2019-09-10 11.12.42

🔴ウェブフックURLのCopyをクリックし、保存をクリック。Google Apps Scriptに戻り、該当部分に貼り付け

スクリーンショット 2019-09-10 11.14.27



====Google Apps Scriptの設定②====

🔴API Key、API SecretとDiscord Webhook URLを貼付できているか確認
※「"」や「;」を消さないよう注意

//=========================================================
// ↓入力部分↓
//=========================================================
// API Key等を設定
var key = "aaaabbbbccccdddd";
var secret = "eeeeffffgggghhhh";


// 注文量
ORDER_SIZE = 100;
MY_LEVERAGE = 15;
PAIR = "XBTUSD";


// Discord Webhook URL
DISCORD_WEBHOOK_URL = "https://discordapp.com/iiiijjjjkkkkllll";

🔴ファイル > 保存をクリック

スクリーンショット 2019-09-10 11.25.40

🔴公開 > ウェブアプリケーションとして導入をクリック

スクリーンショット 2019-09-10 11.26.07

🔴以上の設定になっていることを確認し導入をクリック
・プロジェクトバージョン:New
・次のユーザーとしてアプリケーションを実行:自分
・アプリケーションにアクセスできるユーザー:全員(匿名ユーザーを含む)

スクリーンショット 2019-09-10 11.26.36


※最近以下のように表示が変更されているようです。
・Project version:New
・Execute the app as:Me
・Who has access to the app:Anyone, even anonymous

スクリーンショット 2019-10-22 9.53.25

🔴許可を確認をクリック

スクリーンショット 2019-09-10 11.27.24

🔴自分のGoogleアカウントをクリック

スクリーンショット 2019-09-10 11.27.52

🔴詳細をクリックしTANBOT(安全ではないページ)に移動をクリック

スクリーンショット 2019-09-10 11.28.18

🔴許可をクリック

スクリーンショット 2019-09-10 11.29.02

🔴現在のウェブアプリケーションのURLに表示されたURLをコピー
※このURLをTradingViewのWebhookアラートに貼り付けます。

スクリーンショット 2019-09-10 11.29.46

----------------↓スクリプトを変更/更新する際の注意↓-----------------
※今後、スクリプトを編集し更新する際はファイル > 保存をクリックした後に公開 > ウェブアプリケーションとして導入をクリックして、
プロジェクトバージョン:New を選択し、更新してください。
(ウェブアプリケーションのURLは変わりません)

スクリーンショット 2019-09-10 12.38.54

※最近以下のように表示が変更されているようです。
・Project version:New
・Execute the app as:Me
・Who has access to the app:Anyone, even anonymous

スクリーンショット 2019-10-22 9.50.55

----------------↑スクリプトを変更/更新する際の注意↑-----------------

🔴🕒現在のプロジェクトのトリガーをクリック

スクリーンショット 2019-09-10 11.49.52

🔴右下の+トリガーを追加をクリック

スクリーンショット 2019-09-10 11.51.58

🔴1分間隔で実行する関数をトリガーに追加します。
[再注文、ログ、各種情報の取得、スプレッドシートの初期設定をする機能]
・実行する関数を選択:opeManage
・実行するデプロイを選択:Head
・イベントのソースを選択:時間主導型
・時間ベースのトリガーのタイプを選択:分ベースのタイマー
・時間の間隔を選択(分):1分おき
以上を選択し保存をクリック

スクリーンショット 2019-09-10 11.53.10

🔴1日間隔で実行する関数をトリガーに追加します。
[証拠金の変動グラフを作成しDiscordに通知する機能]
・実行する関数を選択:dateFunc
・実行するデプロイを選択:Head
・イベントのソースを選択:時間主導型
・時間ベースのトリガーのタイプを選択:日付ベースのタイマー
※時刻を選択は自分のお好みの時間に設定してください。
以上を選択し保存をクリック

スクリーンショット 2019-09-10 11.55.00

🔴スプレッドシートを操作する際に実行する関数をトリガーに追加します。
[スプレッドシートからの成行売買、強制決済、情報取得、レバレッジ変更、注文量・レバレッジ・通貨ペアを設定する機能]
・実行する関数を選択:getBtns
・実行するデプロイを選択:バージョン1(最新のもの)
・イベントのソースを選択:スプレッドシートから
・イベントの種類を選択:変更時
以上を選択し保存をクリック

スクリーンショット 2019-09-10 11.56.24

🔴1分間隔で実行されるトリガーによって、自動的にスプレッドシートの初期設定が行われます。(映像は最新バージョンのものではありません)



=======TradingViewの設定=======

🔴テストアラートで売買を試してみます。

テストアラートを実行する際にはBitMEXの該当口座にBTCを入金する必要があります。

スプレッドシートの注文量を1に変更してください。

スクリーンショット 2019-09-10 12.43.13

🔴以下の設定を行い保存をクリックするとすぐにアラートが発生しBitMEXに注文が送られます。
通貨ペア:何でもOKですが、BitMEXで自動売買をする際はBXBTがいいと言われています。
・「」が「1」「より大きい」で設定してみます。
・オプション:1回限り
アラートアクション
Webhook URLのチェックボックスにチェックを入れ、先ほどコピーしたURLを貼り付けます。
・メッセージにSellもしくはBuyと入力

スクリーンショット 2019-09-10 12.44.45

🔴テストシグナルを送ると、このように注文履歴がスプレッドシートの履歴タブに追記されていきます。
日本時間と証拠金は注文確定の後に、1分間隔で実行されるトリガーによって追記されます。
(映像は時間短縮のため一部カットしています)

🔴履歴タブはスプレッドシート下部にあります

スクリーンショット 2019-09-10 13.35.01

🔴本番アラート設定の際は、先ほどと同じようにWebhook URLとメッセージを入力すればOKです。



========仕様の詳細説明========

🔴Webhookアラート発生時の動作

・BitMEXサーバが稼働中か確認
 (サーバが稼働してない時にアラートが来た際は情報を保持し再注文する)
・Buyアラートで成買 / Sellアラートで成売
・以下の注文結果を履歴タブに記入
 [タイムスタンプ、注文ID、通貨ペア、売買、注文量、価格]

名称未設定

・ 注文結果の簡易情報をDiscordに投稿

スクリーンショット 2019-09-10 14.08.20

🔴スプレッドシートの入出力による動作
(スプレッドシートを変更するたびに発生するトリガーによって動作)

・設定変更 :
 [注文量(XBTUSDの場合単位はUSD)、レバレッジ、通貨ペア]
・成買 / 成売
・注文結果を履歴タブに記入
 [タイムスタンプ、注文ID、通貨ペア、売買、注文量、価格]

名称未設定

・ログ:注文などの各種操作の結果が記入されます。
・情報確認:
 [現在価格、平均約定価格、建玉、未現実損益、精算価格]

スクリーンショット 2019-09-13 19.40.54

・レバレッジ変更
・強制決済

🔴1分間隔で発生するトリガーによる動作

・履歴タブが存在しない場合、スプレッドシート全てを初期化
・Webhookアラートによる注文の詳細情報をDiscordに投稿
 [現在価格、預入証拠金、必要証拠金、未現実損益、証拠金維持率、
  平均約定価格、レバレッジ、買/売注文、建玉、清算価格]

スクリーンショット 2019-09-10 14.09.34

・Webhookアラートによる注文、及びスプレッドシート操作による以下の注文の情報を履歴タブに記入
 [日本時間、預入証拠金]

名称未設定2

🔴1日間隔で発生するトリガーによる動作

・古い証拠金のグラフがある場合、削除
・履歴タブの日本時間と預入証拠金を参照し新しいグラフを作成

スクリーンショット 2019-09-10 14.18.02

・Discordに日付と共にグラフの画像データを投稿

スクリーンショット 2019-09-10 14.21.46

証拠金等の単位は全てsatoshi(XBt)です。



=======終わりに=======

いかがでしたでしょうか?

前回のbitFlyer BOTに比べると、機能が増えたため少し複雑になってしまいましたが、慣れてくるとスマホからもアクセスできるため便利に利用していただけるかと思います!

今後も機能追加などしていく予定ですが、その場合はおまけである以下の有料パートに記載されているDiscordサーバの参加者に公開していく予定です。

繰り返しになりますが、DiscordグループではTANBOTの導入サポート、TradingViewアラートの共有、新たなBOTの先行利用などの特典を考えています。

(TANBOTの導入サポートはnote購入者のみとさせていただきます)


以上です。お付き合いありがとうございました。



ここから先は

32字

¥ 50,000 (数量限定:残り 1 / 1)

サポートしていただいたお金は全てがん闘病生活の資金に充てさせて頂きます。 BTC: 3679CqD4SnZtTgeMTVPjCefCMkrHu3nmjb