EMA 발산 평균 회귀 전략

EMA 均值回归 背离 底部买入 价格波动
생성 날짜: 2025-03-26 15:34:19 마지막으로 수정됨: 2025-03-26 15:34:19
복사: 1 클릭수: 411
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

EMA 발산 평균 회귀 전략 EMA 발산 평균 회귀 전략

개요

이것은 평균 회귀 원리에 기초한 거래 전략으로, 가격과 50주기 지수 이동 평균 (EMA) 사이의 눈에 띄는 편차를 이용하여 거래 기회를 결정한다. 이 전략은 특히 높은 변동성 시장에 대해 설계되어, 가격의 EMA보다 훨씬 낮은 바닥을 구입하고 가격이 EMA 위로 회복되면 판매함으로써 수익을 창출하기 위해 고안되었다. 이 전략은 주로 가격과 EMA 사이의 비율 차이를 추적하며, 이 차이가 특정 하락점을 초과할 때 거래 신호를 유발한다.

전략 원칙

이 전략의 핵심 논리는 평균값 회귀 이론에 기초하고 있는데, 즉, 가격은 단기간에 평균값에서 벗어날 수 있지만, 장기적으로는 평균값으로 돌아가는 경향이 있다. 구체적으로, 전략은 50주기 EMA를 가격의 참조 평균값으로 사용하며, 가격이 그 평균값보다 현저하게 낮을 때 (<10% 이상) 구매 기회로 간주한다. 가격이 EMA 위로 돌아와 수익성이 있을 때, 판매 신호를 유발한다. 계산 방법은 다음과 같다.

  1. 50주기 EMA를 기준으로
  2. 가격과 EMA의 오차 비율을 계산합니다.diff_perct = ((ema20 - close) / ema20) * 100
  3. 가장 높은 가격과 EMA의 오차 비율을 계산합니다.diff_perct2 = ((high - ema20) / ema20) * 100
  4. 언제diff_perct > 10[가격이 EMA보다 10% 이상 낮을 때]
  5. 언제diff_perct2 > 0(즉, 최고 가격은 EMA보다 높습니다) 그리고 현재 거래 수익이 1보다 크면 판매 신호를 유발합니다.

전략적 이점

  1. 명확한 입학 조건전략: 구체적인 가격의 편차를 설정하고, 명확한 진입 신호를 제공하며, 주관적 판단의 방해를 줄여줍니다.
  2. 시장의 과잉 반응을 이용하는 것이 전략은 시장의 과도한 공포 또는 하락의 기회를 잡기 위한 것으로, 이 때 자산 가격은 종종 과소 평가된다.
  3. 자동화 실행이 전략은 완전히 자동화되어 실시간으로 작동하지 않고, 감정적인 방해를 줄일 수 있습니다.
  4. 유연한 재무 관리“전략적으로 현금 분배를 고정된 단위보다 사용함으로써 자금을 더 유연하게 사용할 수 있습니다”.
  5. 간단하고 이해하기 쉬운복잡한 다중 지표 전략에 비해, 이 전략의 논리는 단순하고 이해하기 쉽고 조정하기 쉽다.
  6. 위험 관리“이번 판매는 이미 수익이 발생했을 때만 판매를 촉발하고, 이미 벌어들인 수익을 보호하는데 도움이 됩니다”.

전략적 위험

  1. 트렌드 위험강세를 보이는 하향 추세에서, 가격이 EMA에서 계속 이탈하여 돌아가지 않을 수 있으며, 이는 “리프트 칼” 현상을 일으켜 지속적인 손실을 초래한다.
  2. 매개변수 민감도:10%의 오차 경계는 모든 시장 조건에 적용되지 않을 수 있으며, 낮은 변동성 환경에서 촉발하기가 어려울 수 있으며, 높은 변동성 환경에서 너무 자주 거래 될 수 있습니다.
  3. 손해 방지 장치의 부재: 코드에 명확한 중지 손실 설정이 없으며, 시장이 계속 악화되면 큰 손실이 발생할 수 있습니다.
  4. EMA의 정확성에 의존전략적 가정: EMA가 가격의 유효한 평균 기준이지만, 이는 특정 시장 조건에서 유효하지 않을 수 있다.
  5. 유동성 위험유동성이 낮은 시장에서, 구매 또는 판매 주문은 미끄러지거나 완전히 실행되지 않을 수 있습니다.
  6. 고정된 수익률: 수익률은 고정값 1으로 설정되어, 다른 시장의 변동율에 대한 적응적 조정이 고려되지 않는다.

최적화 방향

  1. 동적적 변동: 10%의 고정 오차 값을 최근 변동성에 기반한 동적 값으로 바꾸어, 예를 들어 ATR (Average True Range) 지표를 사용하여 입시 조건을 조정한다.
  2. 손해 방지 장치: 시간 또는 가격에 기반한 중지 조건을 도입합니다. 예를 들어 최대 지분 기간 또는 최대 허용 손실 비율을 설정합니다.
  3. 다주기 확인: 더 긴 주기 (태양선이나 회선과 같은) 의 트렌드를 판단하고, 주요 트렌드가 역전될 때 진입하는 것을 피한다.
  4. 롯데 창고 및 평고 창고리스크 분산을 위해 모든 포지션을 한 번에 구축하거나 매장하지 않고 단계별로 구매하고 판매하는 것을 구현하십시오.
  5. 필터링 조건을 추가: 추가 기술 지표 (RSI 또는 MACD와 같은) 를 필터링 조건으로 추가하여 거래 신호의 품질을 향상시킵니다.
  6. EMA 주기 적응50 주기가 아닌 적응형 EMA 주기를 사용해서 변화하는 시장 조건에 더 잘 적응할 수 있게 해줍니다.
  7. 리포트 최적화: 다양한 시장 주기와 조건에서 광범위한 재검토를 통해 최적의 변수 조합을 찾습니다.

요약하다

이 50주기 EMA의 반평균 회귀 전략은 기술 분석을 기반으로 한 자동화 된 거래 시스템으로 가격과 평균의 눈에 띄는 편차를 포착하여 거래 기회를 찾습니다. 이 전략은 간단하고 직관적이지만, 변동성이 높은 시장 환경에 적합하지만, 특히 강한 트렌드 시장에서 약간의 위험이 있습니다.

전략 소스 코드
/*backtest
start: 2024-03-26 00:00:00
end: 2025-03-25 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("SUIBTC 2H - EMA dip public",overlay=true,initial_capital=100,default_qty_value=100, default_qty_type = strategy.cash,process_orders_on_close=false,calc_on_every_tick=false)


BuyTrigger = input.bool(false)
SellTrigger = input.bool(false)

src = input(open, title="Source")
offset = input.int(title="Offset", defval=5, minval=-500, maxval=500)

ema20 = ta.ema(close, 50)
plot(ema20, title="ema20", color=color.yellow, linewidth=3)




diff_perct = ((ema20 - close) / ema20) * 100
diff_perct2 = ((high -  ema20) / ema20) * 100





if ( diff_perct > 10)   
    BuyTrigger := true 

if(  diff_perct2 > 0 and strategy.openprofit > 1)
    SellTrigger := true 
    

    

notInTrade = strategy.position_size <= 0
inTrade = strategy.position_size > 0


timeSinceLastTrade_ms = time - strategy.opentrades.entry_time(0)


if (BuyTrigger and notInTrade )
    strategy.order("long", strategy.long , oca_name = 'audusdt' , when = BuyTrigger ,limit = open, comment = "buy: SUIBTC EMA Dip")
 
if (SellTrigger and inTrade )
    strategy.close(id="long" , qty_percent = 100,  comment = "sell: SUIBTC EMA Dip")