이 전략은 볼링거 밴드 (Bollinger Bands) 와 피보나치 리트레이스먼트 (Fibonacci retracement) 인디케이터를 결합하여 멀티 인디케이터 접근 방식을 제공합니다. 전형적인 결합된 인디케이터 전략 유형에 속합니다. 볼링거 밴드는 트렌드 방향을 결정하고 피보나치 레벨은 거래 신호를 생성하기위한 주요 지원 및 저항 구역을 식별합니다.
이 전략은 두 가지 주요 지표에 기반합니다.
볼링거 밴드
상단, 중단 및 하단 밴드를 계산합니다. 하단 밴드 위의 가격 파업은 긴 신호이며 상단 밴드 아래로 파업하는 것은 짧은 신호입니다.
피보나치 리트레이싱
0% 및 100% 리트레이싱 레벨을 계산합니다. 역사적인 최고와 최저를 기반으로 합니다. 이들은 주요 지원 및 저항 레벨로 작용합니다.
구체적인 거래 논리는 다음과 같습니다.
긴 신호: 가격이 상단 범위를 넘어서 0% 피보나치 지지율을 넘습니다.
짧은 신호: 가격이 하위 범위를 넘어 100% 피보나치 저항보다 낮습니다.
출구는 중간에 위치하고 있습니다.
위험은 다음과 같이 감소 할 수 있습니다.
이 전략은 다음과 같이 개선될 수 있습니다.
볼링거 밴드 매개 변수 최적화
상부/하부 대역에 최적의 비율을 찾는 것
피보나치 리트랙시 기간 최적화
리트레이싱을 위해 다른 룩백 기간을 테스트합니다
입국 조건 완화
밴드 브레이크에서 촛불 패턴을 관찰
출구 개선
후속 중지 메커니즘을 고려
제품별 매개 변수 테스트
매개 변수는 다른 제품에 맞춰야 합니다.
이 전략은 높은 품질의 신호를 위해 볼링거 밴드 및 피보나치 리트레이싱의 강점을 결합합니다. 그러나 어려운 매개 변수 최적화와 같은 도전이 있습니다. 매개 변수 조정, 입시 기준을 느슨하게하고, 출구 등을 향상시켜 전략을 정제 할 수 있습니다.
/*backtest start: 2023-09-13 00:00:00 end: 2023-09-20 00:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands & Fibonacci Strategy", shorttitle="BB & Fib Strategy", overlay=true) // Initialize position variables var bool long_position = false var bool short_position = false // Bollinger Bands settings length = input.int(20, title="Bollinger Bands Length") src = input(close, title="Source") mult = input.float(2.0, title="Standard Deviation Multiplier") basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper_band = basis + dev lower_band = basis - dev // Fibonacci retracement levels fib_0 = input.float(0.0, title="Fibonacci 0% Level", minval=-100, maxval=100) / 100 fib_100 = input.float(1.0, title="Fibonacci 100% Level", minval=-100, maxval=100) / 100 // Plotting Bollinger Bands plot(upper_band, color=color.red, title="Upper Bollinger Band") plot(lower_band, color=color.green, title="Lower Bollinger Band") // Calculate Fibonacci levels fib_range = ta.highest(high, 50) - ta.lowest(low, 50) fib_high = ta.highest(high, 50) - fib_range * fib_0 fib_low = ta.lowest(low, 50) + fib_range * fib_100 // Plot Fibonacci retracement levels plot(fib_high, color=color.blue, title="Fibonacci High") plot(fib_low, color=color.orange, title="Fibonacci Low") // Entry conditions long_condition = ta.crossover(close, upper_band) and low > fib_low short_condition = ta.crossunder(close, lower_band) and high < fib_high // Plot arrows on the chart plotshape(series=long_condition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(series=short_condition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) // Entry and exit logic if long_condition and not short_position strategy.entry("Long", strategy.long) long_position := true short_position := false if short_condition and not long_position strategy.entry("Short", strategy.short) short_position := true long_position := false // Exit conditions (you can customize these) long_exit_condition = ta.crossunder(close, basis) short_exit_condition = ta.crossover(close, basis) if long_exit_condition strategy.close("Long") long_position := false if short_exit_condition strategy.close("Short") short_position := false