ビットフライヤーFXの1時間足にボリンジャーバンドでアプローチ

前回の記事3本ではビットコインキャッシュにボリンジャーバンドを利用した有望な売買ルールを発見しました。今回はビットフライヤーのビットコインFX(bFFX)で、ボリンジャーバンドを使った売買ルールを探します。

■使用するストラテジー
TradingViewの内蔵ストラテジーの中にはボリンジャーバンドのストラテジーが2種類あります。「Bollinger Bands Strategy」と「Bollinger Bands Strategy directed」です。「Bollinger Bands Strategy directed」は売買の成績だけでなく、「売りのみ」「買いのみ」に分けて検証することが可能なアップグレード版です。現物は買いからしかエントリーできないので「買いのみ」の機能を重宝しますが、bFFXはレバレッジ取引で売りでも買いでもエントリーできるため、売りのみと買いのみに分けて評価する意義は現物にくらべるとあまり大きくありません。しかし、損益グラフの形を比較できる点は有用です。したがって、今回も「Bollinger Bands Strategy directed」を使用します。使い方はTradingViewの詳細チャートで画面上方にあるインジケーターから「内蔵」を選択し、「Bollinger Bands Strategy directed」を選択します。

■「Bollinger Bands Strategy directed」の売買ロジック
ボリンジャーバンドの標準偏差σの設定値を一度超えたのちに終値がσを割ったら次の足の初値で売り。一度σを割ってから終値がσを超えたら買い、という逆張り型の売買ルールです。それぞれの売買ポイントが発生するたびにドテン売買するロジックになっています。

このストラテジーのパラメータは「計算期間に使用するローソクの本数」と「標準偏差σ」の2種類です。
画像はよく使われる期間20、標準偏差σ=2でテストする場合のパラメータ設定です。

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

■Bollinger Bands Strategyを様々な条件で検証
まずは手数料を考慮しないで検証します。有望そうな売買ルールが見つかれば最終段階で手数料やスプレッドを盛り込んだり、「買いのみ」と「売りのみ」の損益グラフを別々にチェックしてみましょう。
取引量は1BTC固定です。

・1時間足で検証
これまで試した3種類の仮想通貨:リップル、イーサリアム、ビットコインキャッシュすべてで、1時間足はおおむねマイナスになりました。おそらくビットコインもそうなるでしょう。
対象期間は2018年の1月1日から2019年の9月1日までです。
まずはボリンジャーバンドで最もメジャーな設定である「期間20、標準偏差σ=2」の場合の損益グラフを見てみましょう。
・期間20、標準偏差σ=2の損益グラフ

まあ、これは使い物にならないですね。
増えたり減ったりせず、もっと一方的に減り続けてくれれば使い物になります。
というのも、一方的に減り続ける売買ルールが見つかれば、パラメータやロジックなどをそのままにして、売りと買いのみをそっくりそのまま入れ替えれば一方的に利益が積みあがることになります。

※ただしこの方法を使う場合は手数料とスプレッドをゼロに設定する必要があります。手数料やスプレッドが原因で一方的に負ける売買ルールもあり、そのような売買条件では売りと買いを入れ替えても利益にはなりません。
要は、プラスでもマイナスでもいいので損益がどちらか一方的に偏ってほしいということです。増えたり減ったりを何度も大きく来たりする売買ルールはよくありません。それではサイコロを振って売買しているのと同じで、最終的には手数料とスプレッドの分だけ負けることになる可能性が高いです。
リップル、ビットコインキャッシュ、イーサリアムの1時間足にBollinger Bands Strategyを試したところ、期間設定を色々変えてもだいたいマイナスになりました。その中にはほぼ一方的にマイナスになるパラメータがいくつかあり、そのような売買ルールは売りと買いを入れ替えることで利益を狙えそうでした。
その観点で、bFFXでもほぼ一方的にマイナスになるパラメータを探してみようと思います。ということで、σ=2のまま期間を1から120まで試しましたが、他の仮想通貨ほど一方的にマイナスになる損益グラフはあまり出てきませんでした。
しいて言うなら次の条件です。
・期間38、σ=2

これはまあまあですね。上下反転させてみましょう。

売りと買いを入れ替えると、白抜きの部分が利益に相当するようになります。なかなかいいね、くらいでしょうか。半分以上を占めるあまり利益が伸びていない期間がもどかしいところです。もちろん、方向感のない局面でほとんど損をしないということは非常に重要ではありますが。また、2018年からの荒れた相場で実際にこんな感じで利益が出せていたとしたら、トレーダーとしてはごく一部の相当な上級者でしょうね。

さて、逆張り戦略の売買ルールで、売りと買いを入れ替えて利益が出るようになるということは、そもそも順張り戦略が正解だったということです。つまり、ボリンジャーバンドの標準偏差「σの設定値を一度超えたのちに終値がσを割ったら次の足の初値で買う」「一度σを割ってから終値がσを超えたら売る」という順張り型の売買ルールが正解だったということです。好ましい期間は38。
また、σ=2を直感的に言葉で表現すると「平均よりかなり大きく動いたとき」ですので、そこからいったん戻ってきたタイミングで、もう一度上がったり下がったりする方向に張るのが良かったということですね。
ちなみに、下記は同じ売買ルールのまま売りと買いのみを入れ替えてテストしたものです。

こちらはTradingViewの内蔵ストラテジーではなく私が作ったスクリプトで検証したものなのでちょっと怪しいところはあります。逆張りの時の損失額とこちらの利益額が一致しないので、何かミスっている可能性はありますが、損益グラフの形状も数字も大体似ているので感覚的にこんな感じだというご参考までに。
いずれにしても、bFFXの1時間足にボリンジャーバンドを使う場合は順張りがよさそうだな、ということは言えるかなと思います。

ご参考までに、スクリプトとパフォーマンスサマリーは下記のとおりです。
☆スクリプト
//@version=4
strategy(“Bollinger Bands Strategy”, overlay=true)
source = close
length = input(38, minval=1)
mult = input(2.0, minval=0.001, maxval=50)

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis – dev

buyEntry = crossover(source, upper)
sellEntry = crossunder(source, lower)

if (crossunder(source, lower))
strategy.entry(“BBandSE”, strategy.short, stop=upper, oca_name=”BollingerBands”, oca_type=strategy.oca.cancel, comment=”BBandSE”)
else
strategy.cancel(id=”BBandSE”)

if (crossover(source, upper))
strategy.entry(“BBandLE”, strategy.long, stop=lower, oca_name=”BollingerBands”, oca_type=strategy.oca.cancel, comment=”BBandLE”)
else
strategy.cancel(id=”BBandLE”)

//plot(strategy.equity, title=”equity”, color=color.red, linewidth=2, style=plot.style_areabr)

☆パフォーマンスサマリー

パフォーマンスサマリーはこのようになりました。

普通に考えれば十分良好な結果ですが、以前の記事でご紹介した「Volty Expan Close Strategyを使ったbFFX1時間足の攻略法」には遠く及ばないですね。この売買ルールに割く資金があったら、私ならVolty Expan Close Strategyの売買ルールの運用資金に回します。

さて、予想通りbFFXもリップル、イーサリアム、ビットコインキャッシュと同じく、1時間足にボリンジャーバンド逆張りの売買ルールでは利益が出せなさそうでした。やるなら売りと買いを入れ替えて順張りがよさそうです。
bFFXにはボリンジャーバンドの逆張りは使えないのでしょうか?そうとは限らないでしょう。ある売買ルールが使える条件を探す方法のひとつとして、時間足を変えるとうまくいくことがしばしばあります。リップル、イーサリアム、ビットコインキャッシュでは15分足に切り替えることでボリンジャーバンド逆張りの有望そうな売買ルールが見つかりました。そこで、bFFXでも15分足を検証してみましょう。
次回の記事ではbFFXの15分足にボリンジャーバンドの逆張り戦略を適用した際の最適パラメータやパフォーマンスを検証します