리소스 로딩... 로딩...

볼링거 대역은 볼륨 필터로 리버션 거래 전략을 의미합니다.

저자:차오장, 날짜: 2024-06-21 18:20:13
태그:BBSMASDVOL

img

전반적인 설명

전략 원칙

  1. 볼링거 밴드 설정:

    • 20일 계산 기간을 사용합니다.
    • 중간 지대는 20일 간편 이동 평균 (SMA) 이다.
    • 상단 및 하단 대역은 중간 대역 위와 아래의 2개의 표준편차입니다.
  2. 거래 신호:

    • 구매 신호: 가격이 볼링거 반도의 하위 위를 넘습니다.
    • 판매 신호: 가격이 상부 볼링거 밴드 아래로 넘어갑니다.
  3. 부피 필터:

    • 선택적 볼륨 필터가 활성화 될 수 있습니다.
    • 거래 신호를 트리거하기 위해 볼륨이 설정된 임계값을 초과해야 합니다 (디폴트 100000)
  4. 거래 실행:

    • 구매 신호로 긴 포지션을 입력합니다
    • 판매 신호로 긴 포지션을 닫고 짧은 포지션을 입력
    • 구매 신호에 따라 짧은 포지션을 닫습니다.
    • 부피 필터가 활성화되면 부피 조건이 충족될 때만 거래가 실행됩니다.

전략적 장점

  1. 평균 회전 원칙: 금융 시장 가격 변동의 평균 회전 성격을 활용하여 수익 확률을 높입니다.

  2. 동적 적응력: 볼링거 밴드는 시장 변동성에 따라 상위 및 하위 밴드 포지션을 자동으로 조정하여 전략이 다른 시장 환경에 적응 할 수 있습니다.

  3. 리스크 제어: 볼링거 밴드의 설정은 거래에 대한 자연스러운 스톱 로스 및 영업 수익 수준을 제공합니다.

  4. 볼륨 확인: 볼륨 필터링을 도입하면 거래 신호의 신뢰성을 높이고 잘못된 브레이크의 위험을 줄입니다.

  5. 양방향 거래: 이 전략은 양방향의 시장 기회를 완전히 활용하여 장과 짧은 포지션을 모두 지원합니다.

  6. 시각화: 차트에 볼린거 밴드 및 거래 신호를 그리는 것은 전략 성과에 대한 직관적 인 이해와 분석을 촉진합니다.

전략 위험

  1. 피 시장 위험: 옆구리, 변동성 시장에서 볼링거 밴드 상하계획의 빈번한 접촉은 연속 손실로 이어질 수 있습니다.

  2. 트렌드 시장 결함: 강한 트렌드 시장에서 전략은 중요한 가격 변동이나 종종 폐쇄 된 포지션을 놓칠 수 있으며 수익을 제한 할 수 있습니다.

  3. 가짜 브레이크 위험: 볼륨 필터링에도 불구하고 잘못된 거래로 이어지는 가짜 브레이크가 발생할 수 있습니다.

  4. 매개 변수 민감성: 전략의 성능은 볼링거 밴드 기간, 곱셈자 및 볼륨 임계 설정에 크게 의존합니다. 부적절한 설정은 과잉 거래 또는 놓친 기회로 이어질 수 있습니다.

  5. 미끄러짐 및 거래 비용: 빈번한 거래는 전체 수익에 영향을 미치는 높은 거래 비용을 초래할 수 있습니다.

전략 최적화 방향

  1. 트렌드 필터링: 강력한 트렌드 시장에서 전략 행동을 조정하기 위해 추가 트렌드 지표 (가동 평균 또는 ADX) 를 도입합니다.

  2. 동적 매개 변수 최적화: 전략 적응력을 향상시키기 위해 시장 변동성에 따라 볼링거 밴드 매개 변수 및 볼륨 임계치를 자동으로 조정합니다.

  3. 스톱 로스 최적화: 더 나은 위험 통제를 위해 후속 스톱 또는 ATR 기반 동적 스톱 로스를 구현합니다.

  4. 신호 확인: 정확성을 높이기 위해 거래 신호의 2차 확인을 위해 다른 기술적 지표 (RSI 또는 MACD와 같이) 를 결합합니다.

  5. 포지션 관리: 자본 관리 및 위험/이익 비율을 최적화하기 위해 부분 수익 및 포지션 확장 논리를 구현합니다.

  6. 시간 필터링: 높은 변동성 또는 낮은 유동성 기간을 피하기 위해 거래 시간 창 제한을 추가합니다.

  7. 백테스팅 및 최적화: 보다 포괄적인 역사 백테스팅을 수행하고 유전 알고리즘과 같은 방법을 사용하여 매개 변수 조합을 최적화하십시오.

결론

볼링거 밴드 평균 반전 거래 전략 (Bollinger Bands Mean Reversation Trading Strategy with Volume Filter) 은 기술적 분석과 통계적 원리를 결합한 양적 거래 시스템이다. 볼링거 밴드 내의 가격 변동과 볼륨 확인을 활용함으로써 이 전략은 단기 시장 반전 기회를 포착하는 것을 목표로 한다. 이 전략은 범위 제한 시장에서 좋은 성과를 거두지만, 강력한 추세와 위험을 관리하는 데는 개선할 여지가 있다. 추가 필터링 조건, 동적 매개 변수 조정 및 보다 정교한 자본 관리 전략을 도입함으로써, 다른 시장 환경에서 안정성과 수익성을 더욱 향상시킬 수 있다. 이 전략을 사용하는 투자자는 그것의 강점과 한계를 완전히 이해하고, 개인적 위험 선호도와 시장 판단에 기초한 적절한 매개 변수 조정 및 위험 통제를 해야 한다.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Mean Regression Strategy", overlay=true)

// Bollinger Bands
length = input(20, title="Bollinger Bands Length")
src = input(close, title="Source")
mult = input(2.0, title="Bollinger Bands Multiplier")

basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// Plotting Bollinger Bands
plot(basis, title="Basis", color=color.blue)
plot(upper, title="Upper Band", color=color.red)
plot(lower, title="Lower Band", color=color.red)

// Trading logic
longCondition = ta.crossover(src, lower)
shortCondition = ta.crossunder(src, upper)

// Plotting signals
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

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

// Volume filter (optional)
useVolumeFilter = input(true, title="Use Volume Filter")
volumeThreshold = input(100000, title="Volume Threshold")

volumeCondition = na(volume) ? na : volume > volumeThreshold

if useVolumeFilter
    longCondition := longCondition and volumeCondition
    shortCondition := shortCondition and volumeCondition

// Final execution with volume filter
if useVolumeFilter
    strategy.entry("Long", strategy.long, when=longCondition)
    strategy.close("Long", when=shortCondition)
    strategy.entry("Short", strategy.short, when=shortCondition)
    strategy.close("Short", when=longCondition)

관련

더 많은