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


생성 날짜: 2024-03-29 15:18:22 마지막으로 수정됨: 2024-03-29 15:18:22
복사: 14 클릭수: 1094
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

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

개요

이 전략은 슈퍼 트렌드 지표와 부린 밴드 지표를 결합하여 시장의 트렌드 기회를 잡기 위해 고안되었습니다. 슈퍼 트렌드 지표는 현재 시장의 트렌드 방향을 판단하는 데 사용되며, 부린 밴드 지표는 시장의 변동률을 측정합니다.

전략 원칙

  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)