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

트리플 볼링거 밴드는 양적 거래 전략에 따라 트렌드를 감지합니다.

저자:차오장, 날짜: 2024-12-11 11:01:52
태그:BBSMASD크로스

img

전반적인 설명

이 전략은 전통적인 볼링거 밴드 트렌드 추적 시스템의 개선된 버전이다. 트렌드 신뢰성을 확인하기 위해 볼링거 밴드의 3 개의 연속적인 접촉을 통해 가격 행동을 모니터링하여 높은 승률을 얻는다. 전략은 20 기간 이동 평균을 중간 밴드와 상부 및 하부 밴드 2 개의 표준 편차를 사용합니다. 밴드 경계와의 가격 관계에 대한 상세한 분석을 통해 독특한 장점을 가진 거래 시스템을 달성합니다.

전략 원칙

핵심 논리는 볼링거 밴드 경계의 지속적인 가격 접촉을 식별하기 위한 카운팅 메커니즘에 의존한다. 이 시스템은 가격이 3회 연속 하위 밴드 아래로 넘어갈 때 긴 신호를 생성하고, 가격이 3회 연속 상위 밴드 위로 넘어갈 때 짧은 신호를 생성한다. 이 메커니즘은 가짜 브레이크오프를 효과적으로 필터링하여 거래 신뢰성을 향상시킨다. 이 전략은 중간 밴드 (20 기간 이동 평균) 을 출구 신호로 사용하고, 가격이 중간 밴드로 돌아오는 경우 거래를 완료한다. 이 디자인은 트렌드 포착과 적시에 수익을 얻는 것을 모두 보장한다.

전략적 장점

  1. 높은 신뢰성: 거래 신호를 확인하기 위해 밴드 경계를 세 번 연속적으로 만지는 것이 잘못된 파업의 영향을 크게 줄입니다.
  2. 리스크 제어: 이동 평균을 출구점으로 사용하면 트렌드가 역전될 때 신속한 스톱 로스를 가능하게 합니다.
  3. 강력한 적응력: 전략 매개 변수를 다른 시장 조건에 맞게 조정할 수 있으며, 좋은 보편성을 제공합니다.
  4. 적당한 거래 빈도: 엄격한 입시 조건으로 과잉 거래가 방지됩니다.
  5. 합리적인 자금 관리: 계좌 자금 비율에 기반한 포지션 사이징은 통제된 위험을 보장합니다.

전략 위험

  1. 시장 위험 범위: 옆 시장에서 빈번한 잘못된 신호를 생성할 수 있습니다.
  2. 회전 위험: 변동성 있는 시장 조건에서 상당한 회전 손실의 가능성이 있습니다.
  3. 매개 변수 민감도: 전략 성능은 볼링거 밴드 매개 변수 설정에 크게 의존합니다.
  4. 트렌드 역전 위험: 급격한 트렌드 역전 시 상당한 손실을 입을 수 있습니다.

전략 최적화 방향

  1. 부피 지표를 포함합니다. 부피 분석을 결합하면 신호 신뢰성을 향상시킬 수 있습니다.
  2. 동적 매개 변수 조정: 시장 변동성에 따라 볼링거 밴드 매개 변수를 조정합니다.
  3. 트렌드 확인 지표 추가: 트렌드 방향을 확인하기 위해 추가 기술 지표를 포함합니다.
  4. 스톱 로스 메커니즘을 최적화: 다른 시장 환경에 더 유연한 스톱 로스 접근 방식을 설계하십시오.
  5. 위치 관리 강화: 신호 강도에 따라 위치 크기를 동적으로 조정합니다.

요약

이 전략은 매우 신뢰할 수 있는 트렌드 추적 접근 방식을 구현함으로써 전통적인 볼링거 밴드 거래 시스템보다 향상됩니다. 독특한 트리플 터치 확인 메커니즘은 승률을 효과적으로 증가시킵니다. 이동 평균 기반 출구 메커니즘은 합리적인 수익 취득 솔루션을 제공합니다. 내재된 위험이 있지만 제안된 최적화 방향은 전략 안정성과 수익성을 더욱 향상시킬 수 있습니다.


/*backtest
start: 2024-11-10 00:00:00
end: 2024-12-09 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Bollinger Bands Strategy - 3 Crossings", overlay=true)

// Input Parameters
length = input.int(20, title="Bollinger Bands Length", minval=1)
src = input(close, title="Source")
mult = input.float(2.0, title="Multiplier", step=0.1)

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

// Plot Bollinger Bands
plotBasis = plot(basis, color=color.blue, title="Basis")
plotUpper = plot(upper, color=color.red, title="Upper Band")
plotLower = plot(lower, color=color.green, title="Lower Band")
fill(plot1=plotUpper, plot2=plotLower, color=color.new(color.blue, 90), title="Band Fill")

// Counter Variables
var int longCrossCount = 0
var int shortCrossCount = 0

// Detect Crossings
longCondition = close < lower  // Price closes below the lower band
shortCondition = close > upper  // Price closes above the upper band

if longCondition
    longCrossCount += 1  // Increment the counter for long
    shortCrossCount := 0  // Reset the short counter

if shortCondition
    shortCrossCount += 1  // Increment the counter for short
    longCrossCount := 0  // Reset the long counter

if not longCondition and not shortCondition
    longCrossCount := 0  // Reset if no crossing
    shortCrossCount := 0

// Entry and Exit Rules
if longCrossCount >= 3 and strategy.position_size <= 0
    strategy.entry("Long", strategy.long)
    longCrossCount := 0  // Reset the counter after entering

if shortCrossCount >= 3 and strategy.position_size >= 0
    strategy.entry("Short", strategy.short)
    shortCrossCount := 0  // Reset the counter after entering

// Exit Condition (When Price Returns to the Middle Band)
exitCondition = ta.crossover(src, basis) or ta.crossunder(src, basis)

if exitCondition and strategy.position_size > 0
    strategy.close("Long")
if exitCondition and strategy.position_size < 0
    strategy.close("Short")


관련

더 많은