더블 EMA 골든 크로스 장기 전략


생성 날짜: 2024-02-23 12:17:40 마지막으로 수정됨: 2024-02-23 12:17:40
복사: 0 클릭수: 656
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

더블 EMA 골든 크로스 장기 전략

개요

이중 EMA 골드 크로스 긴 라인 전략은 다중 포지션을 개설하는 트렌드 추적 전략이다. 이 전략은 동시에 단기 EMA, 중기 EMA 및 장기 EMA의 세 가지 이동 평균을 사용한다. 구체적으로 진입 규칙은: 가격이 장기 EMA보다 높으며, 단기 EMA는 아래에서 중기 EMA를 뚫고 금이 크로스를 구성할 때 포지션을 개설한다.

전략 원칙

  1. 세 개의 EMA 사이클을 사용하여 단기 EMA, 중기 EMA 및 장기 EMA를 각각 계산할 수 있습니다.

  2. 만약 가격이 장기 EMA보다 높다면, 현재 다단계 트렌드에 있다는 것을 증명한다.

  3. 만약 단기 EMA가 하위에서 중기 EMA를 뚫고 골든 크로스 (Gold Cross) 를 형성한다면, 이는 다면 경향이 강화되는 것을 추가적으로 확인한다.

  4. 상술한 두 가지 조건이 동시에 충족되면, 더 많은 돈을 벌 수 있다.

우위 분석

이 전략의 가장 큰 장점은 동향을 효과적으로 식별하고, 다주기 EMA와 결합된 판단을 적용하여, 단기 시장 소음으로 오해되는 것을 피하는 것입니다. 또한, 위험 제어 수단으로서의 손실을 일정 범위 내에서 제어 할 수 있도록 중지 손실을 구성합니다.

위험 분석

이 전략의 주요 위험은 다수 포지션이다. 시장 상황이 역전될 때, 적시에 포지션을 닫지 못해 손실이 확대될 위험이 있다. 또한, EMAS 주기 설정이 부적절하면 거래가 빈번해져서 거래 비용이 증가한다.

최적화 방향

  1. 포지션 수를 관리하는 것을 늘리고, 철수할 때 포지션을 낮추는 것을 한다.

  2. 새로운 고단절 손해배상 설정을 추가한다.

  3. EMAS 주기 변수를 최적화하고 거래 빈도를 낮추십시오.

요약하다

이 전략은 전체적으로 안정적인 우수한 긴 선 지주 전략이다. 경향을 식별하는 능력이 강하며, 위험은 통제되어 있다. 추가적인 최적화를 통해 더 나은 안정적인 수익을 얻을 수 있다.

전략 소스 코드
/*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)