이중 이동 평균 교차 손절매 및 손절매 전략

EMA MACD KDJ ADX
생성 날짜: 2024-06-03 11:02:26 마지막으로 수정됨: 2024-06-03 11:02:26
복사: 0 클릭수: 626
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이중 이동 평균 교차 손절매 및 손절매 전략

개요

이 전략은 두 개의 서로 다른 주기의 지수 이동 평균 ((EMA) 의 교차를 거래 신호로 사용하며, 고정된 점의 정지 및 중지 시점을 설정합니다. 단기 EMA가 아래에서 위쪽으로 장기 EMA를 통과하면, 더 많은 포지션을 열고, 단기 EMA가 위쪽으로 아래로 장기 EMA를 통과하면, 포지션을 열고, 공백합니다. 거래 시 고정된 점의 정지 및 중지 시점을 설정하여 위험을 제어하고 이익을 잠금합니다.

전략 원칙

  1. 2개의 다른 주기의 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)