이 전략은 볼링거 밴드를 사용하여 가격 채널을 식별하고 알고리즘 거래를 위해 피보나치 리트레이싱 비율을 기반으로 지원 / 저항 수준을 결정합니다. 볼링거 밴드 브레이크를 감지하고 리트레이싱 수준을 추적하고 높은 확률의 리트레이킹 구역 주위에 긴 / 짧은 포지션을 입력합니다.
볼링거 밴드의 중간, 상부 및 하부 밴드를 계산합니다.
중단역은 SMA이고, 상단/하단역은 SMA +/- ATR의 배수
볼링거 밴드는 시장 변동성에 따라 확장 및 수축
비율을 기반으로 피보나치 리트레이싱 레벨을 계산
리트레이싱 비율은 ATR * 피보나치 비율의 배수입니다.
여러 Fib 레벨은 중간 대역을 기준으로 계산됩니다.
볼링거 밴드 (Bollinger Bands) 의 가격 유출을 모니터링합니다.
가격이 상위 범위를 넘을 때 긴 거리를 고려하십시오.
가격이 하위 범위를 넘어갈 때 짧은 것을 고려하십시오.
트레이드를 시작하고 Fib retracement 영역 주위 SL/TP를 설정합니다.
가격이 Fib 구역으로 다시 끌 때 트레이드를 입력
손해를 멈추고 다른 쪽에서 이익을 취하십시오.
볼링거 밴드는 시장 변동성 범위와 동향을 명확하게 식별합니다.
피보나치 비율은 주요 지지 및 저항 수준을 파악합니다.
지표를 결합하면 알고리즘 거래가 가능합니다.
조정 가능한 매개 변수
볼링거 밴드 브레이크는 잘못된 신호일 수 있습니다.
가격이 언제 Fib 수준으로 다시 돌아갈지 정확히 예측하기 어렵습니다.
잘못된 스톱 로스 투입이 손실을 증가시킬 수 있습니다.
불충분하거나 과도한 인회 규모는 전략에 영향을 미칩니다.
비효율적인 매개 변수 또는 지속적인 트렌드 시장은 전략을 무효화 할 수 있습니다.
볼링거 밴드 논리를 개선하고, 부피, 동적 구역 조정 등을 고려합니다.
더 나은 트렌드 및 S/R 판단을 위해 볼링거 밴드 매개 변수를 최적화
브레이크오웃 신호를 검증하기 위해 볼륨 표시기를 추가합니다.
추락 확률 예측을 위해 기계 학습을 활용합니다.
신호 검증을 위한 더 많은 기술 지표를 포함
제품 특성 및 거래 세션에 기초한 합리적인 매개 변수를 선택
변동성 변화에 따라 적시에 회전 구역 강도를 조정합니다.
이 전략은 볼링거 밴드와 피보나치 리트레이싱의 강점을 결합하여 트렌드를 식별하고 높은 확률의 풀백 수준으로 진입합니다. 위험은 매개 변수 최적화, 추가 신호 검증, 동적 구역 조정 등으로 감소하고 결과를 향상시킬 수 있습니다. 볼륨, 머신 러닝 모델 등을 통합하여 확장 할 여지가 있습니다. 전략은 지속적인 최적화로 더 정교 할 수 있습니다.
/*backtest start: 2023-08-27 00:00:00 end: 2023-09-26 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(shorttitle="BBands Fibo", title="Bollinger Bands Fibonacci Ratios", overlay=true) length = input(20, minval=1, type=input.integer, title="Length") src = input(close, title="Source") offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500) fibo1 = input(defval=1.618, title="Fibonacci Ratio 1") fibo2 = input(defval=2.618, title="Fibonacci Ratio 2") fibo3 = input(defval=4.236, title="Fibonacci Ratio 3") fiboBuyReverse = input(false, title = "Use Reverse Buy?") fiboBuy = input(options = ["Fibo 1", "Fibo 2", "Fibo 3"],defval = "Fibo 1", title="Fibonacci Buy") fiboSellReverse = input(false, title = "Use Reverse Sell?") fiboSell = input(options = ["Fibo 1", "Fibo 2", "Fibo 3"],defval = "Fibo 1", title="Fibonacci Sell") sma = sma(src, length) atr = atr(length) ratio1 = atr * fibo1 ratio2 = atr * fibo2 ratio3 = atr * fibo3 upper3 = sma + ratio3 upper2 = sma + ratio2 upper1 = sma + ratio1 lower1 = sma - ratio1 lower2 = sma - ratio2 lower3 = sma - ratio3 plot(sma, style=0, title="Basis", color=color.orange, linewidth=2, offset = offset) upp3 = plot(upper3, transp=90, title="Upper 3", color=color.teal, offset = offset) upp2 = plot(upper2, transp=60, title="Upper 2", color=color.teal, offset = offset) upp1 = plot(upper1, transp=30, title="Upper 1", color=color.teal, offset = offset) low1 = plot(lower1, transp=30, title="Lower 1", color=color.teal, offset = offset) low2 = plot(lower2, transp=60, title="Lower 2", color=color.teal, offset = offset) low3 = plot(lower3, transp=90, title="Lower 3", color=color.teal, offset = offset) fill(upp3, low3, title = "Background", color=color.new(color.teal, 95)) targetBuy = fiboBuy == "Fibo 1" ? upper1 : fiboBuy == "Fibo 2" ? upper2 : upper3 targetBuy := fiboBuyReverse == false ? targetBuy : fiboBuy == "Fibo 1" ? lower1 : fiboBuy == "Fibo 2" ? lower2 : lower3 buy = low < targetBuy and high > targetBuy targetSell = fiboSell == "Fibo 1" ? lower1 : fiboSell == "Fibo 2" ? lower2 : lower3 targetSell := fiboSellReverse == false ? targetSell : fiboSell == "Fibo 1" ? upper1 : fiboSell == "Fibo 2" ? upper2 : upper3 sell = low < targetSell and high > targetSell strategy.entry("Buy", true, when = buy) strategy.entry("Sell", false, when = sell)