FXでボリンジャーバンドとMACDを組み合わせた逆張り手法をPineScriptでバックテスト検証してみた

※本ページはプロモーションが含まれています

市場の売られすぎと買われすぎを判断するためにMACDを用い、ボリンジャーバンドの上限と下限にタッチしたら逆張りエントリーする手法が、どの程度通用するのか?。本記事では、この戦略をバックテストし、そのパフォーマンスを評価します。

目次

オシレーターを使った逆張り

一般的に、オシレーターを使った逆張りは、あまりボリンジャーバンドは用いません。複数を組み合わせて判断することが多いです。それについては、こちらの記事にまとめました。一部、バックテストしてます。

あわせて読みたい
FXの逆張りトレードにおすすめのオシレーターの組み合わせ(RSI、MACDなど)と手法 FXの逆張りの手法には、様々な指標を用いることができますが、FXではオシレーターと呼ばれる指標がよく使われます。 オシレーターとは、相場の過熱感を示す指標であり、...

ボリンジャーバンドとMACDを組み合わせた逆張りについて

ボリンジャーバンドとMACDを組み合わせた逆張りは、テクニカル分析を用いたトレード戦略の一つで、市場の売られすぎと買われすぎを判断して、その逆にトレードする方法です。

例えば、市場が買われすぎと判断された場合には、ボリンジャーバンドの上限にタッチした時に、ショートポジションを取ることができます。逆に、市場が売られすぎと判断された場合には、ボリンジャーバンドの下限にタッチした時に、ロングポジションを取ることができます。

この戦略は、市場の反転を予想してトレードするため、反転が起こらなかった場合には損失を被る可能性があります。そのため、リスク管理にも十分注意する必要があります。

アルゴリズム案

ロング

  • MACDのヒストグラムが0より下
  • ボリンジャーバンドの下限にローソク足タッチ
  • 逆張りエントリー
  • クローズは20pips
  • 損切りは20pips

ショート

  • MACDのヒストグラムが0より上
  • ボリンジャーバンドの上限にローソク足タッチ
  • 逆張りエントリー
  • クローズは20pips
  • 損切りは20pips

TradingViewのソースコード

実際に作ってみました。

//@version=5
strategy("BB-MACD Heikin Ashi Reversal Strategy", overlay=true)

// パラメータ設定
length = input(20, title="BB Length")
mult = input(2, title="BB StdDev")
src = input(close, title="BB Source")
fast_length = input(12, title="MACD Fast Length")
slow_length = input(26, title="MACD Slow Length")
signal_length = input(9, title="MACD Signal Length")
buy_level = input(20, title="MACD Oversold Level")
sell_level = input(80, title="MACD Overbought Level")
take_profit = input(20, title="take profit")
stop_loss = input(20, title="stop loss")

// ボリンジャーバンドの計算
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// MACDの計算
[macd_line, signal_line, hist_line] = ta.macd(src, fast_length, slow_length, signal_length)

// ロング/ショートエントリーの判断
buy_signal = hist_line < 0 and low < lower
sell_signal = hist_line > 0 and high > upper

// ロング
if buy_signal
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit", "Long", profit=take_profit)
    strategy.exit("Stop Loss", "Long", loss=stop_loss)

//ショート
if sell_signal
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit", "Short", profit=take_profit)
    strategy.exit("Stop Loss", "Short", loss=stop_loss)

バックテストの結果

意外と勝率は高めですが、がんがん利益は減りますね。これでは使い物になりません。

エントリーポイントで確認してみると、やってほしい動きは行ってくれています。ただ利確ポイントが早すぎるのと、損切りがうまく出来ていないのが分かります。

この後、パラメーター調整してみたのですが、うまくいかず。初期設定でも上記を見る限り、ちゃんと動いていますからね。問題は利確と損切りのポイントです。

まとめ(検証失敗!)

ボリンジャーバンドをサインで使うのは、なかなかムズいです。

単純に利確ポイントをpips設定はキツイですね。上記は平均足で表示していますが、平均足の色が変わるまで設定だとなんとかなりそうかも。まだ検証を続行してみます。

ボリンジャーバンドとストキャスの組み合わせについて

ストキャスティクスとの組み合わせは、苦労しながらも意外とうまくいきました。

あわせて読みたい
【PineScrypt】FXボリジャーバンドとストキャスでのスキャルピングでボリバン中心線を使った手法を検証 ボリンジャーバンドとストキャスティクスは、FXにおいて非常に有用なテクニカル指標で人気です。ボリンジャーバンドの中心線を使ったエントリータイミングは、トレンド...

矢野テックのトレード結果やプログラム使った予測について

パスワードされた記事は、LINEでお友達になってくれた方に公開しています。

また、今ならお友達には矢野テック自作のMT4用のインジケーターをプレゼント中です。

友だち追加

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

仮想通貨botや、MT4のEA開発、インジケーターなどを作ってます。このブログではFXの基礎的な知識から検証のまとめなどを書いていきたいと思ってます。

プログラムや手法のご質問は各記事のコメント欄からお願いします。

なお、トレードの結果などはLINEでお友達になった方に報告してます。ぜひなってください

コメント

コメントする

目次