MA トレンドフィルターによるボリンジャー・バンド逆転

作者: リン・ハーンチャオチャン, 日付: 2023-12-06 17:34:51
タグ:

img

概要

この戦略は,ボリンガーバンドと移動平均を組み合わせ,ボリンガーバンドの逆転点と移動平均の方向をエントリーと出口信号として使用する.特に,価格がボリンガーバンドの下部レールを上向きに突破し,移動平均よりも高くなった場合,ロング;価格がボリンガーバンド上部レールを下向きに突破し,移動平均を下向きに突破した場合は,閉店.

戦略原則

この戦略は主に2つの指標,ボリンジャーバンドと移動平均値に基づいています.

ボリンガー帯には上帯,下帯,中帯が含まれます.中帯はn日間の単純な移動平均線で,上帯と下帯は中帯から上下を標準偏差のk倍です.価格が上下帯に近づくと,過買いまたは過売りを示し,逆転を引き起こす可能性があります.

移動平均は,価格の平均動向方向を反映する.短期移動平均が長期移動平均を上回ると,価格傾向が上昇していることを示し,長期移動平均を下回ると,価格傾向が低下していることを示し,短期移動傾向が考慮される.

この戦略は,ボリンジャーバンドからの逆転信号と移動平均からのトレンド判断の両方を考慮する.価格がボリンジャーバンドの下部帯を突破すると購入信号を生成し,また上昇する主要なトレンドを確保するために移動平均が上向きに上昇することを要求する.価格がボリンジャーバンド上部帯を突破すると販売信号を生成し,また移動平均が下向きの主要なトレンドを確保するために下向きに下がることを要求する.したがって,逆転を捕捉する際に主要なトレンド方向を検討することを実現する.

具体的な操作規則は次のとおりです.

  1. 価格がボリンジャー帯の下帯を突破し 移動平均値より高くなったら ロングです
  2. 価格がボリンジャー帯の上部帯を突破して 移動平均値を下回ると 閉店します

利点分析

この戦略の主な利点は以下の通りである.

  1. 中期的な逆転信号と長期的傾向の方向の両方を考慮し,双方向操作のニーズを満たす.
  2. ボリンジャー・バンドの強い逆転性を利用して 上下線を走る.
  3. 横向市場でのフラッシュを避けるために移動平均フィルターを追加します.
  4. 戦略の論理は単純で明快で,理解し実行しやすく,定量取引に適しています.

リスク と 解決策

この戦略の主なリスクは以下のとおりです.

  1. ボリンジャー帯のパラメータ設定が不適切である場合,上下帯のブレイクが頻繁に発生し,簡単にブレイクが起こり,最適な組み合わせを見つけるためにパラメータを最適化することができる.
  2. 移動平均のパラメータ設定が不適切である場合,いくつかの良い取引機会をフィルタリングすることがあります.他の指標を最適化するために組み合わせることを考慮することができます.
  3. 市場では,長期的横向 konsolidiation が起こり,損失が拡大する.特定の範囲内で個々の損失を制限するためにストップ・ロスを設定することができます.

戦略の最適化

この戦略で最適化できる主な側面は:

  1. 取引シグナルを生産するための最適なパラメータ組み合わせを見つけるためにボリンジャー帯のパラメータを最適化します.
  2. 最適なマッチを見つけるために 移動平均のパラメータの種類と長さを試してください
  3. 戦略のパフォーマンスを改善するために,ボリューム,RSIなど他の指標からの判断を追加します.
  4. 市場の変動範囲に応じてストップ・ロスのポイントを設定する ダイナミックなストップ・ロスのメカニズムを構築する.
  5. 最適な適応性を見つけるため,異なる製品でパラメータ設定をテストする.

概要

この戦略は,ボリンジャーバンドからの逆転信号と移動平均からのトレンド判断の両方を考慮し,逆転効果を保証しながら,全体的なトレンド判断に対する局所的なショックの影響を制御する.信号と原則はシンプルで明確で,理解し実行しやすい.より良いパフォーマンスのために最適化するための複数の方法があり,定量取引に適した効率的な戦略です.


/*backtest
start: 2023-11-05 00:00:00
end: 2023-12-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands Rejection with MA Trend Filter", overlay=true)

// Bollinger Bands Settings
length = input(20, title="Bollinger Bands Length")
src = input(close, title="Source")
mult = input(2.0, title="Standard Deviation")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)

// Calculate Bollinger Bands
upper_band = basis + dev
lower_band = basis - dev

// MA Settings
ma_length = input(50, title="MA Length")
ma_src = input(close, title="MA Source")
ma = ta.sma(ma_src, ma_length)

// Buy Condition
buy_condition = ta.crossover(close, lower_band) and ta.crossover(close, ma)

// Sell Condition
sell_condition = ta.crossunder(close, upper_band) and ta.crossunder(close, ma)

if buy_condition
    strategy.entry("Buy", strategy.long)
    
if sell_condition
    strategy.close("Buy")

plot(upper_band, color=color.red, title="Upper Bollinger Band")
plot(lower_band, color=color.green, title="Lower Bollinger Band")
plot(ma, color=color.blue, title="50-period MA")


もっと