EMA 기반 일중 스킬렛 거래 전략


생성 날짜: 2024-01-24 15:43:31 마지막으로 수정됨: 2024-01-24 15:43:31
복사: 0 클릭수: 724
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

EMA 기반 일중 스킬렛 거래 전략

요약

이 전략은 9일과 15일 지수 이동 평균을 계산하여, EMA 골드 포크와 데드 포크가 형성된 구매 및 판매 신호를 식별하여, 일간 단선 거래에 사용한다. 9EMA 상에서 15EMA를 뚫고, 가장 최근의 K 라인이 양선일 때 구매 신호를 생성한다. 9EMA 아래에서 15EMA를 뚫고, 가장 최근의 K 라인이 음선일 때 판매를 생성한다.

전략 원칙

  1. 9일 EMA와 15일 EMA를 계산해
  2. 가장 가까운 K 선의 기울기 성질을 식별하여 양선 또는 음선으로 판단합니다.
  3. 9EMA에 15EMA를 뚫고, 가장 가까운 K선이 양선일 때, 구매 신호를 생성한다
  4. 9EMA 아래 15EMA를 통과하고, 가장 가까운 K 선이 음선일 때, 판매 신호를 생성한다
  5. ATR 지표로 ATR 값을 계산하고 포지션을 보유할 때 스톱 라인을 그리는 방법

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 이중 EMA 지표 조합을 사용하여 중·단기 경향을 파악할 수 있습니다.
  2. K선 실체 방향 필터링 가짜 신호
  3. ATR의 동적 상쇄는 수익을 보장하면서 위험을 통제합니다.
  4. 짧은 시간 주기, 단선 가격 변동을 활용하여 일일 스킬렛 거래를 하는 데 적합
  5. 간단하고 실행하기 쉽습니다.

위험 분석

이 전략에는 위험도 있습니다.

  1. EMA 지표는 지연되어 일부 가격 변동을 놓칠 수 있습니다.
  2. 이중 EMA 평균값 회귀는 whipsaws 신호를 생성할 수 있다
  3. 하루 단편 거래는 가격 변동에 취약하다.
  4. 스톱패스 거리가 너무 작으면 쉽게 뚫을 수 있고, 너무 크면 수익 공간을 손상시킬 수 있습니다.

대책:

  1. 적당한 EMA 변수를 조정하여 평균선 주기를 줄입니다.
  2. MACD와 같은 다른 지표와 함께 필터링 신호
  3. 동적으로 중지 거리를 조정하고 중지 전략을 최적화합니다.

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. 다양한 EMA 변수 조합을 테스트하여 최적의 평균선 주기
  2. 다른 지표 판단을 추가하고 다중 요소 모델을 구축합니다.
  3. 시간영역 필터링, 특정 시간영역에서만 신호를 발송
  4. 변동률 지표와 함께 스톱 손실 거리를 조정합니다.
  5. 기계 학습 기술을 이용한 동적 최적화 매개 변수

요약하다

이 전략은 트렌드 방향을 판단하는 이중 EMA 지표와 K선 엔티티 필터 신호를 통합하고, ATR 동적 스톱로스를 적용하여, 간단한 실용적인 일일 스킬렛 거래 전략이다. 파라미터 최적화 및 다중 요소 조합을 통해 전략의 안정성과 수익성을 더욱 향상시킬 수 있다.

전략 소스 코드
/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

// Input parameters
ema9_length = input(9, title="9 EMA Length")
ema15_length = input(15, title="15 EMA Length")

// Calculate EMAs
ema9 = ta.ema(close, ema9_length)
ema15 = ta.ema(close, ema15_length)

// Plot EMAs on the chart
plot(ema9, color=color.blue, title="9 EMA")
plot(ema15, color=color.red, title="15 EMA")

// Identify Bullish and Bearish candles
bullish_candle = close > open
bearish_candle = close < open

// Bullish conditions for Buy Signal
buy_condition = ta.crossover(close, ema9) and ema15 < ema9 and bullish_candle

// Bearish conditions for Sell Signal
sell_condition = ta.crossunder(close, ema9) and ema15 > ema9 and bearish_candle

// Plot Buy and Sell signals
plotshape(series=buy_condition, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(series=sell_condition, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)

// Optional: Add stop-loss levels
atr_length = input(14, title="ATR Length for Stop Loss")
atr_multiplier = input(1.5, title="ATR Multiplier for Stop Loss")

atr_value = ta.atr(atr_length)
stop_loss_level = strategy.position_size > 0 ? close - atr_multiplier * atr_value : close + atr_multiplier * atr_value
plot(stop_loss_level, color=color.gray, title="Stop Loss Level", linewidth=2)

// Strategy rules
if (buy_condition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Exit Buy", from_entry="Buy", loss=stop_loss_level)

if (sell_condition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Exit Sell", from_entry="Sell", loss=stop_loss_level)