![見出し画像](https://assets.st-note.com/production/uploads/images/135249441/rectangle_large_type_2_e5a3bdc3be84113bc451dbd9503e685f.png?width=1200)
BTCでの検証:ロットをボラティリティ依存にすることで急落は防げるか?
今回は仮想通貨の値動きについて簡単な検証をしてみます。
Xである投稿を見かけました。(アカウント名を伏せています)
![](https://assets.st-note.com/img/1711504426269-5lT4RK9Nbx.png?width=1200)
2024.3現在の仮想通貨市場はバブルみがあり,ボラティリティが高い相場になっています。
Xで見かけるbotter界隈の日次損益報告も絶対額が増えており,Sハラ(S級ハラスメント)等というコメントも見かけるくらいです。
先述のツイート(ポスト)でも損益の振幅が以前に比べて大きくなっていることが窺えます。
損益の変動幅が大きくなっている要因の一つとして,直近のボラティリティの増加が予想されます。
ボラティリティ(リスク)が大きくなれば,当然ロスカット等の可能性も増えることになります。
ここではリスクを低減するためにロットをボラティリティの関数とし,その効果を検証してみます。
すなわち,ボラティリティが大きくなった場合にロットを小さくすることを目指します。
使用するデータ
用いるデータは手元にあった2020年3月のbitFlyer-FXの1分足とします。
(古くてすみません。)
それでは2020年3月の値動きをプロットしてみます。
![](https://assets.st-note.com/img/1711436070810-5PyjL6xmuE.png?width=1200)
3月13日頃に価格が大きく下落していることが分かります。
次に1分足のリターンと60期間(過去1時間)ボラティリティをそれぞれプロットしてみます。
![](https://assets.st-note.com/img/1711435986647-abDGjI2F6K.png?width=1200)
先ほど見た3月13日付近の急落で,ボラティリティも非常に大きくなっていることが分かります。
疑似リターンによる数値実験
ここで,なんらかのモデルによってリターンの上下予測を行っていることを仮定します。
具体的には,正答率51%を仮定し,1分足のリターンの絶対値に対して指定した割合(今回51%)で符号を割り当てます。どのリターンが正(負)になるかは完全にランダムです。
これを疑似リターンと呼ぶことにします。
疑似リターンの累積和を1例プロットしてみます。
![](https://assets.st-note.com/img/1711436399158-ChAHYyOKOZ.png?width=1200)
51%の正解率でも思ったより良い損益曲線を得られています。
一方で,3月13日付近で急落しており,目測で60%程度のドローダウンがあります。ロスカットになっているかもしれませんし,60%も損失が出ると精神的に厳しく,botを止めてしまうというのもよくある話だと思います。
さらに興味深いのは,ボラティリティの自己相関性からか,爆損の後,爆益となり,累積リターンがほぼ元の水準に戻っています。
爆損後に怖くなってbotを止めてしまったら目も当てられませんね。
モンテカルロシミュレーションで100通り計算してみる
さて,疑似リターンはランダムに生成されますのでその損益曲線のパスを無限に作成することができます。
そこで,実際に100通りプロットしてみた例が下図です。
![](https://assets.st-note.com/img/1711506771032-1Bxu4J4dRo.png?width=1200)
3月13日付近で各損益曲線が大きく上下に変動していることが分かります。
この時大きいリターンを勝ち取れたパスは最終損益も大きい値になっています。
トータルでマイナスになった例は5例程度でしょうか。
(もっと多くなると予想していました。)
それぞれのパスの結果を見てみます。
![](https://assets.st-note.com/img/1711506846800-loDciqSUeq.png?width=1200)
疑似リターンの累積和について,各パスごとのリターンの平均,標準偏差,トータルリターン(≒最終損益),シャープレシオを計算しています。
100通りのパスでの統計量を見てみます。
![](https://assets.st-note.com/img/1711506908675-a9QuF2oCBu.png?width=1200)
例えば,最終損益の100通りの平均は約1.06倍,最大は2.65倍,シャープレシオの平均は0.008程度であることが分かります。
ボラティリティ依存ロットとしてみる
ここで,冒頭で示した通りロットをボラティリティの関数にすることを考えます。
ロットの計算方法は様々あると思いますが,適当に思いついた下記を使用します。
1分足リターンの過去60期間ボラティリティを計算する。
当該ボラティリティの逆数をロットとする。
ロットの過去7日間(適当)ローリング平均を計算する
基準化する(基準化ロット=ロット/ロットの7日間ローリング平均)
4.の操作は先述の固定ロットの損益曲線と比較するため,ロットの平均を1に近づけるための操作です。
計算した基準化ロットを時系列でプロットすると次のようになりました。
![](https://assets.st-note.com/img/1711508917147-KqNJO1fxuW.png?width=1200)
3月13日の急落付近ではロットが平常時の1/10くらいに小さくなっていることが分かります。
ロットを考慮した100通りの疑似リターンのパスが以下の図です。
![](https://assets.st-note.com/img/1711507921989-K89oeUGxe9.png?width=1200)
3月13日付近の変動が小さくなっており,最終損益のばらつきが小さくなっていることが分かります。最終損益がマイナスの例も無くなりました。
100通りのパスの統計量を見てみます。
![](https://assets.st-note.com/img/1711508159657-DbkpPqBrQg.png?width=1200)
可変ロットの疑似リターンについて,100通りのパスの最終損益(total_return)の平均は約0.73(固定ロットは1.06倍),最大は1.28倍(固定ロットが2.65倍),シャープレシオの平均は0.013(固定ロットは0.008)であることが分かります。
また,最終損益のばらつきが0.26と小さくなっており(固定0.62),最終損益の最小値も0.12と最終損益マイナスはなくなりました。
以上のことから次のような結果が得られました。
最終損益の平均値や最大値は,固定ロットよりボラティリティ依存ロットとすることで小さくなってしまった。一方で最終損益のばらつきは小さくなった。
シャープレシオは大きく向上した。急変時のばらつきが低減したことが理由として挙げられる。(ただし個別パスの平均リターンは若干下がっている。標準偏差の低減がより大きかったということ。)
固定ロットと可変ロットで一長一短という結果になりました。
固定ロットは最終損益の平均が大きいですが,ばらつきが大きく5%は1ヶ月間運用してマイナス損益になっています。
可変ロットは最終損益の平均は小さくなりますが,標準偏差も小さくなり1ヶ月運用してマイナスの例はありませんでした。また,シャープレシオも大きく向上しています。
感想(ポエム)
記事タイトルに対する回答としては,急落は防げるという結果になったと言ってもいいのではないでしょうか。一方で,固定ロットと可変ロットどちらを選ぶかは個人のリスク許容度次第ということになります。
個人的にはシャープレシオを重視したいため可変ロットを選ぶと思います。経験として個人で運用しているとどうしてもモデルに懐疑的になります。モデルはオーバーフィットしているのか,ロバストな何かを捉えているのか,それは(私レベルでは)判断できないからです。そのような時に損益のばらつきが大きく,マイナスに振れるとbotを止めてしまいそうなので,シャープレシオを重視しています。
この記事が気に入ったらサポートをしてみませんか?