Estrategia a largo plazo de cruce dorado con doble EMA


Fecha de creación: 2024-02-23 12:17:40 Última modificación: 2024-02-23 12:17:40
Copiar: 0 Número de Visitas: 656
1
Seguir
1617
Seguidores

Estrategia a largo plazo de cruce dorado con doble EMA

Descripción general

La estrategia de la línea larga de doble EMA en oro es una estrategia de seguimiento de tendencias que solo abre posiciones de más de una cabeza. La estrategia utiliza al mismo tiempo tres medias móviles de EMA a corto plazo, EMA a medio plazo y EMA a largo plazo.

Principio de estrategia

  1. Se puede configurar el uso de tres ciclos de EMA para calcular el EMA a corto plazo, el EMA a medio plazo y el EMA a largo plazo.

  2. Si el precio está por encima de la EMA a largo plazo, se demuestra que el precio se encuentra en una tendencia intermedia.

  3. Si la EMA a corto plazo atraviesa la EMA intermedia desde abajo, formando un cruce dorado, se confirma aún más el fortalecimiento de la tendencia múltiple.

  4. Cuando se cumplen las dos condiciones anteriores, se hace más.

Análisis de las ventajas

La mayor ventaja de esta estrategia es la capacidad de identificar de manera efectiva las tendencias, combinar el juicio con EMAs de varios períodos y evitar ser engañados por el ruido del mercado a corto plazo. Al mismo tiempo, la configuración de stop loss como medio de control de riesgo permite controlar los pérdidas en un cierto rango.

Análisis de riesgos

El principal riesgo de esta estrategia reside en las posiciones de más de un jugador. La imposibilidad de cerrar las posiciones a tiempo cuando el mercado se invierte, lo que conlleva el riesgo de pérdidas ampliadas. Además, la configuración inadecuada del ciclo EMAS también puede conducir a operaciones frecuentes y aumentar los costos de transacción.

Dirección de optimización

  1. Aumentar la gestión de la cantidad de posiciones y reducir las posiciones cuando el retiro alcanza una cierta proporción.

  2. Se ha añadido una nueva configuración de alto deterioro.

  3. Optimización de los parámetros del ciclo EMAS y reducción de la frecuencia de las transacciones.

Resumir

Esta estrategia es una estrategia general de mantenimiento de posiciones de línea larga de calidad estable. La capacidad de identificar tendencias es fuerte y el riesgo está controlado. Se espera obtener mejores ganancias estables con una optimización adicional.

Código Fuente de la Estrategia
/*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)