빠른 EMA와 느린 EMA 모멘텀 돌파 전략

저자:차오장, 날짜: 2023-12-27 16:35:04
태그:

img

전반적인 설명

이 전략은 빠른 EMA와 느린 EMA를 계산하여 구매 및 판매 신호를 생성하고, 빠른 EMA가 느린 EMA를 넘을 때 길게 이동하고, 빠른 EMA가 느린 EMA를 넘을 때 짧게 이동하여 수익을 창출합니다. 이 전략은 모멘텀 추적 전략에 속합니다.

전략 원칙

이 전략은 주로 EMA 지표의 매끄러운 개념을 활용합니다. EMA는 기하급수적인 이동 평균을 의미합니다. 이는 미래의 가격 추세를 예측하기 위해 역사적 가격 추세를 사용하는 기술적 지표입니다. EMA 지표는 빠른 라인과 느린 라인으로 구성되며, 빠른 라인은 최근 가격 변화에 더 민감하며 느린 라인은 역사적 가격 변화에 더 민감합니다. 단기 가격 변동이 특정 수준을 초과하면 빠른 라인은 느린 라인의 위 또는 아래를 넘어서 구매 또는 판매 신호를 생성합니다.

특히, 이 전략은 37의 길이의 EMA를 빠른 라인으로, 그리고 175의 길이의 EMA를 느린 라인으로 선택한다. 빠른 라인이 느린 라인의 위를 넘어서면 구매 신호를 생성하고 빠른 라인이 느린 라인의 아래를 넘어서면 판매 신호를 생성한다. 빠른 라인이 빠른 라인의 아래를 넘어서면 스톱 로스를 실현한다.

전략적 장점

이 EMA의 크로스오버 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 간단한 원칙, 이해하기 쉽고 실행하기 쉬운
  2. 시장의 단기 동향을 효과적으로 파악할 수 있습니다.
  3. 상대적으로 낮은 회수 위험
  4. EMA 기간은 다른 제품에 적응하도록 조정할 수 있습니다.

전략 위험

이 전략은 또한 몇 가지 잠재적인 위험을 가지고 있습니다.

  1. 잘못된 신호를 생성하는 경향이 있습니다. 너무 일찍 또는 너무 늦게 들어갈 수 있습니다.
  2. EMA 지표의 지연, 주요 전환점을 놓칠 수 있습니다.
  3. 범위를 제한하는 시장에서 쉽게 멈출 수 있습니다
  4. 백테스팅 과잉 적합성 위험, 라이브 거래의 의심스러운 효과

이러한 위험을 줄이기 위해, 우리는 입력 시기를 최적화하고, 스톱 손실 수준을 설정하고, 필터링을 위한 다른 지표와 결합하는 것을 고려할 수 있습니다.

전략 최적화 방향

이 전략은 더 이상 최적화 할 수 있습니다.

  1. 다양한 제품 특성에 적응하기 위해 EMA 기간 매개 변수를 최적화
  2. 시장 변동 중에 잘못 입력되는 것을 피하기 위해 볼륨 지표 필터를 추가합니다.
  3. 이동 중지 손실을 설정, 트렌드에 따라 점차적으로 중지 손실 수준을 조정
  4. 변동성 지표와 결합하여 시장 변동성에 기초한 위치 크기를 동적으로 조정합니다.

요약

일반적으로,이 간단한 EMA 크로스오버 전략은 초보자가 이해하기 쉽다. 그러나 실제 효과는 실제 검증이 필요하며, 투자자는 또한 그것을 사용할 때 백테스트 오버 피팅의 위험을 인식해야합니다. 매개 변수를 최적화하고 지표를 결합함으로써이 전략의 안정성과 실질적인 효과를 더욱 향상시킬 수 있습니다.


/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © umerhafeez37733

//@version=5
strategy("EMA Crossover Strategy", overlay=true)

// Input for EMA lengths
fastEmaLength = input(37, title="Fast EMA Length")
slowEmaLength = input(370, title="Slow EMA Length")

// Calculate EMAs
fastEma = ta.ema(close, fastEmaLength)
slowEma = ta.ema(close, slowEmaLength)

// Plot EMAs on the chart
plot(fastEma, title="Fast EMA", color=color.blue)
plot(slowEma, title="Slow EMA", color=color.red)

// Buy condition: Fast EMA crosses above Slow EMA
buyCondition = ta.crossover(fastEma, slowEma)

// Sell condition: Fast EMA crosses below Slow EMA
sellCondition = ta.crossunder(fastEma, slowEma)

// Plot Buy and Sell signals on the chart
plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)

// Execute strategy
strategy.entry("Buy", strategy.long, when=buyCondition)
strategy.close("Buy", when=sellCondition)


더 많은