추세 주도 피라미드 회복 이동 평균 교차 전략

EMA RSI Trailing Stop PYRAMID RECOVERY ENGULFING PATTERN STOP LOSS TAKE PROFIT
생성 날짜: 2025-06-23 10:36:46 마지막으로 수정됨: 2025-06-23 10:36:46
복사: 1 클릭수: 238
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

추세 주도 피라미드 회복 이동 평균 교차 전략 추세 주도 피라미드 회복 이동 평균 교차 전략

개요

트렌드 드라이브 피라미드 회복형 평행선 교차 전략은 트렌드 추적, 반전 신호 인식 및 피라미드 형태의 포지션 회복 메커니즘을 결합한 통합적인 양자 거래 시스템이다. 이 전략은 주로 다중 지수 이동 평균 ((EMA) 교차를 기반으로 시장의 추세 방향을 판단하고, 침투 형태를 사용하여 입점 신호를 확인하고, 피라미드 형태의 자금 관리 및 모바일 스톱 손실 기능을 결합하여 완전한 거래 폐쇄를 구성한다. 전략은 4 시간 주기를 위해 특별히 설계되어 있으며, 대규모 지수 시장 거래에 적합하며, 중·장기 추세 기회를 잡는 동시에 위험 관리 메커니즘을 제공합니다.

전략 원칙

이 전략은 주로 3개의 다른 기간의 지수 이동 평균 (EMA20, EMA50, EMA200) 을 기반으로 시장의 추세를 판단하고, 진입 신호의 촉발 조건으로 그래프 형태를 결합한다. 구체적으로, 전략의 작동 원리는 다음과 같다:

  1. 트렌드 판단 메커니즘

    • 다중 트렌드 조건: EMA20 > EMA50 > EMA200 및 종료 가격 > EMA200
    • 상반기 트렌드 조건: EMA20 < EMA50 < EMA200 그리고 종결 가격 < EMA200
  2. 출입 신호

    • 트렌드 추적 입시: 다중 트렌드에서 오징어 포식 형태가 나타납니다.
    • 반전 입구: 하향 트렌드에서 하향 삼키기 형태가 나타납니다 (반전 사고, 반전 구매 신호로)
  3. 선택

    • 개체와 전체 범위에 대한 비율을 계산하여 body_ratio를 계산하여, 주저하는 을 배제한다.
  4. 위험 관리

    • 고정 스톱: 고정 점수의 스톱 위치를 설정
    • 고정 스톱: 스톱 포인트의 곱과 추가 포인트를 기반으로 스톱을 설정
    • 추적 중지: 수익이 특정 지점에 도달하면 추적 중지 메커니즘을 활성화합니다.
  5. 피라미드 복구 메커니즘

    • 상쇄 손실의 수에 따라 포지션 크기를 늘립니다.
    • 지수 성장 인자를 이용한 조정으로 포지션을 회복
    • 최대 복원 계층을 설정하여 위험 노출을 제한합니다

코드 구현에서, 먼저 3개의 EMA 지표가 정의되고, 그 다음에는 주저적 인 ?? 을 배제하기 위해 필터링 논리가 구성된다. 전략에는 두 가지의 구매 조건이 있다. 트렌드 구매와 반전 구매. 트렌드 구매는 EMA 지표가 다중 상위 배열을 충족하도록 요구하며, 낙관적 인 삼림 형태가 나타난다. 반전 구매는 공백 배열 시장에서 인하 삼림 형태를 찾아 반전 신호로 사용한다.

전략적 이점

  1. 전체적인 시장 적응성트렌드 추적과 역전 전략을 동시에 포함함으로써, 이 시스템은 단일 시장 상태에만 국한되지 않고 다양한 시장 환경에서 거래 기회를 찾을 수 있습니다.

  2. 다단계 위험 관리: 고정적 손실, 비율적 중지 및 추적적 손실을 막는 삼중 보호 메커니즘을 결합하여, 자금을 보호하면서 잠재적인 수익을 제한하지 않습니다.

  3. 피라미드 복구 메커니즘: 회복 시스템을 혁신적으로 도입하여 과학적으로 포지션을 증가시켜 연속적인 손실 상황에 대응하여 자금 회복 효율을 높입니다. 이 메커니즘은 단기 철회 후 계좌 순액을 더 빨리 회복 할 수 있습니다.

  4. 역동적인 포지션 관리: 거래의 성과에 따라 자동으로 포지션 크기를 조정하고, 수익을 올릴 때 기본 포지션을 유지하며, 손실을 올릴 때 포지션을 점진적으로 증가시켜 회복을 가속화한다.

  5. 기술 지표와 형태 결합: 이동 평균과 같은 기술 지표에 의존하는 것뿐만 아니라, 그래프 형태 분석과 결합하여, 여러 확인을 통해 신호 품질을 향상시킵니다.

  6. 정교한 입력 필터: body_ratio 파라미터를 통해 망설임 을 필터링하여 거짓 신호의 위험을 줄인다.

  7. 간단한 시각적 표기: 거래 신호가 그래프에 직관적으로 표시되어, 분석 및 실시간 모니터링이 가능합니다.

전략적 위험

  1. 급격한 포지션 팽창 위험: 피라미드 회복 메커니즘은 연속적인 손실이 있을 때 포지션이 급격히 증가할 수 있으며, 시장이 지속적으로 좋지 않으면 손실이 심해질 수 있다. max_recovery 파라미터를 합리적인 범위 내에서 제어하고, 총자금량에 따라 base_position을 조정하는 것이 좋습니다.

  2. 동향이 바뀌었을 때 지연된 모습이동 평균 기반의 시스템은 트렌드 전환의 초기에는 느리게 반응하여 진입 또는 출퇴근 시간을 지연시킬 수 있습니다. RSI 또는 MACD와 같은 더 민감한 지표와 함께 보조 판단을 고려할 수 있습니다.

  3. 고정 점수 손실의 위험: 시장의 변동성이 변화할 때, 고정점 스톱레이드는 너무 넓거나 너무 좁을 수 있다. ATR을 사용하여 스톱레이드 거리를 동적으로 조정하는 것을 고려하는 것이 좋습니다.

  4. 가짜 신호가 형태를 삼키고 있다: 가로판 시장에서, 삼킨 형태는 더 많은 가짜 신호를 생성할 수 있다. 거래량 확인을 증가시키거나 다른 보조 지표로 신호 품질을 향상시킬 수 있다.

  5. 한방 거래 제한: 현재 전략은 단지 여러 작업을 수행하고, 곰 시장에서 코카이 기회를 놓칠 수 있습니다. 쌍방향 시장에 적응하기 위해 대칭적인 코카이 논리를 추가하는 것을 고려하십시오.

  6. 돈 관리의 압박감: 최대 복구 수준에서 더 큰 재정 지원이 필요합니다. 총 계좌 규모에 따라 pyramid_factor 및 max_recovery 파라미터를 신중하게 설정하는 것이 좋습니다.

전략 최적화 방향

  1. 동적 상쇄 메커니즘: 고정 점수 스톱 로드를 ATR 기반의 동적 스톱 로드로 대체하여 시장의 변동성 변화에 더 잘 적응한다. 구현 방법은 현재 ATR 값을 계산한 다음 스톱 로드를 입시 가격에서 ATR을 빼는 배수로 설정한다.

  2. 공백 논리 추가: 대칭적인 하락 조건을 추가하여 전략이 하락 시장에서 똑같이 효과적일 수 있도록 한다. 구현 방법은 기존의 구매 논리, 역설정 조건 및 입구 방향을 복제하는 것이다.

  3. 트렌드 판단을 개선하는 방법: EMA 외에도, ADX (트렌드 강도 지표) 와 같은 더 많은 트렌드 확인 도구를 도입하고, 더 강한 트렌드 환경을 필터링합니다. “ADX > 25”와 같은 조건을 트렌드 강도 필터로 추가 할 수 있습니다.

  4. 리스크 비율을 최적화: 역사적인 회수 데이터를 기반으로 최적의 스톱-스트롭 비율을 찾는 데는tp_multiplier 파라미터를 조정해야 할 수도 있습니다.

  5. 시간 필터시간 필터링 조건을 추가하여 낮은 변동성이나 불안정한 시장 시기를 피하십시오. 특히 지수 거래에 대해 시장 활동 시간에 집중 할 수 있습니다.

  6. 복원 시스템을 최적화: 승률과 손실률을 기반으로 동적으로 조정하는 pyramid_factor를 고려하고, 고정된 배수를 사용하는 대신. 최근 성과에 기반한 적응 조정 메커니즘을 구현할 수 있다.

  7. 이윤의 일부 잠금: 특정 수익을 달성한 후, 수익의 일부를 잠금하기 위해 포지션을 분할하여 매각을 완료하고, 나머지 포지션을 트렌드를 추적합니다.

  8. 감정 지표 통합: 시장 감정 지표 (VIX 또는 시장 폭 지표) 를 도입하고, 극단적 인 감정의 경우 전략 매개 변수를 조정하거나 거래를 중지한다.

요약하다

트렌드 드라이브 피라미드 회복형 평행선 교차 전략은 여러 가지 거래 개념을 결합한 종합적인 시스템으로, 주로 EMA 교차로 트렌드를 판단하고, 형태 확인 신호를 삼키며, 혁신적인 피라미드 회복 메커니즘과 함께 위험을 관리하고 자금 효율성을 최적화한다. 전략의 핵심 장점은 다양한 시장 환경에 적응할 수 있다는 점과 동시에 완벽한 위험 제어 장치를 제공하는 데 있다.

이 전략은 기술 분석에 대한 약간의 이해가 있으며, 장기적으로 안정적인 수익을 추구하기 위해 중등의 위험을 기꺼이 받아들이는 거래자에게 특히 적합합니다. 위의 최적화 방향을 구현함으로써, 전략의 안정성과 적응력이 더욱 향상 될 수 있습니다. 특히 시장의 변동성이 큰 환경에서.

전체적으로, 이 전략은 현대적인 양적 거래에서 기술 분석, 위험 관리 및 자금 관리를 통합적으로 사용하는 전형적인 방법을 대표하며, 거래자에게 개인 요구와 시장 환경에 따라 사용자 정의 및 최적화 할 수있는 확장 가능한 프레임 워크를 제공합니다.

전략 소스 코드
/*backtest
start: 2024-06-23 00:00:00
end: 2025-06-21 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/

//@version=5
strategy("DJ30 Sniper (Trend + Reversal Buy + Pyramid Recovery + Trailing)", overlay=true, default_qty_value=1)

// === INPUTS ===
ema_fast = input.int(20, "EMA Fast")
ema_mid = input.int(50, "EMA Mid")
ema_slow = input.int(200, "EMA Slow")
rsi_period = input.int(14, "RSI Period")
sl_points = input.int(650, "Stop Loss (Points)")
tp_extra = input.int(200, "Extra TP Points")
tp_multiplier = 5
trailing_trigger = input.int(100, "Activate Trailing SL After (Points)")
trailing_stop = input.int(500, "Trailing Stop Size (Points)")

// === Recovery Settings ===
max_recovery = input.int(3, "Max Pyramid Levels", minval=1)
base_position = input.float(1000, "Base Order Size ($)")  // 🔁 doubled from 500 to 1000
pyramid_factor = input.float(2.0, "Recovery Multiplier")

// === MAs ===
ema20 = ta.ema(close, ema_fast)
ema50 = ta.ema(close, ema_mid)
ema200 = ta.ema(close, ema_slow)

// === Candle Filter ===
body = math.abs(close - open)
candle_range = high - low
body_ratio = candle_range != 0 ? body / candle_range : 0
not_indecision = body_ratio > 0.3

// === Buy Conditions ===
bull_trend = ema20 > ema50 and ema50 > ema200 and close > ema200
engulfing_bullish = close > open and close > close[1] and open < open[1]
buy_trend = bull_trend and engulfing_bullish and not_indecision

bear_trend = ema20 < ema50 and ema50 < ema200 and close < ema200
engulfing_bearish = close < open and close < close[1] and open > open[1]
buy_reversal = bear_trend and engulfing_bearish and not_indecision

buy_condition = buy_trend or buy_reversal

// === SL/TP ===
tp_points = sl_points * tp_multiplier + tp_extra
sl_buy = close - sl_points * syminfo.mintick
tp_buy = close + tp_points * syminfo.mintick

// === Recovery Logic ===
var int recovery_level = 0
var float position_size = base_position

if strategy.closedtrades > 0
    last_trade = strategy.closedtrades - 1
    last_profit = strategy.closedtrades.profit(last_trade)
    if last_profit > 0
        recovery_level := 0
    else
        recovery_level := math.min(recovery_level + 1, max_recovery)

position_size := base_position * math.pow(pyramid_factor, recovery_level)

// === Trade Execution ===
if buy_condition and strategy.opentrades == 0
    strategy.entry("Buy DJ30", strategy.long, qty=position_size)

// === Exit Logic ===
if strategy.opentrades > 0
    entry_price = strategy.opentrades.entry_price(0)
    unrealized_points = (close - entry_price) / syminfo.mintick

    if unrealized_points >= trailing_trigger
        strategy.exit("Trail Exit", from_entry="Buy DJ30", trail_points=trailing_stop, trail_offset=trailing_stop)
    else
        strategy.exit("Fixed Exit", from_entry="Buy DJ30", stop=sl_buy, limit=tp_buy)

// === Visual Markers ===
plotshape(buy_trend, location=location.belowbar, style=shape.labelup, color=color.green, text="TrendBuy")
plotshape(buy_reversal, location=location.belowbar, style=shape.labelup, color=color.orange, text="RevBuy")