다단계 모멘텀 및 공정가치 갭 반전 양적 전략

RSI EMA FVG ATR 动量指标 均线系统 公允价值缺口 波动率止盈
생성 날짜: 2025-08-19 11:26:54 마지막으로 수정됨: 2025-08-19 11:26:54
복사: 0 클릭수: 214
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

다단계 모멘텀 및 공정가치 갭 반전 양적 전략 다단계 모멘텀 및 공정가치 갭 반전 양적 전략

다단계 모멘텀 및 공정가치 갭 반전 양적 전략

개요

다단계 동적과 공정 가치 격차 역전화 전략은 단기 평균 회귀 거래 체계이며, RSI 동적 필터링, 이중 EMA 채널 및 공정 가치 격차 (FVG) 검출 메커니즘을 교묘하게 결합하여 단기 시장 역전점을 정확하게 식별합니다. 이 전략은 정확한 입점과 ATR 기반의 정지 관리를 통해 거래 기회와 위험을 균형을 맞추기 위해 특히 변동성이 높은 시장에 설계되었습니다. 전략의 핵심 논리는 가격의 단기 과도한 연장, 동적 지표가 극심한 값을 표시하고 구조적 가격 격차가있는 경우 잠재적인 역전 기회를 찾는 것입니다.

전략 원칙

이 전략은 다단계 기술 지표 조합을 통해 거래 신호를 확인합니다.

  1. 이중 EMA 통로 시스템

    • 빠른 20주기 EMA와 느린 100주기 EMA가 가격 활동을 형성하는 참조 통로
    • 다중 입점 조건은 가격이 두 개의 EMA보다 낮게 요구되며 이는 가격이 과소 평가 될 수 있음을 나타냅니다.
    • 허브 엔트리 조건은 가격이 두 개의 EMA보다 높을 것을 요구하며, 이는 가격이 과대 평가 될 수 있음을 나타냅니다.
    • 이 이중 EMA 필터링 메커니즘은 단일 EMA만 사용했을 때 발생할 수 있는 잘못된 역전 신호를 방지합니다.
  2. 공정한 가치 틈 (FVG) 검출

    • 가격 구조의 중요한 허점을 탐지하기 위해 12 K 선의 회귀기를 사용하는 전략
    • 보령 FVG는 초기 하위점이 현재의 최고점 위에 형성되어, 하향으로 지나치게 확장된 것을 암시한다
    • 하향 FVG는 초기 고위가 현재 하위보다 낮게 형성되어 상승이 지나치게 길어졌음을 암시합니다.
    • FVG 신호는 K선 방향에 맞춰져 있다 ((看=폐쇄 가격>開盘 가격,看跌=폐쇄 가격<開盘 가격), 무작위 틈을 피한다
  3. RSI 운동 필터

    • 14주기 RSI와 극한 하락 (80 초매 / 20 초매) 을 사용하여
    • 다중 신호는 RSI <20이 필요하며, 이는 과매매 상태를 나타냅니다.
    • 빈 머리 신호는 RSI>80을 필요로 하며, 과매매 상태를 나타냅니다.
    • 이것은 입시점이 기술적으로 효율적일 뿐만 아니라 극도의 동력으로 지원되는 것을 보장합니다.
  4. ATR 기반의 정지 관리

    • 14주기 ATR을 사용하여 계산하고, 기본 곱수는 4입니다.
    • 입시시 고정 목표 = 입시 가격 ± (ATR × 4)
    • 정지 목표는 시장의 변동성에 따라 자동으로 조정됩니다. 평온한 시장에서는 목표가 좁고, 격렬한 변동에서는 목표가 넓습니다.

전략적 이점

  1. 다단계 인증 메커니즘이 전략은 가격이 EMA 통로 밖에서 RSI가 극한에 도달하고 FVG 구조가 존재하기 전에 거래가 촉발되도록 요구합니다. 이 다중 확인 메커니즘은 거래 신호의 품질을 크게 향상시킵니다.

  2. 변동성 적응ATR 기반의 스톱 메커니즘은 현재 시장의 변동에 따라 목표를 자동으로 조정할 수 있으며, 다양한 시장 환경에서 적응성을 유지할 수 있습니다.

  3. 명확한 시각적 신호전략: 트레이더가 트레이딩을 모니터링하고 관리할 수 있도록 차트 상에서 명확한 시각적 표시를 제공하며, 입력 신호와 정지 완료 표시를 포함합니다.

  4. 높은 선택성전략: 엄격한 필터링 조건을 통해 90% 이상의 시장 소음을 제거하고, 고품질의 단기 반전 기회에만 집중하여 무효 거래를 줄입니다.

  5. 평균값 회귀 원리전략: 가격의 최종적으로 평균값으로 돌아가는 시장 이론에 기초한 전략으로, 극단적인 조건에서 진입하여 성공 확률을 높였다.

  6. 규율적인 거래 프레임워크이 전략은 고정된 입시 조건과 ATR 기반의 정지 (stop) 를 통해, 주관적이지 않은 판단을 위한 규율적 거래 프레임워크를 제공합니다.

전략적 위험

  1. 낮은 주파수 거래의 위험다중 조건 필터링으로 인해 전략은 특정 기간 동안 거래 신호를 적게 생성하여 자금 사용 효율이 떨어질 수 있습니다. 해결책은 전략을 여러 시장 또는 여러 시간 동안 적용하는 것입니다.

  2. 가짜 침입 위험: 높은 변동성이 있는 시장에서, 가격이 일시적으로 입시 조건을 촉발한 후 즉시 역으로 움직일 수 있다. 해결책은 확증 기간을 늘리거나 스톱 손실 장치를 설정하는 것을 고려하는 것이다.

  3. 매개변수 민감도전략의 효과는 RSI 절단, EMA 주기 및 ATR 곱 등과 같은 파라미터 설정에 크게 의존합니다. 해결책은 서로 다른 시장과 주기에 대한 회귀를 최적화하여 가장 적합한 파라미터 조합을 찾는 것입니다.

  4. 트렌드 시장의 부진: 평균값 회귀 전략으로서, 강한 트렌드 시장에서 잘못된 신호를 자주 유발할 수 있다. 해결책은 트렌드 필터를 추가하거나 명확한 트렌드 시장에서 전략 사용을 중지하는 것이다.

  5. 자금 관리 위험: 기본 25%의 재원 분배는 연속적인 손실이 있을 때 상당한 계정 변동으로 이어질 수 있다. 해결책은 개인의 위험 부담 능력에 따라 포지션 크기를 조정하거나, 더 보수적인 재원 관리 전략을 시행하는 것이다.

전략 최적화 방향

  1. 손해 방지 장치: 현재 전략은 ATR 기반의 스톱만 있고, 명확한 스톱 손실 설정이 없습니다. 시간 스톱 또는 가격 스톱을 추가하여 단일 거래의 최대 손실을 제한하는 것이 좋습니다.

  2. 트렌드 필터 통합: 더 긴 주기의 트렌드 지표를 추가할 수 있습니다 (예: 200 EMA 방향 또는 ADX 값), 유리한 트렌드 환경에서만 거래하고 역동적인 거래를 피하십시오. 이것은 평균 회귀 전략이 트렌드 방향의 반전 지점에 일반적으로 더 잘 작동하기 때문입니다.

  3. 입학 시점을 최적화: 추가적인 가격행동 확인을 추가하는 것을 고려하십시오. 예를 들어, 종결 가격의 돌파, 그래프 형태 또는 거래량 확인은 입시 정확성을 높일 수 있습니다. 이렇게하면 가짜 신호를 줄이고 단일 거래의 성공률을 높일 수 있습니다.

  4. 동적 변수 조정: 시장의 변동 상황에 따라 RSI 마이너스 및 ATR 곱수를 자동으로 조정하여 다른 시장 환경에서 최적의 성능을 유지합니다. 이것은 다른 변동률 환경에서 고정 변수의 성능이 크게 다를 수 있기 때문입니다.

  5. 다중 시간 프레임 분석: 더 높은 시간 프레임의 시장 구조를 통합하고 저항 지점을 지원하고, 중요한 가격 수준 근처에서 촉발되는 신호에만 거래하여 승률을 높여줍니다. 이렇게하면 미세한 단기 신호를 거시적인 시장 구조와 결합 할 수 있습니다.

  6. 자금 관리 개선: 변동률에 기반한 포지션 크기를 조정하여, 높은 변동성 동안 포지션을 줄이고, 낮은 변동성 동안 포지션을 증가시켜 리스크 수익률을 균형을 잡습니다.

요약하다

다단계 동력과 공정 가치 격차 역전화 전략은 RSI 동력, EMA 채널 및 FVG 구조의 삼중 필터링 메커니즘을 통해 높은 확률의 시장 역전점을 효과적으로 식별하는 정교하게 설계된 단기 평균 회귀 거래 시스템입니다. ATR 기반의 적응 스톱 디자인은 전략이 다양한 변동 환경에서 안정적인 성능을 유지할 수 있도록합니다.

이 전략의 주요 장점은 엄격한 다단계 확인 메커니즘을 통해 고품질 거래 기회를 선정하고 주관적 판단의 방해를 피하는 고도의 선택성과 규율성입니다. 그러나 이 전략은 저주파 거래, 가짜 돌파구 및 추세 시장의 부실성 등의 위험에 직면합니다.

이 전략은 손실 제도를 추가하고, 트렌드 필터를 통합하고, 진입 시기를 최적화하고, 동적 변수 조정 및 재원 관리를 개선함으로써 안정성과 적응성을 더욱 향상시킬 수 있습니다. 전반적으로, 이것은 명확하고 논리적으로 엄격한 양적 거래 전략이며, 단기 시장 역전 기회를 찾는 거래자에게 적합합니다.

전략 소스 코드
/*backtest
start: 2024-08-19 00:00:00
end: 2025-08-18 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_OKX","currency":"BTC_USDT","balance":5000}]
*/

//@version=5
strategy("The Barking Rat Lite", overlay=true)

/// === INPUTS === ///
rsiLength = input.int(14, "RSI Length")
rsiOverbought = input.int(80, "RSI Overbought")
rsiOversold = input.int(20, "RSI Oversold")
atrLength = input.int(14, "ATR Length")
atrMultiplier = input.float(4, "ATR TP Multiplier")
emaLengthLower = input.int(20, "EMA Lower")
emaLengthUpper = input.int(100, "EMA Upper")

// === RSI FILTER ===
rsi = ta.rsi(close, rsiLength)
rsi_long_ok = rsi < rsiOversold
rsi_short_ok = rsi > rsiOverbought

// === ATR FOR TP ===
atr = ta.atr(atrLength)

// === EMA BAND ===
emaLower = ta.ema(close, emaLengthLower)
emaUpper = ta.ema(close, emaLengthUpper)

// === PLOT EMA LINES ===
plot(emaLower, color=color.blue, title="EMA Lower", linewidth=2)
plot(emaUpper, color=color.orange, title="EMA Upper", linewidth=2)

// === FVG DETECTION ===
fvg_up = high[12] < low
fvg_down = low[12] > high

// === WICK REJECTION SIGNALS ===
valid_bullish_fvg = fvg_down
valid_bearish_fvg = fvg_up

bullish_signal = valid_bullish_fvg and close > open and rsi_long_ok
bearish_signal = valid_bearish_fvg and close < open and rsi_short_ok

// === TRADE STATE VARIABLES ===
var inTrade = false
var isLong = false
var isShort = false
var float longTP = na
var float shortTP = na

// === ENTRY LOGIC WITH LABELS & LINES ===
if bullish_signal and close < emaLower and close < emaUpper
    float labelY = low * 0.98
    strategy.entry("Long", strategy.long)
    inTrade := true
    isLong := true
    isShort := false
    longTP := close + atr * atrMultiplier  // fixed TP at entry

if bearish_signal and close > emaUpper and close > emaLower
    float labelY = high * 1.02
    strategy.entry("Short", strategy.short)
    inTrade := true
    isShort := true
    isLong := false
    shortTP := close - atr * atrMultiplier  // fixed TP at entry

// === EXIT LOGIC: ATR-BASED TP ===
if inTrade and isLong and close >= longTP
    strategy.close("Long")
    inTrade := false
    isLong := false
    longTP := na


if inTrade and isShort and close <= shortTP
    strategy.close("Short")
    inTrade := false
    isShort := false
    shortTP := na