동적 유동성 캐스케이드 캡처 전략

INDICATORS MA EMA SMA ATR volatility momentum
생성 날짜: 2025-02-21 11:03:11 마지막으로 수정됨: 2025-02-24 15:16:23
복사: 1 클릭수: 326
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

동적 유동성 캐스케이드 캡처 전략 동적 유동성 캐스케이드 캡처 전략

개요

이 전략은 시장의 극한 변동 기간을 포착하기 위해 특별히 설계된 정량 거래 시스템이다. 가격과 평균선 사이의 오차 정도를 모니터링하여 시장에서 발생할 수 있는 유동성 고갈 상황을 식별하여 시장 역전 기회를 포착한다. 전략은 평균선 조합, 변동률 추적 및 동적 중지 메커니즘을 사용하여 완전한 거래 시스템을 구축한다.

전략 원칙

전략의 핵심은 가격과 평균의 편차를 계산하여 시장의 이상성을 식별하는 것이다. 구체적으로 구현하는 것은 다음과 같다:

  1. 15주기 간단한 이동 평균 (SMA) 과 30주기 지수 이동 평균 (EMA) 을 사용하는 그룹 협업으로 기준 가격
  2. 현재 가격과 평균 조합 사이의 비율 오차를 계산합니다.
  3. 89주기의 최고치와 최저치를 통해 역사적 극한을 결정한다.
  4. 3번 연속으로 다중 유동성 고갈이 발생했을 때 더 많이 투자하십시오.
  5. 세 가지의 탈퇴 메커니즘이 설정되어 있습니다: 기술 반발, 역 유동성 소모 신호 및 추적 중단

전략적 이점

  1. 정확한 시장 타이밍: 여러 지표를 통해 입시 정확성을 향상시킵니다.
  2. 리스크 제어: 다단계 스톱드 메커니즘을 사용하여 하향 리스크를 효과적으로 제어합니다.
  3. 적응력: 전략은 시장의 변동성에 따라 자동으로 중지 범위를 조정할 수 있습니다.
  4. 실행력: 전략은 입출장 조건을 명확하게 설정하여 주관적인 판단을 줄여줍니다.
  5. 체계화: 전체 거래 과정은 수량 지표에 기반하고 자동화하기 쉽습니다.

전략적 위험

  1. 가짜 신호 위험: 수평 시장에서 잘못된 유동성 고갈 신호가 발생할 수 있습니다.
  2. 슬라이드 포인트 위험: 극한 시장 조건에서 더 큰 실행 슬라이드 포인트가 발생할 수 있습니다.
  3. 변수 민감성: 전략 효과는 평균선 주기 및 스톱 로즈 배수에 민감하다
  4. 시장 환경 의존성: 낮은 변동성 환경에서 전략적 수익이 적을 수 있습니다.
  5. 기술 위험: 신호 지연이나 손실을 방지하기 위해 시스템의 안정성을 보장해야 합니다.

전략 최적화 방향

  1. 거래량 지표 도입: 거래량으로 유동성 소모 신호의 유효성을 확인
  2. 최적화 매개 변수가 적응: 시장의 변동 상태에 따라 전략 매개 변수를 동적으로 조정
  3. 시장 환경 필터를 추가: 부적절한 시장 환경에서 거래를 중지
  4. 손해 제도를 개선: 변동율 기반의 동적 손해 제도를 추가하는 것을 고려할 수 있습니다.
  5. 최적화된 신호 확인 메커니즘: 가짜 신호를 필터링하는 기술 지표를 추가합니다.

요약하다

동적 유동성 계열 캡처 전략은 시장의 극단적인 상황을 캡처하는 데 초점을 맞춘 정량 거래 시스템입니다. 과학적인 지표 조합과 엄격한 위험 통제를 통해 전략은 시장의 급격한 변동이 발생했을 때 거래 기회를 잡을 수 있습니다.

전략 소스 코드
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Liquidation Cascade Strategy", overlay=true)

// Paramètres de l'indicateur de liquidation
var float lastHigh = na
var float lastLow = na
var float lastPriceLow = na
var float lastPriceHigh = na
var bool shortLiq = na
var bool longLiq = na

src = close
maLength1 = 15
maLength2 = 30
ma1 = ta.sma(src, maLength1)
ma2 = ta.ema(src, maLength2)
avgLine = (ma1 + ma2) / 2
distVal = ((src - avgLine) / avgLine) * 100

ph = ta.highest(distVal, 89)
pl = ta.lowest(distVal, 89)

if ph == distVal and ph > 0 
    lastHigh := distVal
    lastPriceHigh := high

if pl == distVal and pl < 0 
    lastLow := distVal
    lastPriceLow := low

shortLiq := not na(lastHigh) and lastHigh == distVal and distVal > 0
longLiq := not na(lastLow) and lastLow == distVal and distVal < 0

// Condition d'achat : 3 liquidations longues consécutives
buyCondition = ta.valuewhen(longLiq, longLiq, 0) and ta.valuewhen(longLiq, longLiq, 1) and ta.valuewhen(longLiq, longLiq, 2)
if (buyCondition)
    strategy.entry("Buy", strategy.long)

// Conditions de vente
var float entryPrice = na
var bool positionOpen = false

// Mise à jour du prix d'entrée
if (buyCondition)
    entryPrice := close
    positionOpen := true

// 1. Vente sur rebond technique (distVal > -1%)
sellCondition1 = distVal > -1 and positionOpen

// 2. Vente sur liquidation courte
sellCondition2 = shortLiq and positionOpen

// 3. Trailing Stop (2x ATR)
atr = ta.atr(14)
trailingStop = close - 2 * atr
sellCondition3 = close < trailingStop and positionOpen

// Exécution des ventes
if (sellCondition1 or sellCondition2 or sellCondition3)
    strategy.close("Buy")
    positionOpen := false

// Visualisation
plot(avgLine, color=color.blue, title="Avg Line")
plot(distVal, color=distVal > 0 ? color.red : color.green, style=plot.style_columns)