ボリンジャー・バンドと移動平均を組み合わせる戦略

作者: リン・ハーンチャオチャン,日付: 2024-02-02 17時47分12秒
タグ:

img

概要

この戦略は,ボリンジャーバンドと移動平均を組み合わせ,ボリンジャーバンドの上帯と下帯を使用して価格ブレイクを決定し,トレンドを決定するために高速移動平均金十字とゆっくり移動平均のデスクロスを使用します.価格がボリンジャー上帯を超越し,高速移動平均がスロー移動平均を超越したとき,長行します.価格がボリンジャー下帯を下回り,高速移動平均がスロー移動平均を下回ると短行します.このようなダブル確認を使用して,誤ったブレイクを効果的にフィルターすることができます.

戦略原則

この戦略は主に2つの技術指標,ボリンジャー帯 (Bollinger Bands) を用いて価格レベルを決定し,移動平均 (Moving Averages) を用いてトレンドを決定します.

ボリンガー中間帯は価格の単純な移動平均線で,上帯は中間帯+2標準偏差,下帯は中間帯−2標準偏差である.価格が上帯に近づくと,過剰購入状態を示す.価格が下帯に近づくと,過剰販売状態を示す.

急速移動平均は価格の50期間の単純な移動平均であり,スロー移動平均は200期間の単純な移動平均である.速いMAがスローMAを超えると,上昇傾向または"黄金十字"を示す.速いMAがスローMAを下回ると,下落傾向または"死十字"を示す.

入力信号は,両方の条件を同時に満たす必要があります.ボリンジャー上帯以上の価格ブレイクはレジスタンスレベルを突破することを示し,スローMAを超える高速MAクロスは上向きを示します.ボリンジャー下帯以下の価格ブレイクはサポートレベルを突破することを示し,スローMA以下の高速MAクロスは下向きを示します.この二重確認は,誤ったブレイクの影響を効果的にフィルターすることができます.

利点

  1. ダブル確認を使うと 誤った情報を効果的にフィルタリングし 記録をより正確にすることができます

  2. ボリンジャー・バンドは サポートとレジスタンスレベルを視覚的に決定し 移動平均は 傾向を信頼的に決定し 組み合わせは互いを補完します

  3. ボリンジャー期,標準偏差倍数,MA期などパラメータの高い最適化柔軟性. より多くの市場環境に適しています.

  4. 簡単に実行し,簡単に理解し,コードが少なく,ライブ取引で直接使用できます.

リスク

  1. Bollinger Bands と MAs の両方が失敗する場合もあるし,双重確認も失敗し,誤ったエントリが発生する場合もある.

  2. MAが遅れて発行される場合,入場タイミングが不正確になり,機会が失われる可能性があります.

  3. BB期間が短すぎたり,MA期間が一致しないなど,パラメータの設定が不十分である場合,戦略の業績が損なわれる可能性があります.

  4. 突破戦略は 偽の突破効果に 傾向がある

パラメータのダイナミックな調整,ストップ・ロスの厳格な調整,他の指標との組み合わせなどの方法がリスクを減らすのに役立ちます

オプティマイゼーションの方向性

  1. 状態チェックのための他の指標を導入します.例えば,BBブレイクでボリューム増幅,トレンド決定のためのMACD,複数の確認を形成します.

  2. 入力のタイミングを助けるためにキャンドルスタイクパターンを組み込む.例えば,BB上部タッチで形成されたハンマー.

  3. 動的MAsを静的MAsの代わりに採用し,傾向決定をさらに改善する.

  4. パラメータの自動最適化を設定し,過去バックテストで最適なパラメータセットを見つけます.

  5. ポジションのサイズとストップ・ロスのレベルを調整し ストップ・ロスを厳格に設定して 損失を制御します

結論

この戦略は,技術指標に基づいてボリンジャーバンドと移動平均を組み合わせ,ボリンジャーバンド上または下帯の価格ブレイクとMAのゴールデン/デスクロスの両方が満たされた場合にのみポジションに入ります.これは,ボリンジャーバンドの直感的なサポート/レジスタンス識別と移動平均の信頼性の高いトレンド決定を活用して互いを補完し,偽ブレイクを効果的にフィルターします.一般的に,これは実践的な戦略であり,実装が簡単で,ライブ取引で適用し最適化する価値があります.


/*backtest
start: 2024-01-25 00:00:00
end: 2024-02-01 00:00:00
period: 2m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Bollinger Bands and Moving Averages Strategy", overlay=true)

// Bollinger Bands
length = input(20, minval=1, title="BB Length")
mult = input(2.0, minval=0.1, maxval=5, title="BB Standard Deviation")
src = close
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev

// Moving Averages
ma1_length = input(50, minval=1, title="MA1 Length")
ma2_length = input(200, minval=1, title="MA2 Length")
ma1 = sma(src, ma1_length)
ma2 = sma(src, ma2_length)

// Strategy Conditions
longCondition = crossover(src, upper) and crossover(ma1, ma2)
shortCondition = crossunder(src, lower) and crossunder(ma1, ma2)

// Strategy Execution
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.close("Long", when=shortCondition)
strategy.close("Short", when=longCondition)

// Plotting
plot(basis, color=color.blue, title="Basis")
plot(upper, color=color.red, title="Upper")
plot(lower, color=color.green, title="Lower")
plot(ma1, color=color.orange, title="MA1")
plot(ma2, color=color.purple, title="MA2")


もっと