ATR 스톱 로스로 EMA 전략

저자:차오장, 날짜: 2023-12-11 16:00:09
태그:

img

전반적인 설명

이 전략은 EMA 황금 십자가를 사용하여 거래 신호를 생성합니다. 즉, 빠른 EMA 라인이 느린 EMA 라인의 위를 넘을 때 구매 신호가 생성되고 빠른 EMA 라인이 느린 EMA 라인의 아래를 넘을 때 판매 신호가 생성됩니다. 이는 전형적인 트렌드 다음 전략에 속합니다. 동시에 전략은 ATR 지표를 사용하여 수익을 보장하면서 위험을 제어하기 위해 동적 스톱 로스를 설정합니다.

전략 원칙

  1. 빠른 EMA 기간은 13이고 느린 EMA 기간은 48로 정의합니다.
  2. 빠른 EMA 라인이 느린 EMA 라인의 위를 넘을 때 구매 신호가 생성됩니다. 빠른 EMA 라인이 느린 EMA 라인의 아래를 넘을 때 판매 신호가 생성됩니다.
  3. ta.crossover와 ta.crossunder 함수를 사용하여 이동 평균의 황금 십자와 죽음의 십자를 결정합니다.
  4. 동적 스톱 손실을 계산하기 위해 ATR 표시기를 사용하십시오. 이것은 클로즈로부터 1.5 배의 ATR 거리에 있습니다.
  5. 직관적으로 색상 변경, 구매/판매 표시 및 중지 손실 라인을 통해 거래 신호 및 중지 손실 수준을 표시합니다.

이점 분석

  1. 신호는 EMA 황금 십자가와 죽음의 십자가를 기반으로 생성됩니다. 주요 시장 추세를 놓치지 않는 것을 방지하고 수익은 상당히 높습니다.
  2. ATR 트래일링 스톱 로스는 트렌드를 따르는 적당한 수익을 보장하면서 마감량을 조절하여 균형 잡힌 위험/이익 비율을 달성합니다.
  3. 직관적인 신호 표시 및 중지 손실 표시, 조작이 쉽고 대부분의 사람들에게 적합합니다.
  4. 몇 가지 조절 가능한 매개 변수, 쉽게 파악하고 최적화.

위험 분석

  1. 플래시 충돌은 스톱 손실을 유발할 수 있습니다.
  2. 빈번한 유효하지 않은 신호가 범위에 있는 시장에서 발생할 수 있습니다.
  3. 부적절한 매개 변수 설정은 지나치게 공격적인 엔트리 또는 느슨한 스톱 손실을 초래할 수 있습니다.
  4. EMA 매개 변수와 ATR 매개 변수는 적절히 최적화되어야 합니다.

해결책:

  1. 적당하게 ATR 곱셈을 풀어서 최근 최고치로부터 약간의 버퍼를 남겨주세요.
  2. 신호가 발생 한 후 확인 메커니즘을 고려하십시오. 예를 들어 가격 전 최고치를 깨는 것과 같은 것입니다.
  3. 매개 변수 최적화는 다양한 시장 조건을 고려해야 합니다.

최적화 방향

  1. 최적의 매개 변수를 찾기 위해 다양한 매개 변수 조합을 테스트합니다.
  2. 신호 품질을 향상시키기 위해 부피, 변동성 지표 등 신호 필터링을 위한 다른 지표를 추가하는 것을 고려하십시오.
  3. 주요 트렌드를 더 잘 파악하기 위해 주요 트렌드에 따라 EMA 매개 변수를 조정합니다.
  4. 트렌드 시장에서 스톱 라스 범위를 확장하기 위해 ATR 스톱 로스 멀티플리커를 동적으로 조정하는 것을 고려하십시오.
  5. 적응적 매개 변수 최적화를 위한 기계 학습 알고리즘을 통합합니다.

결론

이 전략은 비교적 간단하고 사용하기 쉽다. EMA 크로스오버를 기반으로 신호를 생성하고 트렌드를 따르며 위험을 효과적으로 제어하기 위해 ATR 트레일링 스톱 로스를 사용합니다. 일부 잘못된 신호가있을 수 있지만 주요 트렌드를 포착하는 데 강력한 기능을 가지고 있으며 수익률은 비교적 안정적입니다. 기본 양적 거래 전략으로 적합합니다. 매개 변수 최적화 및 기능 확장으로 개선 가능성이 크기도합니다.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © byee322

/// This strategy uses the EMA to generate buy and sell signals with a 1.5x ATR stop loss
//@version=5
strategy("EMA Strategy with ATR Stop Loss", overlay=true)

// Define the EMA lengths as input parameters
emaLength1 = input(13, "EMA Length 1")
emaLength2 = input(48, "EMA Length 2")

// Define the moving averages
ema1 = ta.ema(close, emaLength1)
ema2 = ta.ema(close, emaLength2)

// Buy signal: EMA 1 crosses above EMA 2
buy = ta.crossover(ema1, ema2)

// Sell signal: EMA 1 crosses below EMA 2
sell = ta.crossunder(ema1, ema2)

// Define the state variable
state = 0
state := buy ? 1 : sell ? -1 : nz(state[1])

// Change the color of the candles
color = state == 1 ? color.green : state == -1 ? color.red : na

// Plot the colored candles
plotcandle(open, high, low, close, color=color)

// Plot the signals on the chart with text labels
plotshape(buy, style=shape.triangleup, color=color.new(color.green, 50), location=location.belowbar, text="Buy")
plotshape(sell, style=shape.triangledown, color=color.new(color.red, 50), location=location.abovebar, text="Sell")

// Calculate the ATR
atrVal = ta.atr(14)

// Calculate the stop loss level for buy
stopLossBuy = buy ? close[1] - 1.5 * atrVal : na

// Calculate the stop loss level for sell
stopLossSell = sell ? close[1] + 1.5 * atrVal : na

// Plot the stop loss level for buy
plot(stopLossBuy,  color=color.new(color.green, 50), linewidth=3)

// Plot the stop loss level for sell
plot(stopLossSell, color=color.new(color.red, 50), linewidth=3)

if buy
    strategy.entry("Enter Long", strategy.long)
else if sell
    strategy.entry("Enter Short", strategy.short)

더 많은