[暗号通貨自動売買] TVExtBot実践ガイド(ボラティリティ・ブレイクアウト戦略)

ボラティリティ・ブレイクアウト戦略とTVExtBot for 暗号通貨(以下、TVExtBot)で使用する方法について説明します。

#### ● 申込方法

<font color="blue">__PREMIUM+バージョンを購入したユーザーはTradingViewのユーザー名を明記の上、<tvextbot@gmail.com> までメールを送ってください。__</font>

#### ● 注意事項

<font color="red">__ボラティリティ・ブレイクアウト戦略を使用した際、発生した損失に対してはその責任を負いかねますのであらかじめご了承ください。
個人判断のもと、ご使用ください。__</font>

<font color="green">🎁**Bybit 取引手数料15%割引&特典**
Bybit取引所の**アフィリエイトリンク**を使ってアカウントを新規登録していただくと、**取引手数料15%割引**と**最大90ドルの登録特典**がいただけます。
 :point_right: [アフィリエイトリンク](https://www.bybit.com/en-US?affiliate_id=5246&group_id=0&group_type=1)
 :point_right: [登録特典ページ](https://www.bybit.com/ja-JP/prize_page/)
</font>

# 概要
ボラティリティ・ブレイクアウト戦略はモメンタムを利用し、短期的な相場の動きを判断する有効性が極めて高い投資戦略で、伝説的な先物オプショントレーダーであるラリー・ウィリアムズ氏が積極的に活用した「ボラティリティ・ブレイクアウト戦略(Volatility Breakout Strategy)」を、仮想通貨市場の特性に合わせて調整した戦略です。

>日足で発生した短期間の上昇傾向を察知して、購入した後に１日以内に売却することを基本にしています。この戦略は変動性の高い先物・オプションなどのマーケットで優れた成果を出し、ラリー・ウィリアムズ本人が使用している戦略として有名です。
ボラティリティ・ブレイクアウト戦略はその名前からも類推できるように価格変動性が高い市場で非常に有効です。市場の価格変動性が高ければ高いほど、トレンドが明確に示されやすいからです。そして、仮想通貨はどんな投資対象よりも価格変動性の高い資産の一つです。仮想通貨市場の高い変動性はボラティリティ・ブレイクアウト戦略にとって非常に有効です。

<font color="red">＊「ボラティリティ(volatility」は価格変動性もしくは値動きを、「ブレイクアウト(breakout)」は突破を意味します。</font>
# 詳細
ボラティリティ・ブレイクアウト戦略は、次のような簡単なルールで動作します。
<img width="600" alt="ボラティリティ・ブレイクアウト戦略" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402678/adafd059-55cc-7bc9-faab-0a0461d41f9c.png">
[ 出典: [HEYBIT](https://support.heybit.io/ja/articles/3768328-heybit%E3%81%AE%E3%83%9C%E3%83%A9%E3%83%86%E3%82%A3%E3%83%AA%E3%83%86%E3%82%A3-%E3%83%96%E3%83%AC%E3%82%A4%E3%82%AF%E3%82%A2%E3%82%A6%E3%83%88-vb-%E6%88%A6%E7%95%A5%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B) ]

① 前日の日足を基準にrangeを計算する。(range = 前日の高値 – 前日の安値)

② 当日の取引時間中の値が初値 + 前日のrange値を超えた場合、「買い」注文をする。

③ 翌日の初値で指値「売り」注文をする。

例えば、上の図を見てみましょう。

>左が前日の日足、右が当日の日足です。まずrangeは前日の高値-前日の安値 =100万円-90万円=10万円で、当日の購入価格は96万円+10万円＊0.6=102万円です。したがって、もし翌日、初値が110万円になった場合(110/102)-1=7.84%を儲かることになり、100万円になった場合(100/102)-1=-1.96%を失うことになります。

>まとめると、一日単位で一定水準以上の範囲を超える強い値上げトレンドを突破の信号としてとらえ(トレンドの把握)、上昇するトレンドに乗りながら(トレンドの乗り)、一日単位で早く収益を実現する(短期トレーディング)ものです。

>価格は一定水準以上のトレンドが形成されると、その方向に動く特徴があることをラリー・ウィリアムズは把握しており、驚くほど簡単な公式で短期トレンドを定義しました。一日単位での清算は、急落による損失を最小化し、安定した右肩上がりのリターンを可能にします。

#### k値(ノイズの割合)について
>ノイズの割合は、当該銘柄がどれだけトレンド性を持っているのかを示す指標です。価格が一方向に動き続けばトレンド性が強く、ノイズが少ないことであり、価格が上って下がり、下がって上がったりする性質を持つならトレンド性が弱い 、すなわちノイズが多いのです。

>それではどんな銘柄の動きのノイズをどうやって定量化できるのでしょうか。つまり、どの銘柄の日中の動きがトレンド性を持つか、持たないかをどう計量することができるでしょうか。

>どんな銘柄の動きがトレンド性を持つのであれば、どのような現象が発生するかに答えがあります。 トレンドだと、ローソクの上ヒゲや下ヒゲが短くなるでしょう。ノイズが全くない場合は、上ヒゲと下ヒゲが全くないローソクになるでしょう。一方、上ヒゲや下ヒゲが長いということは、取引中に価格が逆転するトレンドが強かったことを示唆します。この観点からすると、日中ローソクのノイズを次のように定義することができます。
>>ノイズの割合=1-abs(初値-終値)/(高値-安値)


# バックテスト
下記のバックテスト結果は2020年度Bybit取引所のETH/USDの日足チャートを基準としています。
![バックテスト結果](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402678/3c2f0000-b6a8-d534-1462-11b6073b6554.png)
##### 年度別バックテスト結果
> <font color="red">※ ETH/USD日足チャート、レバレッジ1倍、取引手数料0.075%基準</font>

|年度|純利益(%)|勝率(%)|プロフィットファクター|最大損失(%)|
|---|---|---|---|---|
|2019|80.89%|53.91%|1.438|<font color="red">18.3%</font>|
|2020|306.6%|68.83%|3.183|<font color="red">7.57%</font>|
### 入力情報
<img width="400" alt="TraidingViewの入力情報" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402678/7027baa2-82fb-e44d-08b8-714c18c4e167.png">
<font color="red">※ BeforeDay Open-Close Volatility(%)とは前日の始値-終値の差から求めた変動率です。<br>前日の変動率が5%以上だと当日の買いのシグナルは発生しません。（デフォルト値は0です）</font>

# アラート設定

<font color="red">※ 注意事項
チャート上買いシグナルが発生した後アラートを設定すると注文が実行されるので、
一旦、APIキー登録画面で対象の取引所を中止にしておきます。
</font>
![APIキー中止ボタン](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402678/4b960918-b2d2-7c45-04f8-fa60e2853966.png)
① TradingViewのインジケーター&ストラテジーダイアログを開いて、招待専用スクリプトを選択します。
![招待専用スクリプト](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402678/8ea785bb-6c66-525c-9ac9-e3d52fa8f1a8.png)
下記の２種類のスクリプトがありますが、自動売買は<font color="red">2</font>を使用してください。
1. [TVExtBot]Volatility Breakout Strategy(BackTest)
2. [TVExtBot]Volatility Breakout Indicator(With Alerts)

② [TVExtBot]Volatility Breakout Indicator(With Alerts)をチャートに追加します。
![ETH/USD日足チャート](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402678/46905c59-eff8-91ab-df71-4a242c5eddcb.png)
③VBIの設定ボタンをクリックし、 「BeforeDay Open-Close Volatility(%)」欄に5を入力します。
![入力設定](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402678/837206c3-f2b0-829a-81ac-ba3bc222ea23.png)
<font color="red">※ 使用しない場合は0を入力してください。</font>
④ TVExtBot設定画面のメッセージ作成画面より買い注文メッセージを作成します。
   【入力情報】

- 取引所：Bybit
- 通貨ペア：BTC/USD
- マーケット：USD
- 注文方法：買い
- 注文タイプ：成行
- 注文数量(保有残高比%)："50"を入力
- レバレッジ："2"を入力
- 損切設定(%)："-10"を入力

![買い注文メッセージ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402678/17b1c4a5-8b64-e84f-7142-f5a29babd5b8.png)

```json:出力結果
TVM:{"lang":"ja","exchange":"bybit","account":"*","symbol":"BTC/USD","type":"market","side":"buy","bal_pct":50,"leverage":2,"sl_pct":-10,"token":"認証キー"}:MVT
```
⑤ TVExtBot設定画面のメッセージ作成画面よりポジション決済注文メッセージを作成します。
   【入力情報】

- 取引所：Bybit
- 通貨ペア：BTC/USD
- マーケット：USD
- 注文方法：ポジション決済
- 注文タイプ：成行

<font color="red">※ 注文数量(保有残高比%)を入力しない場合は100%ポジションを決済する。</font>
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3430323637382f30386130356433652d306232372d613432622d636462612d3037333130663433653866392e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402678/f3c61cbd-075f-9f14-8646-aa2d9176bb3b.png)

```json:出力結果
TVM:{"lang":"ja","exchange":"bybit","account":"*","symbol":"BTC/USD","type":"market","side":"close","token":"認証キー"}:MVT
```

⑥ アラート追加ボタンをクリックし、買いアラートを追加します。
<font color="red">※ ④で作成した買い注文メッセージをアラートのメッセージ欄にコピー＆ペーストしてください。</font>
![買いアラート追加](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402678/6e228667-f427-6b28-eae5-4ec2328d6374.png)
⑥ アラート追加ボタンをクリックし、ポジション決済アラートを追加します。
<font color="red">※ ⑤で作成したポジション決済注文メッセージをアラートのメッセージ欄にコピー＆ペーストしてください。</font>
![ポジション決済アラート追加](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402678/549ffe9b-c8fc-5299-b885-490d7f146ca7.png)
 :point_right: <font color="red">TradingViewのWebhook URLに下記のURLを使用してください。</font>
![Webhook URL](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402678/e1eaad51-e6f7-1497-4f1f-a367fb599dca.png)
※ このコンテンツは[HEYBIT](https://support.heybit.io/ja/articles/3768328-heybit%E3%81%AE%E3%83%9C%E3%83%A9%E3%83%86%E3%82%A3%E3%83%AA%E3%83%86%E3%82%A3-%E3%83%96%E3%83%AC%E3%82%A4%E3%82%AF%E3%82%A2%E3%82%A6%E3%83%88-vb-%E6%88%A6%E7%95%A5%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B) より一部の内容を引用しています。