ボリンジャーバンドの反転と移動平均トレンドフィルター


作成日: 2023-12-06 17:34:51 最終変更日: 2023-12-06 17:34:51
コピー: 0 クリック数: 704
1
フォロー
1619
フォロワー

ボリンジャーバンドの反転と移動平均トレンドフィルター

概要

この戦略は,ブリン帯と移動平均線を組み合わせ,ブリン帯の上下軌道反転点と移動平均線の方向を入力と終了のシグナルとして使用する.具体的には,価格が上下からブリン帯の下下線を突破し,移動平均線より上にあるとき,多めに行う.価格が上下からブリン帯の上下線を突破し,移動平均線より下にあるとき,平仓する.

戦略原則

この戦略はブリン帯と移動平均の2つの指標に基づいています.

ブリン帯は,上帯,下帯,中帯で構成されている.中帯は,n日の単純移動平均で,上帯は,中帯のk倍標準差である.価格が上下帯に近づくと,過度に買ったり売ったりすることを示す場合,反転が生じることがあります.

移動平均線は,価格の平均トレンドの方向を反映する.短期移動平均線の上に長期移動平均線を横切るときは,価格の動きが下から上へと進むことを示すため,多額を考慮することができる.而,短期移動平均線の下に長期移動平均線を横切るときは,価格の動きが上から下へと進むことを示すため,多額を考慮することができる.

この戦略は,ブリン帯の反転信号と移動平均線のトレンド判断を総合的に考慮する.価格がブリン帯を突破すると,下向きのトレンドが上昇することを保証するために移動平均線が上昇することを要求し,買取信号が生じる.価格がブリン帯を突破すると,下向きのトレンドが低下することを保証するために移動平均線が低下することを要求し,売出信号を生じる.このようにして,反転と同時に大きなトレンドの方向を考慮する.

具体的には以下の通りです.

  1. 価格が下から上昇して ブリン帯の下線を突破し,移動平均より高いとき,さらに多く行う
  2. 価格が上下からブリン帯を突破し,移動平均を下回ったとき,平仓

優位分析

この戦略の主な利点は

  1. 中短期の反転信号と長期の傾向方向を総合的に考慮し,多空双方向操作の必要性に対応
  2. ブリンベルトを利用して,下線への反転性が強く,入場チャンスを得ることができる.
  3. 移動平均のフィルタを追加し,変動時に利回りを避ける
  4. 戦略の論理はシンプルで明快で,容易に理解できる実装で,量化取引に適しています.

リスクと解決

この戦略の主なリスクは

  1. ブリン帯のパラメータ設定が不適切で,上下軌道の突破によって生じる取引信号は頻繁で,簡単にセットされる。パラメータを最適化することで,最適なパラメータ組み合わせを見つけることができる。
  2. 移動平均のパラメータが正しく設定されていない場合,優れた取引機会をフィルターすることができます.他の指標と組み合わせて最適化することを考慮することができます.
  3. 長期にわたる振動が起こり,損失が増加する可能性がある.単一の損失を一定範囲で制御するために,ストップポイントを設定することができます.

戦略の最適化

この戦略は,以下の方向に最適化できます.

  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")