볼링거 밴드 및 피보나치 리트레이싱 전략

저자:차오장, 날짜: 2024-03-15 15:46:04
태그:

img

전략 개요

볼링거 밴드 및 피보나치 리트레이싱 전략 (Bollinger Bands and Fibonacci Retracement Strategy) 은 볼링거 밴드 및 피보나치 리트레이싱 수준을 결합한 거래 전략이다. 이 전략은 시장 변동성을 측정하기 위해 볼링거 밴드를 활용하고 상위 또는 하위 밴드 이상의 또는 아래의 가격 브레이크에 기반하여 거래 신호를 생성합니다. 동시에 전략은 잠재적 인 지원 및 저항 수준을 식별하고 거래에 대한 진입 및 출구 지점을 결정하기 위해 피보나치 리트레이싱 수준을 사용합니다.

전략 원칙

이 전략의 핵심은 볼링거 밴드와 피보나치 리트레이싱 레벨의 결합 적용에 있습니다.

볼링거 밴드는 세 가지 라인으로 구성됩니다: 중간 밴드, 상위 밴드, 하위 밴드. 중간 밴드는 가격의 이동 평균이며 상위 및 하위 밴드는 중간 밴드 위에 및 아래에 일정 수의 표준 편차로 배치됩니다. 가격이 상위 밴드 이상으로 넘어가면 잠재적인 과잉 구매 상태를 나타내고 판매 신호를 생성합니다. 반대로 가격이 하위 밴드 아래에 넘어가면 잠재적인 과잉 판매 상태를 나타내고 구매 신호를 생성합니다.

피보나치 리트레이싱 레벨은 피보나치 계열에서 파생된 가격 수준이다. 이러한 레벨은 일반적으로 시장의 주요 지원 및 저항 수준으로 간주됩니다. 가격이 이러한 수준으로 리트레이싱되면 시장은 유행 추세의 반전 또는 계속성을 경험할 수 있습니다.

이 전략의 결정 과정은 다음과 같습니다.

  1. 가격이 아래 볼링거 밴드를 넘으면 구매 신호가 생성되어 긴 포지션을 시작합니다.
  2. 가격이 상부 볼링거 밴드를 넘을 때 판매 신호가 발생하여 짧은 지위가 시작됩니다.
  3. 피보나치 리트레이스먼트 레벨은 진입점, 출구점, 스톱 로스 레벨, 거래 목표 수준을 결정하는 데 사용됩니다.

볼링거 밴드와 피보나치 리트레이싱 레벨을 결합함으로써 이 전략은 시장 변동성이 증가하는 기간 동안 거래 기회를 포착하고 피보나치 레벨을 사용하여 거래 위험과 목표를 관리하는 것을 목표로합니다.

전략적 장점

  1. 트렌드 및 변동성 지표의 통합: 볼링거 밴드와 피보나치 리트레이싱 레벨의 조합은 전략이 시장 트렌드와 변동성을 모두 고려하여 거래 신호의 신뢰성을 향상시킵니다.
  2. 명확한 출입 및 출입 규칙: 전략은 잘 정의된 거래 신호와 출입/출출 규칙을 제공하여 거래자가 신속한 의사결정을 할 수 있도록합니다.
  3. 리스크 관리: 피보나치 리트레이싱 레벨은 트레이드를 위한 명확한 스톱 로스 및 타겟 레벨을 제공하며 리스크 통제에 도움이 됩니다.
  4. 적응력: 전략은 다양한 시장과 시간 프레임에 적용될 수 있으며, 강력한 적응력을 보여줍니다.

전략 위험

  1. 시장 소음: 볼링거 밴드는 가격 변동에 민감하며 시장 소음이 높은 기간 동안 잘못된 신호를 생성 할 수 있습니다.
  2. 트렌드 식별: 전략은 주로 변동성 지표에 의존하고 있으며 시장 트렌드를 식별하는 능력이 제한될 수 있으며, 강력한 트렌드 시장에서 잠재적으로 낮은 성과를 낼 수 있습니다.
  3. 매개 변수 최적화: 전략의 성능은 볼링거 밴드 및 피보나치 리트레이싱 레벨의 매개 변수 설정에 민감합니다. 부적절한 매개 변수는 최적의 전략 성능이 떨어질 수 있습니다.
  4. 변화하는 시장 조건: 전략은 특정 시장 조건에서 잘 수행 할 수 있지만 시장 역동성이 변하면 적응하지 못할 수 있습니다.

최적화 방향

  1. 다른 기술 지표와의 통합: 거래 신호의 신뢰성을 높이기 위해 볼링거 밴드 및 피보나치 리트레이싱 레벨을 트렌드 지표 또는 모멘텀 지표와 같은 다른 기술 지표와 결합하는 것을 고려하십시오.
  2. 매개 변수 최적화: 기간 및 표준편차 곱셈자, 그리고 피보나치 리트레이싱 레벨을 포함한 볼링거 밴드의 매개 변수를 최적화하여 다른 시장 환경에 더 적합합니다.
  3. 스톱 로스 및 취리 전략의 통합: 더 고급 스톱 로스 및 취리 전략, 예를 들어 트레일링 스톱 또는 동적 이윤 목표 등을 도입하여 위험을 더 잘 관리하고 이윤을 확보하십시오.
  4. 시장 트렌드를 고려: 전략에 시장 트렌드 분석을 통합하고, 강한 트렌드 중에 트렌드를 따르는 접근 방식을 채택하고 측면 시장에서 범위 제한 전략을 사용하여 전략의 적응력을 향상시킵니다.

결론

볼링거 밴드 및 피보나치 리트랙먼트 전략 (Bollinger Bands and Fibonacci Retracement Strategy) 은 볼링거 밴드 및 피보나치 리트랙먼트 수준을 결합하여 시장 변동성이 증가하는 기간 동안 거래 기회를 포착하고 피보나치 수준을 사용하여 위험을 관리합니다. 이 전략은 명확한 거래 규칙을 제공하고 좋은 적응력을 보여줍니다. 그러나 시장 소음, 트렌드 식별 과제, 매개 변수 최적화 및 변화하는 시장 조건과 같은 위험에 직면합니다. 전략의 성능을 더욱 향상시키기 위해 다른 기술적 지표를 통합하고 매개 변수를 최적화하고 더 고급 스톱 로스 및 영리 메커니즘을 도입하고 시장 트렌드 분석을 통합하는 데 고려 할 수 있습니다. 전반적으로 볼링거 밴드 및 피보나치 리트랙먼트 전략은 거래자에게 변동성 기반 및 지원 / 저항 기반 접근 방식을 제공하지만 특정 시장 조건에 따라 신중한 조정 및 최적화를 요구합니다.


/*backtest
start: 2024-02-13 00:00:00
end: 2024-03-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

// Bollinger Bands Parameters
source = close
length = input.int(20, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)

// Fibonacci Levels
fib_levels = input.bool(true, "Use Fibonacci Levels")
fib_level1 = input.float(0.236, title="Fib Level 1", minval=0.001, maxval=1)
fib_level2 = input.float(0.382, title="Fib Level 2", minval=0.001, maxval=1)
fib_level3 = input.float(0.618, title="Fib Level 3", minval=0.001, maxval=1)

// Strategy Entry
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev

if (ta.crossover(source, lower))
    strategy.entry("BBandLE", strategy.long, comment="BBandLE")
else
    strategy.cancel(id="BBandLE")

if (ta.crossunder(source, upper))
    strategy.entry("BBandSE", strategy.short, comment="BBandSE")
else
    strategy.cancel(id="BBandSE")

// Calculate Fibonacci Levels
// fib_low = ta.lowest(low, length)
// fib_high = ta.highest(high, length)
// fib_range = fib_high - fib_low

// fib_level1_price = fib_high - fib_range * fib_level1
// fib_level2_price = fib_high - fib_range * fib_level2
// fib_level3_price = fib_high - fib_range * fib_level3

// // Plot Fibonacci Levels
// var line fib_level1_line = na
// var line fib_level2_line = na
// var line fib_level3_line = na

// if fib_levels
//     if bar_index > length
//         fib_level1_line := line.new(bar_index[length], fib_level1_price, bar_index, fib_level1_price, color=color.blue)
//         fib_level2_line := line.new(bar_index[length], fib_level2_price, bar_index, fib_level2_price, color=color.green)
//         fib_level3_line := line.new(bar_index[length], fib_level3_price, bar_index, fib_level3_price, color=color.orange)

//     if bar_index <= length
//         // line.delete(fib_level1_line)
//         // line.delete(fib_level2_line)
//         // line.delete(fib_level3_line)


더 많은