트리플 터치 볼린저 밴드 추세 추종 양적 거래 전략

BB SMA SD CROSS
생성 날짜: 2024-12-11 11:01:52 마지막으로 수정됨: 2024-12-11 11:01:52
복사: 2 클릭수: 351
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

트리플 터치 볼린저 밴드 추세 추종 양적 거래 전략

개요

이 전략은 부린띠 지표에 기반한 개선된 버전의 트렌드 추적 전략이다. 가격과 부린띠의 연속적인 3번의 접촉을 모니터링하여 트렌드의 신뢰성을 확인하여 더 높은 승률 아래에서 거래한다. 전략은 20주기의 이동 평균을 중도 궤도로 사용하고, 2배의 표준 차이는 상하 궤도의 계산 기준으로 사용한다. 가격과 부린띠 경계와의 관계를 심층적으로 분석함으로써 독특한 장점을 가진 거래 시스템을 구현한다.

전략 원칙

이 전략의 핵심 논리는 계수 메커니즘을 통해 가격이 브린 띠 경계에 지속적으로 접촉하는 것을 인식하는 것입니다. 가격이 연속적으로 3번의 경로를 돌파 할 때, 시스템은 여러 신호를 냅니다. 가격이 연속적으로 3번의 경로를 돌파 할 때, 시스템은 빈 신호를 냅니다. 이 메커니즘은 가짜 돌파구를 효과적으로 필터링하여 거래의 신뢰성을 향상시킵니다.

전략적 이점

  1. 높은 신뢰성: 트랜잭션 신호를 확인하기 위해 3번 연속으로 브린 벨트 경계를 만지는 것을 요구함으로써 가짜 침입의 영향을 크게 줄인다.
  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")