이중 이동 평균 교차 동적 손절매 및 손절매 양적 전략

EMA SMA SL TP MM
생성 날짜: 2024-11-12 17:29:24 마지막으로 수정됨: 2024-11-12 17:29:24
복사: 0 클릭수: 597
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이중 이동 평균 교차 동적 손절매 및 손절매 양적 전략

개요

이 전략은 동적 스톱 스톱 손실 메커니즘과 결합하여 위험을 관리하는 양적 거래 시스템입니다. 이 전략은 20주기 및 50주기의 지수 이동 평균 ((EMA) 을 신호 지표로 사용하고 수익과 위험을 균형을 맞추기 위해 비교적 온건한 2.5%의 스톱 스톱 및 4%의 스톱 스톱 수준을 설정합니다. 이 전략은 특히 중간 위험 용인력을 가진 거래자에게 적합하며 시장 추세가 변화할 때 기회를 잡고 위험을 통제 할 수 있습니다.

전략 원칙

전략의 핵심 논리는 다음과 같은 핵심 요소에 기초합니다.

  1. 신호 시스템: 빠른 20주기) 와 느린 50주기) 지수 이동 평균의 교차로 거래 신호를 생성
  2. 입시 조건: 빠른 평균선이 느린 평균선을 상향으로 가로지르면 더 많이 입점하십시오.
  3. 탈퇴 메커니즘: 두 가지 상황을 포함합니다 - 평행선 교차는 판매 신호를 형성하거나, 또는 정지 스톱 손실 수준에 닿습니다.
  4. 리스크 제어: 매 거래마다 자동으로 입시 가격에 기반한 동적 스톱 로즈 레벨을 설정합니다.

전략적 이점

  1. 체계화된 거래: 전략이 완전히 체계화되어 주관적인 판단으로 인한 감정적 방해가 줄어들었습니다.
  2. 리스크 제어: 미리 설정된 스톱 스톱 손실 위치로 거래마다 명확한 리스크 제어를 제공합니다.
  3. 트렌드 추적: 중·장기 트렌드를 효과적으로 파악하여 중요한 시장 기회를 놓치지 않도록 한다.
  4. 변수 유연성: 거래자는 자신의 위험 취향에 따라 스톱 스톱 손실 비율을 조정할 수 있습니다.
  5. 간단한 실행: 전략 논리가 명확하고 이해하기 쉬우며 실행하기 쉽습니다.

전략적 위험

  1. 변동 시장 위험: 변동 시장은 잘못된 신호를 발생시킬 수 있으며, 이는 거래의 빈도를 높일 수 있습니다.
  2. 슬라이드 포인트 위험: 시장의 급격한 변동이 있을 때 실제 거래 가격과 신호 가격의 오차가 있을 수 있다.
  3. 트렌드 역전 위험: 트렌드가 급격히 역전될 경우, 스톱로스는 충분히 빠르지 않을 수 있습니다.
  4. 매개 변수 의존성: 전략 효과는 평균선 주기 및 스톱 스톱 손실 매개 변수 선택에 영향을 많이 받는다.

전략 최적화 방향

  1. 변동률 지표의 도입: 시장 변동률에 따라 스톱 스톱 손실 비율을 조정할 수 있습니다.
  2. 추가 필터링 조건: 합성 거래량, 트렌드 강도 등의 지표 필터링 거래 신호
  3. 최적화된 평균선 주기: 역대 데이터를 통해 최적의 평균선 변수 조합을 찾을 수 있다.
  4. 트렌드 필터 추가: 트렌드 판단 조건을 추가하여 가로 시장에서 자주 거래하는 것을 피하십시오.
  5. 복합 신호 개발: 보조 확인 신호로 다른 기술 지표를 도입할 수 있다.

요약하다

이것은 합리적인 설계 중위험 수치 거래 전략, 평평선 교차로 트렌드를 캡처, 동적 중지 중지 손해 관리 위험을 사용. 전략의 주요 장점은 체계화 정도가 높고, 위험 제어, 그러나 실제 응용에서 전략에 대한 시장 환경의 영향을 주의해야합니다. 지속적인 최적화 및 개선, 이 전략은 다양한 시장 환경에서 안정적인 성능을 유지할 수 있습니다.

전략 소스 코드
/*backtest
start: 2024-10-12 00:00:00
end: 2024-11-11 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Estrategia STX - Medias Móviles con Riesgo Medio", overlay=true)

// Parámetros configurables
mmr_period = input.int(20, title="Periodo Media Móvil Rápida (MMR)")
mml_period = input.int(50, title="Periodo Media Móvil Lenta (MML)")
stop_loss_percent = input.float(2.5, title="Stop-Loss (%)", step=0.1) // Stop-Loss moderado
take_profit_percent = input.float(4.0, title="Take-Profit (%)", step=0.1) // Take-Profit moderado

// Cálculo de medias móviles (Exponenciales)
mmr = ta.ema(close, mmr_period) // Media Móvil Rápida
mml = ta.ema(close, mml_period) // Media Móvil Lenta

// Señales de Compra y Venta
long_condition = ta.crossover(mmr, mml)  // Señal de compra
short_condition = ta.crossunder(mmr, mml) // Señal de venta

// Calcular niveles de Stop-Loss y Take-Profit solo al activar la compra
var float entry_price = na
var float stop_loss_level = na
var float take_profit_level = na

if (long_condition)
    entry_price := close
    stop_loss_level := entry_price * (1 - stop_loss_percent / 100)
    take_profit_level := entry_price * (1 + take_profit_percent / 100)

// Condiciones de salida (Stop-Loss y Take-Profit)
exit_condition = (close <= stop_loss_level) or (close >= take_profit_level)

// Ejecución de Órdenes
if (long_condition)
    strategy.entry("Compra", strategy.long)

if (short_condition or exit_condition)
    strategy.close("Compra")

// Trazar Medias Móviles y Niveles
plot(mmr, color=color.blue, linewidth=2, title="Media Móvil Rápida (MMR)")
plot(mml, color=color.orange, linewidth=2, title="Media Móvil Lenta (MML)")
plot(not na(entry_price) ? stop_loss_level : na, color=color.red, style=plot.style_line, linewidth=1, title="Stop-Loss")
plot(not na(entry_price) ? take_profit_level : na, color=color.green, style=plot.style_line, linewidth=1, title="Take-Profit")