슈퍼트렌드와 볼린거 밴드 조합 전략

저자:차오장, 날짜: 2024-03-29 15:18:22
태그:

img

전반적인 설명

이 전략은 슈퍼트렌드 지표와 볼링거 밴드 지표를 결합하여 시장의 트렌드 기회를 포착합니다. 슈퍼트렌드 지표는 현재 시장 트렌드 방향을 결정하는 데 사용되며 볼링거 밴드 지표는 시장 변동성을 측정하는 데 사용됩니다. 폐쇄 가격이 슈퍼트렌드 라인을 넘어서 하부 볼링거 밴드를 넘었을 때 긴 신호가 생성되며 폐쇄 가격이 슈퍼트렌드 라인을 넘어서 상부 볼링거 밴드를 넘었을 때 짧은 신호가 생성됩니다. 이 전략의 장점은 트렌드가 명확할 때 시기에 시장에 진입 할 수 있다는 것입니다.

전략 원칙

  1. 현재 시장 트렌드 방향을 결정하기 위해 평균 진정한 범위 (ATR) 및 슈퍼 트렌드 지표를 계산하십시오.
  2. 시장 변동성을 측정하기 위해 상부와 하부 볼링거 대역을 계산합니다.
  3. 종료 가격이 슈퍼트렌드 라인을 넘어서 아래 볼링거 밴드를 넘어서면 긴 신호를 생성합니다. 종료 가격이 슈퍼트렌드 라인을 넘어서 상부 볼링거 밴드를 넘어서면 짧은 신호를 생성합니다.
  4. 긴 포지션을 보유할 때, 닫기 가격이 슈퍼트렌드 라인을 넘으면 포지션을 닫습니다. 짧은 포지션을 보유할 때, 닫기 가격이 슈퍼트렌드 라인을 넘으면 포지션을 닫습니다.

전략적 장점

  1. 트렌드와 변동성 차원의 정보를 결합하면 시장 기회를 더 포괄적으로 파악 할 수 있습니다.
  2. 트렌드가 명확할 때 시기에 시장에 진출할 수 있고, 트렌드 시장의 이익을 포착하는 데 도움이 됩니다.
  3. 불안한 시장에서 볼링거 밴드와 슈퍼트렌드의 조합은 잘못된 브레이크오웃 신호를 효과적으로 필터링하여 손실 위험을 줄일 수 있습니다.
  4. 코드 로직은 명확하고 몇 가지 매개 변수가 없으며 이해하기 쉽고 구현하기 쉽습니다.

전략 위험

  1. 일방적인 트렌딩 시장에서 빈번한 브레이크아웃 신호로 인해 과도한 거래 빈도와 거래 비용을 증가시킬 수 있습니다.
  2. 브레이크아웃 포인트의 포착은 매개 변수에 민감한 슈퍼트렌드 지표에 의존하고 있으며, 지표 트렌드는 다른 매개 변수에 따라 크게 달라지며, 이는 전략의 효과에 영향을 줄 수 있습니다.
  3. 볼링거 대역의 폭은 시장 변동성 변화에 따라 변화하며 높은 변동성 환경에서 스톱 로스를 넓힐 수 있습니다.

전략 최적화 방향

  1. 더 효과적인 필터링 조건, 예를 들어 거래량, 시장 정서 등을 도입하여 신호의 신뢰성을 더욱 향상시키는 것을 고려하십시오.
  2. 슈퍼트렌드 지표의 매개 변수에는 최적화 테스트를 수행하여 전략 안정성을 향상시키기 위해 최적의 매개 변수를 선택할 수 있습니다.
  3. 거래 실행의 측면에서 더 자세한 위치 관리 및 위험 통제 조치가 도입될 수 있습니다. 예를 들어, 단 하나의 거래의 위험 노출을 줄이기 위해 트레일링 스톱을 설정하고, 동적으로 위치를 조정하는 등입니다.

요약

슈퍼트렌드 볼링거 밴드 조합 전략은 두 가지 시장 요인: 트렌드 및 변동성을 결합하여 트렌드 기회를 효과적으로 포착할 수 있는 트렌드를 따르는 전략이다. 그러나 이 전략은 파라미터에 민감하고 고 변동성 환경에서 위험을 증가시키는 것과 같은 특정 한계도 있다. 따라서 실제 응용에서는 시장 특성과 자신의 위험 선호도에 따라 전략을 적절히 최적화하고 개선해야합니다.


/*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)

더 많은