리소스 로딩... 로딩...

EMA의 크로스오버 모멘텀 스칼핑 전략

저자:차오장, 날짜: 2024-06-14 15:24:46
태그:EMASMA

img

전반적인 설명

이 전략은 시장의 단기 동력을 포착하기 위해 서로 다른 기간을 가진 두 개의 기하급수적인 이동 평균 (EMA) 의 교차 신호를 사용합니다. 빠른 EMA가 아래에서 느린 EMA를 넘어서면 긴 포지션을 열고 빠른 EMA가 위에서 느린 EMA를 넘어서면 짧은 포지션을 열고 있습니다. 스톱 로스 (stop loss) 및 영리 레벨은 위험을 제어하고 이익을 잠금하도록 설정됩니다. 이것은 동력 효과에 기반한 간단하고 고전적인 단기 거래 전략입니다.

전략 원칙

  1. 서로 다른 기간을 가진 두 개의 EMA를 계산하고, 시장 특성과 개인 선호도에 따라 조정할 수 있는 9 및 21 기간의 기본 매개 변수를 계산합니다.
  2. 빠른 EMA가 밑에서 느린 EMA를 넘으면 긴 신호를 생성하고 긴 포지션을 개척합니다.
  3. 빠른 EMA가 위에서 느린 EMA 아래로 넘어가면, 짧은 신호를 생성하고 짧은 포지션을 개척합니다.
  4. 포지션을 열 때 입시 가격과 리스크 선호도에 따라 해당 스톱 로스 및 리프터스 가격을 설정합니다.
  5. 가격이 수익을 취하거나 손실을 멈추는 수준에 도달하면 현재 포지션을 닫고 다음 거래 신호가 나타날 때까지 기다립니다.

전략적 장점

  1. 간단하고 사용하기 쉬운 전략 논리는 명확하고 다른 기간의 두 개의 EMA만으로 구현 할 수 있습니다. 이것은 매우 간단하고 이해하기 쉽습니다. 초보자가 빠르게 시작할 수 있습니다.
  2. 단기 거래에 적합: EMA는 가격 변화에 민감하며 단기 시장 추세에 신속하게 반응할 수 있으므로 단기 거래자가 시장에서 단기 변동 기회를 잡기 위해 매우 적합합니다.
  3. 트렌드 추적: EMA는 추후 지표이지만 또한 매우 좋은 트렌드 추적 지표입니다. EMA 크로스오버 전략은 거래자가 트렌드 방향에 따라 거래하도록 도울 수 있습니다.
  4. 통제 가능한 위험: 전략은 스톱 로즈와 트레이프 수익의 비율을 설정하는데, 위험/이익 비율이 매우 높지는 않지만 시장 추세가 불분명하거나 변동성이 높을 때 어느 정도의 보호를 제공하고 계좌 파업 위험을 줄일 수 있습니다.

전략 위험

  1. 빈번한 거래: 장기 전략과 비교하면 이 전략은 거래 빈도가 높고 시장 변동 중에 포지션의 빈번한 개점과 폐쇄가 발생할 수 있어 거래 비용을 크게 증가시키고 계좌 자금에 어느 정도의 마찰을 초래할 수 있습니다.
  2. 매개 변수 최적화: EMA 매개 변수 선택은 전략 성과에 큰 영향을 미치며 최적 매개 변수는 시장 조건의 변화로 인해 유효하지 않을 수 있으므로 매개 변수를 정기적으로 확인하고 조정해야합니다.
  3. 리스크-상금 비율 위험: 현재 샘플 코드에서 스톱 로스 및 취득 설정은 고정 비율이며 리스크-상금 비율은 실제로 매우 이상적이지 않습니다. 일부 시장 조건에서 전략은 더 많은 연속 손실을 가질 수 있습니다.
  4. 트렌드 셔플링: 시장이 변동에서 트렌드로 전환하는 초기 단계에서 전략은 방향 인식의 지연으로 인해 연속적인 손실을 겪을 수 있습니다.

전략 최적화 방향

  1. 스톱 로스 및 트레이프 로프 최적화: 시장 변동성 특성에 따라 전략의 위험/이익 비율 및 위험/이익률을 향상시키기 위해 ATR, 비율 후속 스톱 로스 등을 사용하는 것과 같은 더 적절한 스톱 로스 및 트레이프 로프 설정 방법을 선택하십시오.
  2. 변동적인 시장 조건을 필터링합니다. 다른 기술적 지표 또는 부피 가격 지표를 사용하여 EMA 크로스오버 신호를 두 번 확인합니다. 예를 들어 ADX가 포지션을 열기 전에 특정 임계치를 넘을지 판단하여 빈번한 거래의 위험을 줄이십시오.
  3. 포지션 관리 최적화: 자본 변동을 줄이기 위해 점진적으로 포지션을 구축하고 트렌드가 명확할 때 포지션을 증가시키고 변동할 때 포지션을 줄이는 것을 고려하십시오.
  4. 서로 다른 기간을 결합합니다. 다양한 매개 변수와 여러 EMA의 조합을 사용하여 중장기 및 단기 EMA 크로스오버를 입시 신호로 사용하고 장기 EMA를 트렌드 필터로 사용하여 트렌드 인식의 정확성을 향상시키는 것과 같은 시그널을 생성합니다.
  5. 거시 경제 분석과 통합: 전략과 거시 경제 분석을 결합하고 거시 상황을 명확히 할 때만 전략을 사용하여 중장기 성과를 향상시킵니다.

요약

EMA 크로스오버 모멘텀 스칼핑 전략은 초보자가 빠르게 연습하고 양적 거래 프로세스를 익숙해지기 위해 적합하고 사용하기 쉽고 간단한 단기 거래 전략입니다. 전략은 단기 모멘텀 효과를 캡처하고 시장 트렌드 방향을 따르며 위험을 제어하기 위해 일정한 비율의 스톱 로즈와 토크 이윤을 설정 할 수 있습니다. 그러나 전략에는 빈번한 거래, 낮은 위험-이익 비율 및 후퇴 트렌드 인식과 같은 위험도 있습니다. 전략의 위험-이익 및 안정성을 향상시키기 위해 전략의 위험-이익 및 안정성을 향상시키기 위해 전략이 최적화되고 개선 될 수 있습니다.


/*backtest
start: 2023-06-08 00:00:00
end: 2024-06-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

// Parameters
length_fast = input.int(9, title="Fast EMA Length", minval=1)
length_slow = input.int(21, title="Slow EMA Length", minval=1)
stop_loss_pct = 0.7 // Risk 0.7% of capital
take_profit_pct = 0.5 // Target 0.5% of capital

// Calculate EMAs
ema_fast = ta.ema(close, length_fast)
ema_slow = ta.ema(close, length_slow)

// Plot EMAs
plot(ema_fast, color=color.blue, title="Fast EMA")
plot(ema_slow, color=color.red, title="Slow EMA")

// Trading logic
long_condition = ta.crossover(ema_fast, ema_slow)
short_condition = ta.crossunder(ema_fast, ema_slow)

// Calculate stop loss and take profit levels
stop_loss_long = strategy.position_avg_price * (1 - stop_loss_pct / 100)
take_profit_long = strategy.position_avg_price * (1 + take_profit_pct / 100)

stop_loss_short = strategy.position_avg_price * (1 + stop_loss_pct / 100)
take_profit_short = strategy.position_avg_price * (1 - take_profit_pct / 100)

// Enter and exit trades
if (long_condition)
    strategy.entry("Long", strategy.long)
if (short_condition)
    strategy.entry("Short", strategy.short)

// Exit long trades
if (strategy.position_size > 0)
    strategy.exit("Take Profit Long", "Long", limit=take_profit_long)
    strategy.exit("Stop Loss Long", "Long", stop=stop_loss_long)

// Exit short trades
if (strategy.position_size < 0)
    strategy.exit("Take Profit Short", "Short", limit=take_profit_short)
    strategy.exit("Stop Loss Short", "Short", stop=stop_loss_short)


관련

더 많은