다층 피보나치 수정 ATR 적응형 손절매 전략

斐波那契回调 ATR EMA 黄金交叉 死亡交叉 TP/SL Fibonacci Retracement Average True Range GOLDEN CROSS DEATH CROSS
생성 날짜: 2025-05-13 17:14:41 마지막으로 수정됨: 2025-05-13 17:14:41
복사: 0 클릭수: 384
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

다층 피보나치 수정 ATR 적응형 손절매 전략 다층 피보나치 수정 ATR 적응형 손절매 전략

개요

다단계 피보나치 리턴 ATR 자율적 중지 전략은 피보나치 리턴 레벨과 기술 지표가 결합된 수치화 거래 전략이다. 이 전략은 피보나치 리턴 레벨 ((0%), 23.6%, 38.2%, 50%, 61.8%, 78.6%, 100%) 과 확장 레벨 ((161.8%, 261.8%, 423.6%) 을 사용하여 시장의 가능한 지지 및 저항 위치를 결정한다. 전략은 동시에 ATR 기반의 동적 중지 손실, 고정 백분율 중지, 그리고 골드 크로스 데드/크로스 크로스 지표가 보조 참조로 통합된다. 또한 전략은 주당 수익 상위 제한과 거래 간격 제한을 포함하여 자본 관리 및 과도한 거래 위험을 최적화한다.

전략 원칙

이 전략의 핵심 논리는 특정 피보나치 수평 범위의 가격 위치에 따라 입문 신호를 결정하는 것입니다.

  1. 피보나치 수평 계산: 지난 100개의 K 라인의 최고 가격과 최저 가격을 기반으로 여러 피보나치 리콜 레벨을 자동으로 계산한다.

  2. 거래 신호 생성

    • 구매 신호: 38.2%와 78.6%의 피보나치 레벨 사이
    • 판매 신호: 23.6%와 61.8%의 피보나치 레벨 사이
    • 두 종류의 신호는 최소 거래 간격으로 제한되어 있으며, 이는 빈번한 거래를 방지합니다.
  3. 이동 평균 지표

    • 50주기 및 200주기 지수 이동 평균을 사용하여 (EMA)
    • EMA50에서 EMA200을 뚫을 때 황금 교차선이 형성된다.
    • EMA50이 EMA200을 통과할 때 사망 교차가 형성됩니다.
  4. 위험 관리 메커니즘

    • 14주기 ATR에 기반한 동적 스톱: 다중 헤드 스톱 = 입시 가격 - (ATR * 1.5), 빈 헤드 스톱 = 입시 가격 + (ATR * 1.5)
    • 고정된 비율 (예작 4%)
    • 주당 15%의 최대 수익률을 초과하면 이번 주에는 새로운 포지션을 열지 않습니다.

모든 거래 결정은 가격의 피보나치 범위의 위치에 의존하며, 시간 필터와 주당 수익 제한이 추가되어 거래 빈도와 위험 관리의 합리성을 보장합니다.

전략적 이점

심층 분석 결과, 이 전략은 다음과 같은 몇 가지 주요 장점을 보여준다.

  1. 시장의 변동성에 적응하기: ATR을 통해 스톱 레벨을 동적으로 조정하여 전략은 다양한 시장 조건과 변동성 환경에 자동으로 적응할 수 있으며, 스톱 포인트는 높은 변동성 동안 더 느슨하고 낮은 변동성 동안 더 단단합니다.

  2. 다단계 지원 저항 식별전체 피보나치 회귀와 확장 레벨을 결합하여, 전략은 여러 가지 가능한 가격 반전 지점을 식별할 수 있으며, 진입 지점의 정확성을 향상시킵니다.

  3. 과도한 거래를 피하십시오.최소 거래 간격과 주당 수익 상한을 적용함으로써 과도한 거래 위험을 효과적으로 줄이고 시장의 불확실성이 높은 시기에 과도한 거래를 피합니다.

  4. 시각화 거래 신호이 전략은 모든 중요한 레벨과 신호를 피보나치 레벨, 골드/죽음 크로스, 그리고 구매/판매 신호를 포함해서 차트에 직접 표시하여 거래자가 시장 상황을 직관적으로 이해할 수 있도록 합니다.

  5. 통합 기술 지표피보나치 회귀, EMA 교차, ATR 지표의 조합을 통해, 전략은 여러 관점에서 거래 신호를 확인하고, 잘못된 신호의 위험을 줄일 수 있다.

  6. 유연한 변수 조정프 비율과 거래 간격과 같은 핵심 매개 변수는 다양한 시장과 개인 위험 선호도에 따라 조정될 수 있으며, 전략의 적응성을 높일 수 있다.

전략적 위험

이 전략은 합리적으로 설계되었지만, 몇 가지 잠재적인 위험이 있습니다.

  1. 리모델링 후퇴피보나치 레벨은 지난 100개의 K선 계산에 기초하여, 빠르게 변화하는 시장에서 최신의 지원 및 저항 위치를 적시에 반영하지 않을 수 있다. 해결책: 역동적인 조정 회귀 기간을 고려할 수 있다, 또는 더 짧은 기술 지표와 결합하여 반응 속도를 높일 수 있다.

  2. 고정 제약은 잠재적인 수익을 제한합니다.: 고정된 퍼센트 스톱을 사용하는 것은 강력한 추세에서 너무 일찍 포지션을 청산하여 잠재적인 수익을 제한할 수 있습니다. 해결책: 이동 스톱 또는 다단계 스톱 전략을 적용하여 일부 포지션은 추세에 따라 더 멀리 실행할 수 있습니다.

  3. EMA의 교차적 지연골든 크로스와 데이트 크로스는 지연 지표이며, 트렌드가 형성된 후에 신호를 보낼 수 있습니다. 해결책: EMA 크로스를 주요 입시 기준이 아닌 보조 확인으로 사용하거나 더 짧은 주기의 이동 평균을 사용하는 것을 고려하십시오.

  4. 매개변수 민감도전략적 성능은 피보나치 레벨, ATR 배수, 그리고 정지 비율과 같은 파라미터 설정에 매우 민감할 수 있다. 솔루션: 철저한 재검토와 파라미터 최적화를 통해 다양한 시장 조건에서 안정적인 성능을 나타내는 파라미터 조합을 찾는다.

  5. 주당 수익 상한: 15%의 주당 수익 상한은 극단적인 상황에서 중요한 거래 기회를 놓칠 수 있습니다. 해결책: 시장의 변동성 동력에 따라 수익 상한을 조정하는 것을 고려하거나 특정 상황에서 수익 제한을 깨는 것을 허용하는 조건을 설정하십시오.

전략 최적화 방향

전략적 논리에 대한 심층적인 분석을 바탕으로 다음과 같은 몇 가지 최적화 방향이 있습니다.

  1. 역동적인 피보나치 사이클: 현재 전략은 고정된 100 K 선을 사용하여 피보나치 수준을 계산한다. 시장의 변동성에 따라 자동으로 조정되는 계산주기를 고려할 수 있으며, 높은 변동성이있는 시장에서 더 짧은 주기를 사용하고 안정적인 시장에서 더 긴 주기를 사용하여 현재 시장 조건의 핵심 수준을 더 잘 포착한다.

  2. 다중 시간 주기 확인: 다중 시간 주기의 분석을 도입하여 거래 신호가 다른 시간 주기의 피포나치 레벨에 확인되도록 요구하여 잘못된 신호 비율을 줄이고 성공률을 높인다.

  3. 트렌드 필터 통합: 추가 트렌드 필터 (ADX 또는 PARALINE SAR와 같은) 를 추가하여, 명확한 트렌드 방향을 식별할 때만 거래를 수행하고, 분기 변동 시장에서의 손실 거래를 피한다.

  4. 동적 차단 장치: 계단형 또는 추적형 스톱으로 고정된 퍼센티지 스톱을 대체하여 수익이 강한 상황에서 확장될 기회를 제공하면서 이미 얻은 수익을 보호합니다.

  5. 거래량 분석: 거래량 분석을 통합하여, 중요한 피보나치 수준에서 반전과 함께 거래량이 눈에 띄게 변하는 것을 요구하여 신호의 신뢰성을 높인다.

  6. 기계 학습 최적화: 기계 학습 알고리즘을 사용하여 최적의 피보나치 거래 범위와 ATR 배수를 자동으로 식별하고, 역사 데이터를 기반으로 다양한 시장 조건에 최적의 매개 변수를 사용자 정의합니다.

  7. 리스크 포트 동적 조정: 전략의 역사적인 성과와 현재 시장 조건에 따라 포지션 크기를 자동으로 조정하고, 높은 신뢰 신호가 발생하면 을 늘리고, 불확실성이 높으면 을 줄인다.

이러한 최적화 방향은 다양한 시장 조건에 대한 전략의 적응력을 강화하고, 신호 품질을 향상시키고, 위험 관리 구조를 개선하여 보다 안정적이고 지속 가능한 성능을 달성하는 것을 목표로 합니다.

요약하다

다단계 피포나치 리턴 ATR 자율적 스톱 전략은 고전적인 기술 분석 도구와 현대적 위험 관리 기술을 결합한 통합 거래 시스템이다. 피포나치 리턴 레벨을 활용하여 잠재적인 반전 지역을 식별하고, ATR의 동적 스톱과 결합하여 위험 통제를 보장하며, 금/죽음 크로스 및 주당 이익 상한과 같은 추가 기능을 통합하여, 이 전략은 거래자에게 구조화된 거래 프레임워크를 제공합니다.

지연성과 변수 감수성과 관련된 몇 가지 고유한 위험이 있음에도 불구하고, 제안된 최적화 방향, 특히 동적 변수 조정 및 다중 시간 주기의 확인을 통해 이러한 위험을 효과적으로 관리 할 수 있습니다. 전략의 주요 장점은 다양한 시장 환경에서 비교적 안정적인 성능을 유지할 수 있는 자율성과 포괄적 인 위험 관리 장치입니다.

기술 분석을 기반으로 한 구조화된 거래 방법을 찾는 거래자들에게 이 전략은 개인적인 위험 선호도와 시장 관점에 따라 더욱 커스터마이징 및 확장할 수 있는 견고한 출발점을 제공합니다. 신중한 파라미터 조정과 지속적인 성능 모니터링을 통해 이 전략은 거래 포트폴리오의 가치있는 구성 요소가 될 잠재력을 가지고 있습니다.

전략 소스 코드
/*backtest
start: 2024-05-13 00:00:00
end: 2025-01-18 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/

//@version=5
strategy("Fibonacci + TP/SL Strategy [Backtest]", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

take_profit_percent = input.float(4.0, minval=0.1, maxval=20, title="Kar Hedefi (%)")
min_bars_between_trades = input.int(10, title="Minimum Bar Aralığı")

lookback = 100
high_price = ta.highest(high, lookback)
low_price = ta.lowest(low, lookback)

fib_0 = high_price
fib_236 = high_price - (high_price - low_price) * 0.236
fib_382 = high_price - (high_price - low_price) * 0.382
fib_50 = high_price - (high_price - low_price) * 0.5
fib_618 = high_price - (high_price - low_price) * 0.618
fib_786 = high_price - (high_price - low_price) * 0.786
fib_100 = low_price

fib_1618 = high_price + (high_price - low_price) * 0.618
fib_2618 = high_price + (high_price - low_price) * 1.618
fib_4236 = high_price + (high_price - low_price) * 2.618

var int last_trade_bar = na
can_trade = na(last_trade_bar) or (bar_index - last_trade_bar >= min_bars_between_trades)

buy_signal = close <= fib_382 and close >= fib_786 and can_trade
sell_signal = close <= fib_236 and close >= fib_618 and can_trade

ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
golden_cross = ta.crossover(ema50, ema200)
death_cross = ta.crossunder(ema50, ema200)

plotshape(golden_cross, title="Golden Cross", location=location.belowbar, color=color.green, style=shape.triangleup, text="GC")
plotshape(death_cross, title="Death Cross", location=location.abovebar, color=color.red, style=shape.triangledown, text="DC")

atr = ta.atr(14)
sl_long = close - (atr * 1.5)
sl_short = close + (atr * 1.5)
tp_long = close * (1 + take_profit_percent / 100)
tp_short = close * (1 - take_profit_percent / 100)

max_weekly_return = 0.15
start_of_week = ta.change(time("1W")) != 0
var float week_start_equity = na
if start_of_week
    week_start_equity := strategy.equity
current_week_return = (strategy.equity - week_start_equity) / week_start_equity
can_trade_this_week = current_week_return <= max_weekly_return

if buy_signal and strategy.equity > 0 and can_trade_this_week
    strategy.entry("Long", strategy.long)
    strategy.exit("TP/SL Long", from_entry="Long", limit=tp_long, stop=sl_long)
    last_trade_bar := bar_index

if sell_signal and strategy.equity > 0 and can_trade_this_week
    strategy.entry("Short", strategy.short)
    strategy.exit("TP/SL Short", from_entry="Short", limit=tp_short, stop=sl_short)
    last_trade_bar := bar_index

plotshape(buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

plot(fib_0, color=color.green, linewidth=2, title="Fib 0%")
plot(fib_236, color=color.blue, linewidth=2, title="Fib 23.6%")
plot(fib_382, color=color.blue, linewidth=2, title="Fib 38.2%")
plot(fib_50, color=color.red, linewidth=2, title="Fib 50%")
plot(fib_618, color=color.red, linewidth=2, title="Fib 61.8%")
plot(fib_786, color=color.orange, linewidth=2, title="Fib 78.6%")
plot(fib_100, color=color.green, linewidth=2, title="Fib 100%")
plot(fib_1618, color=color.orange, linewidth=2, title="Fib 161.8%")
plot(fib_2618, color=color.orange, linewidth=2, title="Fib 261.8%")
plot(fib_4236, color=color.orange, linewidth=2, title="Fib 423.6%")