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

이중 이동 평균 크로스오버 스톱 손실 및 수익 전략

저자:차오장, 날짜: 2024-06-03 11:02:26
태그:EMAMACDKDJADX

img

전반적인 설명

이 전략은 상거래 신호로 서로 다른 기간을 가진 두 개의 기하급수적인 이동 평균 (EMA) 의 교차를 사용하여 고정 포인트 스톱 손실을 설정하고 수익 수준을 취합니다. 단기 EMA가 장기 EMA를 넘을 때 긴 포지션을 개척합니다. 단기 EMA가 장기 EMA를 넘을 때 짧은 포지션을 개척합니다. 전략은 위험을 제어하고 이익을 잠금하기 위해 고정 포인트 스톱 손실을 설정하고 수익 수준을 취합니다.

전략 원칙

  1. 서로 다른 기간을 가진 두 개의 EMA를 계산합니다. 5 기간과 200 기간을 기본으로 합니다.
  2. 5주기 EMA가 200주기 EMA를 넘으면 긴 신호를 생성하고 5주기 EMA가 200주기 EMA를 넘으면 짧은 신호를 생성합니다.
  3. 포지션을 열고 나면 스톱 로스 포인트를 설정하고 (디폴트 50포인트) 수익 포인트를 취합니다 (디폴트 200포인트).
  4. 가격이 수익을 취하거나 손실을 멈추는 수준에 도달하거나 200 거래 기간 동안 포지션을 보유했을 때 포지션을 닫습니다.
  5. 차트 볼륨에 따라 수익을 취하고 손실을 멈추는 지점을 조정하십시오.

전략적 장점

  1. 간단하고 이해하기 쉽다: 전략 논리는 명확하고 이해하기 쉽고 구현하기 쉽습니다.
  2. 트렌드 추적: EMA의 트렌드 특성을 활용하여 시장 트렌드를 효과적으로 파악합니다.
  3. 리스크 제어: 고정된 스톱 로스를 설정하면 단일 거래의 리스크를 효과적으로 제어할 수 있습니다.
  4. 유연성: 수익을 취하고 손실을 멈추는 지점은 시장 변동성과 개인 위험 선호도에 따라 조정 될 수 있습니다.

전략 위험

  1. 잘못된 신호: EMA 크로스오버는 잘못된 신호를 생성하여 거래와 자본 손실이 빈번하게 발생할 수 있습니다.
  2. 트렌드 지연: EMA는 지연 지표이며 트렌드가 형성된 후에야 신호를 생성 할 수 있으며 가장 좋은 진입 기회를 놓칩니다.
  3. 범위에 제한된 시장: 범위에 제한된 시장에서 빈번한 EMA 크로스오버는 연속적인 손실 거래를 초래할 수 있습니다.
  4. 고정점 스톱 손실: 고정점 스톱 손실은 시장 변동의 변화에 적응하지 못할 수 있으며, 이에 따라 적절하지 않은 스톱 손실 수준이 발생할 수 있습니다.

전략 최적화 방향

  1. 더 많은 지표를 도입: 신호 신뢰성을 향상시키기 위해 MACD, RSI 등과 같은 다른 기술 지표와 결합하십시오.
  2. 매개 변수 최적화: EMA 기간, 수익점 및 스톱 로스 포인트와 같은 매개 변수를 최적화하여 전략 성과를 향상시킵니다.
  3. 동적 스톱 로스: 시장 변동에 더 잘 적응하기 위해 시장 변동성에 따라 동적으로 스톱 로스 포인트를 조정합니다.
  4. 포지션 관리: 리스크 조정 수익률을 향상시키기 위해 위험 기반 포지션 크기 등 포지션 관리 규칙을 도입합니다.
  5. 필터: 신호 품질을 향상시키기 위해 거래량, 가격 패턴 등과 같은 거래 신호 필터 조건을 추가합니다.

요약

이중 이동 평균 크로스오버 스톱 로스 앤 트레이프 전략은 EMA 크로스오버를 통해 트레이딩 신호를 생성하면서 일정한 지점 스톱 로스를 설정하고 리스크를 제어하기 위해 수익 수준을 취하는 간단하고 사용하기 쉬운 거래 전략이다. 전략의 장점은 명확한 논리, 쉬운 구현 및 시장 트렌드를 효과적으로 포착하는 능력에 있다. 그러나 잘못된 신호, 트렌드 지연, 범위 제한 시장 및 일정한 스톱 로스 수준과 같은 위험도 직면한다. 최적화 방향은 더 많은 지표, 최적화 매개 변수, 동적 스톱 로스, 위치 관리 및 필터를 추가하는 것을 포함한다. 트레이더는 전략의 안정성과 수익성을 향상시키기 위해 자신의 위험 선호도와 시장 특성에 따라 전략을 최적화하고 조정할 수 있다.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=5
strategy("EMA5 Cross EAM200 && SL/TP 50 and 200 Point Target", overlay=true)

// Define input parameters for EMA lengths
ema_5 = input.int(5, title="Fast EMA Length")
ema_200 = input.int(200, title="Slow EMA Length")

// Define input parameters for stop loss and profit target in points
stopLossPoints = input.float(50, title="Stop Loss (Points)")
profitTargetPoints = input.float(200, title="Profit Target (Points)")

// Calculate EMAs
price = close
emafast = ta.ema(price, ema_5)
emaslow = ta.ema(price, ema_200)

// Plot EMAs on chart
plot(emafast, title="5-period EMA", color=color.black)
plot(emaslow, title="200-period EMA", color=color.blue)

// Extra lines if needed
ema_13 = input.int(13, title="13 EMA")
ema_13_line = ta.ema(price, ema_13)
plot(ema_13_line, title="13-period EMA", color=color.rgb(156, 39, 176, 90))

ema_20 = input.int(20, title="20 EMA")
ema_20_line = ta.ema(price, ema_20)
plot(ema_20_line, title="20-period EMA", color=color.red)


// Define entry conditions
longCondition = ta.crossover(emafast, emaslow)
shortCondition = ta.crossunder(emafast, emaslow)

// Counter to keep track of the number of bars since the entry
var int barCount = na

// Reset counter and enter long trade
if (longCondition)
    strategy.entry("Long", strategy.long, comment="Long")
    barCount := 0

// Reset counter and enter short trade
if (shortCondition)
    strategy.entry("Short", strategy.short, comment="Short")
    barCount := 0

// Increment counter if in trade
if (strategy.opentrades > 0)
    barCount += 1

// Calculate entry price
entryPrice = strategy.position_avg_price

// Exit long trade if stop loss, profit target hit, or 200 points have been reached
if (strategy.position_size > 0)
    strategy.exit("Take Profit/Stop Loss", "Long", stop=entryPrice - stopLossPoints, limit=entryPrice + profitTargetPoints)

// Exit short trade if stop loss, profit target hit, or 200 points have been reached
if (strategy.position_size < 0)
    strategy.exit("Take Profit/Stop Loss", "Short", stop=entryPrice + stopLossPoints, limit=entryPrice - profitTargetPoints)


관련

더 많은