트래일링 스톱 로스로 EMA 크로스오버 전략

저자:차오장, 날짜: 2023-12-20 17:39:30
태그:

img

전반적인 설명

이 전략은 빠른 EMA (9주기) 와 느린 EMA (21주기) 의 크로스오버를 입력 신호로 사용하며, 수익을 차단하고 과도한 마감을 피하기 위해 후속 스톱 로스를 포함합니다.

전략 논리

빠른 EMA가 아래에서 느린 EMA를 넘을 때, 구매 신호가 생성됩니다. 빠른 EMA가 위에서 느린 EMA를 넘을 때, 판매 신호가 유발됩니다.

일단 입력되면, 전략은 실시간으로 가장 높은 최고치를 추적하고 현재 가격이 가장 높은 최고치보다 2% 떨어지면 수익을 잠금합니다.

이점 분석

  • 중장기 트렌드를 효과적으로 파악하기 위해 EMA의 트렌드 추적 및 신호 생성 능력을 활용합니다.
  • 대부분의 수익을 차단하고 수익을 완전히 삼키지 않도록 합니다.
  • 조정 가능한 EMA 매개 변수는 다른 시장 환경에 대응합니다.
  • 명확한 구매 및 판매 신호 규칙, 쉽게 실행

위험 분석

  • EMA는 뒤쳐지고, 단기 기회를 놓칠 수 있습니다.
  • 부적절한 후속 스톱 손실 거리 설정은 손실을 조기에 중지하거나 무효화 할 수 있습니다.
  • 시장과 매개 변수 불일치로 인해 과도한 거래 또는 불충분한 신호가 발생할 수 있습니다.

위험 해결 방법:

  • 적절한 EMA 매개 변수 조합을 선택
  • 스톱 손실 매개 변수를 테스트하고 평가
  • 시장 변동성 역동성에 맞춰 매개 변수를 조정합니다.

최적화 방향

  • 시장 변동성과 위험 욕구에 따라 후속 정지 거리를 동적으로 조정합니다.
  • 잘못된 신호를 줄이기 위해 다른 필터를 추가합니다.
  • EMA 기간 매개 변수를 최적화
  • 트렌드 상거래를 피하기 위해 트렌드 지표를 포함

결론

이 전략은 트렌드 식별과 위험 통제의 장점을 통합합니다. 매개 변수 조정 및 최적화로 다른 시장 유형 및 거래 도구에 적응 할 수 있으며 추가 테스트와 연습 가치가 있습니다.


/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-19 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("EMA Crossover with Trailing Stop-Loss", overlay=true)

fastEMA = ema(close, 9)
slowEMA = ema(close, 21)

// Entry conditions
longCondition = crossover(fastEMA, slowEMA)
shortCondition = crossunder(fastEMA, slowEMA)

// Trailing stop-loss calculation
var float trailingStop = na
var float highestHigh = na

if (longCondition)
    highestHigh := na
    trailingStop := na

if (longCondition and high > highestHigh)
    highestHigh := high

if (strategy.position_size > 0)
    trailingStop := highestHigh * (1 - 0.02)  // Adjust the trailing percentage as needed

// Execute trades
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)

// Apply trailing stop-loss to long positions
strategy.exit("Long", from_entry="Long", loss=trailingStop)

// Plot EMAs and Trailing Stop-Loss
plot(fastEMA, color=color.green, title="Fast EMA")
plot(slowEMA, color=color.red, title="Slow EMA")
plot(trailingStop, color=color.orange, title="Trailing Stop-Loss", linewidth=2)



더 많은