듀얼 EMA 골든 크로스 롱 라인 전략 (Dual EMA Golden Cross Long Line strategy) 은 롱 포지션만을 개설하는 트렌드 추적 전략이다. 이 전략은 단기 EMA, 중기 EMA 및 장기 EMA라는 세 가지 이동 평균을 사용한다. 구체적인 입시 규칙은: 가격이 장기 EMA 위에 있을 때 오픈 롱, 단기 EMA가 중기 EMA를 넘어서 골든 크로스를 형성한다.
단기 EMA, 중기 EMA 및 장기 EMA를 세 개의 구성 가능한 EMA 기간을 사용하여 계산합니다.
가격이 장기 EMA를 넘으면 현재 상승 추세임을 증명합니다.
단기 EMA가 중간 EMA를 밑에서 넘어서 황금 십자가를 형성하면 상승 추세가 강화되고 있음을 증명합니다.
위의 두 조건이 동시에 충족되면, 긴 문을 열어요.
이 전략의 가장 큰 장점은 단기 시장 소음으로 오해받지 않도록 다기기 EMA의 결합 판단을 사용하여 트렌드를 효과적으로 식별 할 수 있다는 것입니다. 동시에 스톱 로스는 손실을 특정 범위 내에서 유지하는 위험 제어 수단으로 구성됩니다.
이 전략의 주요 위험은 긴 지점이다. 시장이 역전되면 지점을 제 시간에 닫을 수 없으며 손실이 증가할 위험이 있습니다. 또한, EMA 기간 설정이 부적절하면 빈번한 거래 및 거래 비용을 증가시킬 수 있습니다.
포지션 사이즈 관리를 강화하여 마감률이 일정 비율에 도달하면 포지션을 줄이십시오.
새로운 최고치를 돌파할 때 스톱 로스 설정을 높여
거래 빈도를 줄이기 위해 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)