이 전략은 슈퍼트렌드 지표와 볼링거 밴드 지표를 결합하여 시장의 트렌드 기회를 포착합니다. 슈퍼트렌드 지표는 현재 시장 트렌드 방향을 결정하는 데 사용되며 볼링거 밴드 지표는 시장 변동성을 측정하는 데 사용됩니다. 폐쇄 가격이 슈퍼트렌드 라인을 넘어서 하부 볼링거 밴드를 넘었을 때 긴 신호가 생성되며 폐쇄 가격이 슈퍼트렌드 라인을 넘어서 상부 볼링거 밴드를 넘었을 때 짧은 신호가 생성됩니다. 이 전략의 장점은 트렌드가 명확할 때 시기에 시장에 진입 할 수 있다는 것입니다.
슈퍼트렌드 볼링거 밴드 조합 전략은 두 가지 시장 요인: 트렌드 및 변동성을 결합하여 트렌드 기회를 효과적으로 포착할 수 있는 트렌드를 따르는 전략이다. 그러나 이 전략은 파라미터에 민감하고 고 변동성 환경에서 위험을 증가시키는 것과 같은 특정 한계도 있다. 따라서 실제 응용에서는 시장 특성과 자신의 위험 선호도에 따라 전략을 적절히 최적화하고 개선해야합니다.
/*backtest start: 2024-03-21 00:00:00 end: 2024-03-28 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © sabhiv27 //@version=4 strategy("Supertrend & Bollinger Bands Strategy", shorttitle="ST_BB_Strategy", overlay=true) // Input options factor = input(3, title="Supertrend Factor") length = input(10, title="ATR Length") bollinger_length = input(20, title="Bollinger Bands Length") bollinger_deviation = input(2, title="Bollinger Bands Deviation") // Calculate True Range for Supertrend truerange = rma(tr, length) // Calculate Supertrend var float up_trend = na var float dn_trend = na var float trend = na up_signal = hl2 - (factor * truerange) dn_signal = hl2 + (factor * truerange) up_trend := close[1] > up_trend[1] ? max(up_signal, up_trend[1]) : up_signal dn_trend := close[1] < dn_trend[1] ? min(dn_signal, dn_trend[1]) : dn_signal trend := close > dn_trend ? 1 : close < up_trend ? -1 : nz(trend[1], 1) // Calculate Bollinger Bands basis = sma(close, bollinger_length) dev = stdev(close, bollinger_length) upper_band = basis + bollinger_deviation * dev lower_band = basis - bollinger_deviation * dev // Entry conditions long_condition = crossover(close, up_trend) and close < lower_band short_condition = crossunder(close, dn_trend) and close > upper_band // Exit conditions exit_long_condition = crossover(close, dn_trend) exit_short_condition = crossunder(close, up_trend) // Plot Supertrend plot(trend == 1 ? up_trend : dn_trend, color=trend == 1 ? color.green : color.red, linewidth=2) // Plot Bollinger Bands plot(upper_band, color=color.blue) plot(lower_band, color=color.blue) // Generate buy and sell signals strategy.entry("Long", strategy.long, when=long_condition) strategy.entry("Short", strategy.short, when=short_condition) strategy.close("Long", when=exit_long_condition) strategy.close("Short", when=exit_short_condition)