볼린저 밴드와 피보나치 일중 추세 추종 전략

BB FIB SMA SD TP SL
생성 날짜: 2025-01-10 16:29:16 마지막으로 수정됨: 2025-01-10 16:29:16
복사: 3 클릭수: 438
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

볼린저 밴드와 피보나치 일중 추세 추종 전략

개요

이 전략은 볼린저 밴드와 피보나치 수정 수준을 결합한 데이 트레이딩 시스템입니다. 볼린저 밴드 지표를 사용하여 매수 과다 및 매도 과다 조건을 파악하고, 피보나치 수정 수준을 사용하여 잠재적인 지지 및 저항 수준을 확인하여 시장 변동 속에서 거래 기회를 포착합니다. 이 전략은 신호 생성을 위해 20주기 볼린저 밴드와 0.236, 0.382, 0.618의 세 가지 주요 피보나치 레벨을 사용합니다.

전략 원칙

전략의 핵심 논리는 다음과 같은 핵심 요소에 기초합니다.

  1. 상단 및 하단 Bollinger Bands(표준 편차는 2)를 사용하여 가격의 매수 과다 및 매도 과다 영역을 표시합니다.
  2. 지난 20개 기간의 최고가와 최저가를 사용하여 피보나치 수정 수준을 계산합니다.
  3. 가격이 하단 Bollinger Band와 Fibonacci 0.236 또는 0.382 지원 수준을 돌파하면 매수 신호가 생성됩니다.
  4. 가격이 볼린저 밴드 상단을 돌파하고 피보나치 0.618 저항 수준 아래로 떨어질 때 매도 신호가 생성됩니다.
  5. 고정된 손절매 및 이익 실현 지점을 사용하여 위험을 통제하고 이익을 확보하세요.

전략적 이점

  1. 트렌드와 지지, 저항의 이중 확인 메커니즘과 결합하여 거래 신호의 신뢰성이 향상됩니다.
  2. Bollinger Bands는 시장 변동성의 변화에 ​​동적으로 적응할 수 있으므로 전략이 매우 적응 가능합니다.
  3. 피보나치 수준은 진입 및 종료에 대한 명확한 참조 프레임을 제공합니다.
  4. 고정된 손절매 및 이익 실현 설정은 위험을 엄격하게 통제하는 데 도움이 됩니다.
  5. 전략 매개변수는 다양한 시장 상황에 따라 유연하게 조정 가능합니다.

전략적 위험

  1. 변동성이 큰 시장에서는 빈번하게 잘못된 돌파 신호가 발생할 수 있습니다.
  2. 고정된 손절매 및 이익 실현 설정은 모든 시장 상황에 적합하지 않을 수 있습니다.
  3. 피보나치 수준의 효율성은 시장 구조에 따라 크게 영향을 받습니다.
  4. 빠르게 추세가 움직이는 시장에서는 일부 시장 움직임을 놓칠 수 있습니다.
  5. 시장 변화에 적응하기 위해 매개변수를 지속적으로 모니터링하고 조정해야 합니다.

전략 최적화 방향

  1. 브레이크아웃의 유효성을 확인하기 위한 볼륨 지표 소개
  2. 시장 변동성에 따라 손절매 수준과 이익 실현 수준을 동적으로 조정합니다.
  3. 횡보 시장에서의 거래를 피하기 위해 트렌드 필터 추가
  4. 피보나치 레벨의 계산 주기 최적화
  5. 유동성이 낮은 기간 동안 거래를 피하기 위해 시간 필터를 추가하는 것을 고려하세요.

요약하다

이는 기술적 분석의 고전적 도구를 결합한 완전한 거래 시스템으로, 볼린저 밴드와 피보나치 수정의 시너지 효과를 통해 거래자에게 체계적인 거래 프레임워크를 제공합니다. 몇 가지 한계는 있지만, 이 전략은 적절한 매개변수 최적화와 위험 관리를 통해 당일 거래에서도 효과적일 수 있습니다. 핵심은 특정 거래 상품과 시장 상황에 따라 적절한 조정과 최적화를 하는 것입니다.

전략 소스 코드
/*backtest
start: 2025-01-02 00:00:00
end: 2025-01-09 00:00:00
period: 10m
basePeriod: 10m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=5
strategy("Bollinger Bands and Fibonacci Intraday Strategy", overlay=true)

// Bollinger Bands settings
length = input.int(20, title="Bollinger Band Length")
src = close
mult = input.float(2.0, title="Bollinger Band Multiplier")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// Fibonacci retracement levels
fibRetrace1 = input.float(0.236, title="Fibonacci Level 0.236")
fibRetrace2 = input.float(0.382, title="Fibonacci Level 0.382")
fibRetrace3 = input.float(0.618, title="Fibonacci Level 0.618")

// Define the Fibonacci levels based on recent high and low
var float fibLow = na
var float fibHigh = na

if (bar_index == 0 or ta.highest(high, 20) != fibHigh or ta.lowest(low, 20) != fibLow)
    fibHigh := ta.highest(high, 20)
    fibLow := ta.lowest(low, 20)

fibLevel1 = fibLow + (fibHigh - fibLow) * fibRetrace1
fibLevel2 = fibLow + (fibHigh - fibLow) * fibRetrace2
fibLevel3 = fibLow + (fibHigh - fibLow) * fibRetrace3

// Plot Fibonacci levels on the chart
plot(fibLevel1, title="Fib 0.236", color=color.blue, linewidth=1)
plot(fibLevel2, title="Fib 0.382", color=color.green, linewidth=1)
plot(fibLevel3, title="Fib 0.618", color=color.red, linewidth=1)

// Buy and Sell conditions
buyCondition = close < lower and close > fibLevel1
sellCondition = close > upper and close < fibLevel3

// Plot Buy and Sell signals
plotshape(buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Execute strategy
if (buyCondition)
    strategy.entry("Buy", strategy.long)

if (sellCondition)
    strategy.entry("Sell", strategy.short)

// Exit strategy with stop loss and take profit
stopLoss = input.float(50, title="Stop Loss (pips)", minval=1)
takeProfit = input.float(100, title="Take Profit (pips)", minval=1)

strategy.exit("Exit Buy", "Buy", stop=close - stopLoss * syminfo.mintick, limit=close + takeProfit * syminfo.mintick)
strategy.exit("Exit Sell", "Sell", stop=close + stopLoss * syminfo.mintick, limit=close - takeProfit * syminfo.mintick)