ボリンジャーバンドでリップルを攻略する 前編

前回の記事ではビットコイン売買の有望ロジックがリップルでも通用するのか検証しました。ビットコインでは抜群のパフォーマンスが出ていた売買ルールでしたが、そのままリップルに適用してもイマイチでした。もちろん裁量で適当に売買するのに比べればずっといいパフォーマンスでしたが、実際にお金を入れて試してみたくなるほどのパフォーマンスではありませんでした。そこで、今回はリップル売買に有望な別のストラテジーを探ってみます。
できれば国内で一番リップル取引量が多い取引所であるビットバンクのデータを使いたいところですが、TradingViewではビットバンクのデータを提供していないため代わりにバイナンスのXRP/USDTのデータを使います。

■ボリンジャーバンドを用いたストラテジー

まずはボリンジャーバンドを用いたストラテジーを検証してみます。
TradingViewの内蔵ストラテジーの中にはボリンジャーバンドのストラテジーが2種類あります。「Bollinger Bands Strategy」と「Bollinger Bands Strategy directed」です。「Bollinger Bands Strategy directed」は売買の成績だけでなく、「売りのみ」「買いのみ」に分けて検証することが可能なアップグレード版です。
インジケーターから内蔵を選択し、「Bollinger Bands Strategy directed」を選択します。

■売買ルール

ボリンジャーバンドの標準偏差σの設定値を超えて下がってきたら売り、割ってから上がってきたら買いという逆張り型の売買ルールで、双方の売買ポイントが発生するたびにドテン売買するロジックになっています。ドテン売買ロジックのため損益グラフには売り立て(ショート)の利益も入っていますが、今回は現物なので実際には買い→売りのトレードだけが有効です。「Bollinger Bands Strategy directed」では買いから入って売る場合のみを取り出すことも可能ですが、売りをどれだけ捉えられているか見たいので、まずはドテン売買での結果を見て、最後に買いのみの結果を分離して評価しましょう。

パラメータは計算期間の本数と標準偏差σの2つです。
画像はよく使われる期間20、標準偏差σ=2でテストする場合のパラメータ設定です。

「Strategy Direction」は0にすると「売買両方のドテン売買」、-1にすると「売りエントリーからの買いクローズのみ」、1にすると「買いエントリーからの売りクローズのみ」でテストできます。売買両方見ていくので0に設定します。

■Bollinger Bands Strategyを様々な条件で検証

まずは手数料を考慮しないで検証します。有望そうなロジックが見つかったら最後に手数料やスプレッドを盛り込んだり、買い→売りのみに分けて精査します。

取引量は10,000XRPで固定です。できれば1XRP単位の売買にしたいところですが、TradingViewでは小数点3ケタより小さい値が省略されて不正確な値になってしまいます。この問題を回避するため10,000XRPで検証します。

・1時間足で検証
まずは1時間足で検証してみます。
対象期間は2018年の1月1日から2019年の8月19日までです。

・期間20、標準偏差σ=2の損益グラフ

時間がたつにつれてマイナスがどんどん増えていて、ボロボロどころじゃないですね…。
しかし裏を返せば売りと買いを入れ替えれば利益になっていたという解釈もできます。
一方的に損失が積みあがるような売買ルールはチャンスということもあります。ただし、この方法が使えるのは手数料やスプレッドをゼロに設定している場合だけです。手数料が高額な場合、売買を入れ替えても損になるようなロジックはたくさんあります。そういう意味でもまずは手数料ゼロで検証することをお勧めします。ざっくりですが、売りと買いを入れ替えた場合を同時に検証することができるためです。
売りと買いを入れ替えて利益が出るというのはつまりどういうことか、を考えてみましょう。もともとのロジックは逆張り型でした。しかしそれをやるとこんなマイナスになってしまいます。つまり、リップルの1時間足でボリンジャーバンドを使うのなら逆張りではなく順張りにしたほうがいいということを示唆しています。標準偏差を上回ったら買って、下回ったら売ったほうがよかったということを表しています。

では、基本ロジックが同じままで売りと買いだけを入れ替えるとどうなるでしょう?
売りと買いを入れ替えて検証したい場合は自分でスクリプト(プログラム)を編集しなければなりません。場合によってはユーザーがスクリプトを公開している「公開スクリプト」の中から売買のみ入れ替えられるストラテジーを見つけられる場合があります。ただしユーザーが作ったスクリプトはバグが多く、TradingViewの仕様上の都合もあってリペイント(後出しじゃんけんのようなもの)が発生するストラテジーがたくさんあるので注意が必要です。TradingViewでバックテストをする際、リペイントは要注意事項です。これについて関しては過去の記事でご紹介したのでそちらをご覧ください。
調べてみたところ、適切な売買反転プログラムがなかったので、今回は同じ条件のまま売買を入れ替えた場合の損益グラフはご紹介できません。お手数をおかけして申し訳ございませんが、脳内補完していただければ幸いです…。
わざわざ売買を反転させたストラテジーを使わなくても、グラフの形だけならなんとなくわかるのですが、それだと最大ドローダウンやパフォーマンスサマリーなどの詳細データは得られないし、手数料を盛り込んだ評価ができないので、可能であれば売買反転でバックテストしたいところですが。

続いて、ボリンジャーバンドの標準偏差σ=2のままで期間を1から50まで1ずつ増やして調べてみましたが、残念ながらいい結果はひとつもありませんでした。
ただ、別の観点から一つだけ有望そうなチャートがありました。

どこが有望なのかと思われるかもしれませんが、先ほどお話しした売買入れ替えをすればいい形になりそうだという観点です。

上下反転させ、ついでに色も反転させたグラフがこちらです。

売買を反転させると黒い山の部分が利益になります。山の形がそこまでよくないのが気になりますが、こう見るとまずまずの成績といえるのではないでしょうか。売買を入れ替えたバックテストをしてみたいところですが、そのためにスクリプトを組むのはなかなか大変なので、またの機会に…。ただ、これくらいの成績なら前回ご紹介したVolty Expan Close Strategyのロジックのほうがよさそうです。
標準偏差σを1や2.5に変えて期間もいろいろ変えてみたものの、有望そうな損益グラフは出てきませんでした。ボリンジャーバンドでリップルの1時間足を攻略しようという方向は、あまり筋が良くなさそうです。

・15分足で検証
1時間足ではあまり有望な結果が見つかりませんでした。ただ、時間足を変えるとうまくいくことも少なくありません。そこで、次は15分足で検証してみましょう。

テスト手順の詳細
対象期間は2019年5月1日から2019年8月19日までです。取引量は10,000XRPで固定です。まずは手数料やスプレッドを無視して検証します。

まずは定番の期間20、標準偏差σ=2を見てみましょう。

全然ダメですね。プラスにはなっていますが、ドローダウンと総利益が同じくらいで、リスクが大きすぎて実用性がありません。
ただ、グラフの途中半分くらいまでは勝っています。もしも運よくこの期間だけこの売買ルールでトレードしていれば勝てていたでしょう。それでも勝った気になってしまうのが相場の恐ろしいところです。同じルールでも、グラフの最後1/3は下がる一方で、そこだけトレードしていたら一方的に負けています。この期間だけしかトレードしていなかったら負けルールだと思い込んでしまうでしょう。これも相場の恐ろしいところです。
いずれにしても、このパラメータのままで使うのは厳しそうです。期間を調整して様子を見てみます。

・σ=2、期間60
期間を5ずつ長くして100まで見てみたところ期間60に形のいいグラフがありました。

ほとんど負け一辺倒で、このままでは使えません。こんな売買ルールをどう使うのか?そうです。売買入れ替えです。ただ、トレード回数が88回とかなり少なめです。たまたまトレンドにフィットした(というか裏目に出た?)だけで、これを使っても安定しない可能性は高そうです。

次に、期間を20から1ずつ短くして見ていきました。
期間18くらいからだんだんいい形になっていき、期間9では非常に良好な形になりました。

σ=2、期間9の損益グラフ
これは期待できそうです。

ちなみに期間3と4と5ではノートレードになりました。3~5本のローソクで標準偏差2まで値が大きく動くことは、この期間内では一度もなかったということでしょうか?TradingViewの内蔵ストラテジーとはいえ、ちょっとバグが心配です。ちなみに期間1と2では、取引回数は少ないものの、トレード結果はちゃんと出てきます。

長くなってきたので、今回はここまでにします。
次回はこの標準偏差σ=2、期間9の15分足について詳しく検証しましょう。