이중 EMA 골든 크로스 장기 전략

저자:차오장, 날짜: 2024-02-23 12:17:40
태그:

img

전반적인 설명

듀얼 EMA 골든 크로스 롱 라인 전략 (Dual EMA Golden Cross Long Line strategy) 은 롱 포지션만을 개설하는 트렌드 추적 전략이다. 이 전략은 단기 EMA, 중기 EMA 및 장기 EMA라는 세 가지 이동 평균을 사용한다. 구체적인 입시 규칙은: 가격이 장기 EMA 위에 있을 때 오픈 롱, 단기 EMA가 중기 EMA를 넘어서 골든 크로스를 형성한다.

전략 논리

  1. 단기 EMA, 중기 EMA 및 장기 EMA를 세 개의 구성 가능한 EMA 기간을 사용하여 계산합니다.

  2. 가격이 장기 EMA를 넘으면 현재 상승 추세임을 증명합니다.

  3. 단기 EMA가 중간 EMA를 밑에서 넘어서 황금 십자가를 형성하면 상승 추세가 강화되고 있음을 증명합니다.

  4. 위의 두 조건이 동시에 충족되면, 긴 문을 열어요.

이점 분석

이 전략의 가장 큰 장점은 단기 시장 소음으로 오해받지 않도록 다기기 EMA의 결합 판단을 사용하여 트렌드를 효과적으로 식별 할 수 있다는 것입니다. 동시에 스톱 로스는 손실을 특정 범위 내에서 유지하는 위험 제어 수단으로 구성됩니다.

위험 분석

이 전략의 주요 위험은 긴 지점이다. 시장이 역전되면 지점을 제 시간에 닫을 수 없으며 손실이 증가할 위험이 있습니다. 또한, EMA 기간 설정이 부적절하면 빈번한 거래 및 거래 비용을 증가시킬 수 있습니다.

최적화 방향

  1. 포지션 사이즈 관리를 강화하여 마감률이 일정 비율에 도달하면 포지션을 줄이십시오.

  2. 새로운 최고치를 돌파할 때 스톱 로스 설정을 높여

  3. 거래 빈도를 줄이기 위해 EMA의 기간 매개 변수를 최적화합니다.

요약

이 전략은 전반적으로 안정적인 고품질의 장기 보유 전략입니다. 적절한 위험 통제와 함께 트렌드를 식별 할 수있는 강력한 능력을 가지고 있습니다. 추가 최적화로 더 나은 안정적인 수익을 얻을 것으로 예상됩니다.


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

//@version=5
strategy("Strategia EMA Long con Opzioni di Uscita Avanzate e Periodi EMA Personalizzabili", overlay=true)

// Parametri di input generali
useVolatilityFilter = input.bool(true, title="Usa Filtro di Volatilità")
atrPeriods = input.int(14, title="Periodi ATR", minval=1)
atrMultiplier = input.float(1.5, title="Moltiplicatore ATR", step=0.1)
useTrailingStop = input.bool(true, title="Usa Trailing Stop")
trailingStopPercent = input.float(15.0, title="Percentuale Trailing Stop", minval=0.1, step=0.1) / 100.0
useEMAExit = input.bool(true, title="Usa Uscita EMA Corta incrocia EMA Media al Ribasso")

// Parametri di input per periodi EMA personalizzabili
emaLongTermPeriod = input.int(200, title="Periodo EMA Lungo Termine", minval=1)
emaShortTermPeriod = input.int(5, title="Periodo EMA Breve Termine", minval=1)
emaMidTermPeriod = input.int(10, title="Periodo EMA Medio Termine", minval=1)

// Calcolo delle EMA con periodi personalizzabili
longTermEMA = ta.ema(close, emaLongTermPeriod)
shortTermEMA = ta.ema(close, emaShortTermPeriod)
midTermEMA = ta.ema(close, emaMidTermPeriod)

// Calcolo ATR e soglia di volatilità
atr = ta.atr(atrPeriods)
atrThreshold = ta.sma(atr, atrPeriods) * atrMultiplier

// Condizione di entrata
enterLongCondition = close > longTermEMA and shortTermEMA > midTermEMA
enterLong = useVolatilityFilter ? (enterLongCondition and atr > atrThreshold) : enterLongCondition

if (enterLong)
    strategy.entry("Enter Long", strategy.long)

// Tracking del prezzo di entrata e del massimo prezzo raggiunto per il trailing stop
var float entryPrice = na
var float maxPriceSinceEntry = na
if (strategy.position_size > 0)
    maxPriceSinceEntry := math.max(na(maxPriceSinceEntry) ? high : maxPriceSinceEntry, high)
    entryPrice := na(entryPrice) ? strategy.position_avg_price : entryPrice
else
    maxPriceSinceEntry := na
    entryPrice := na

// Calcolo del valore del trailing stop
trailStopPrice = maxPriceSinceEntry * (1 - trailingStopPercent)

// Implementazione delle condizioni di uscita
exitCrossUnder = close < longTermEMA
emaCross = ta.crossunder(shortTermEMA, midTermEMA)

if (useEMAExit and emaCross)
    strategy.close("Enter Long", comment="EMA Cross Exit")

if (useTrailingStop)
    strategy.exit("Trailing Stop", from_entry="Enter Long", stop=trailStopPrice)

// Visualizzazioni
plot(longTermEMA, color=color.yellow, title="EMA Lungo Termine")
plot(shortTermEMA, color=color.blue, title="EMA Breve Termine")
plot(midTermEMA, color=color.green, title="EMA Medio Termine")
plot(useVolatilityFilter ? atrThreshold : na, color=color.purple, title="ATR Threshold")
plot(strategy.position_size > 0 ? trailStopPrice : na, color=color.orange, title="Trailing Stop Value", style=plot.style_linebr)

더 많은