En la carga de los recursos... Cargando...

Tendencia siguiendo la estrategia basada en el cruce de la EMA

El autor:¿ Qué pasa?, Fecha: 2024-02-22 13:59:07
Las etiquetas:

img

Resumen general

Esta estrategia identifica la dirección de la tendencia del mercado a través del cruce de líneas de EMA rápidas y lentas, y opera a lo largo de la tendencia.

Estrategia lógica

La estrategia calcula la EMA rápida (i_shortTerm) y la EMA lenta (i_longTerm) en función de los parámetros de entrada. Cuando la EMA a corto plazo cruza por encima de la EMA a largo plazo (goLongCondition1) y el precio está por encima de la EMA a corto plazo (goLongCondition2), entra en posición larga. Cuando el precio se rompe por debajo de la EMA a corto plazo (exitCondition2), cierra la posición.

La estrategia se basa en la cruz de oro de las líneas EMA para determinar la tendencia principal del mercado y comerciar a lo largo de la tendencia. Cuando la EMA a corto plazo cruza por encima de la EMA a largo plazo, indica una tendencia alcista; cuando el precio está por encima de la EMA a corto plazo, indica que la tendencia alcista está en marcha, así que vaya largo. Cuando el precio cae por debajo de la EMA a corto plazo, indica una inversión de tendencia, por lo que cierra la posición inmediatamente.

Análisis de ventajas

Las principales ventajas de esta estrategia son las siguientes:

  1. Utilizar el cruce de la EMA para identificar las principales tendencias del mercado, evitar las fluctuaciones a corto plazo.

  2. Sensibilidad ajustable en la detección de tendencias mediante parámetros de EMA rápida y lenta.

  3. Lógica simple y clara, fácil de entender e implementar, adecuada para principiantes en el comercio de cantidades.

  4. Parámetros personalizables de los períodos de EMA para diferentes productos y mercados.

  5. Control eficaz del riesgo mediante stop loss cuando el precio rompe la línea EMA.

Análisis de riesgos

También hay algunos riesgos:

  1. Las señales de cruce de la EMA tardías pueden causar pérdidas durante la inversión de tendencia.

  2. Una falsa ruptura por encima de la EMA a corto plazo puede causar entradas fallidas.

  3. La configuración incorrecta de parámetros paramédicos puede socavar el rendimiento de la estrategia.

  4. El rendimiento depende en gran medida de las condiciones del mercado y no es adecuado para todos los productos y períodos.

Las medidas de gestión de riesgos correspondientes:

  1. Optimizar los parámetros de la EMA para una mejor sensibilidad a las inversiones.

  2. Añadir otros indicadores técnicos para filtrar las señales de entrada.

  3. Debug y optimización continuas de parámetros para diferentes mercados.

  4. Comprender plenamente las condiciones de mercado aplicables antes de aplicar la estrategia.

Direcciones de optimización

La estrategia se puede optimizar aún más en los siguientes aspectos:

  1. Añadir otros indicadores como MACD y KD para filtrar las señales de entrada.

  2. Implementar un stop loss para asegurar las ganancias y un mejor control del riesgo.

  3. Optimizar la colocación de stop loss con el indicador de volatilidad ATR.

  4. Prueba y encuentra mejores métodos científicos para ajustar los parámetros de EMA.

  5. Valida las señales en múltiples marcos de tiempo para mejorar la precisión.

  6. Pruebe las modificaciones BREAKOUT para atrapar movimientos más grandes durante las etapas de aceleración de la tendencia.

Conclusión

Esta estrategia realiza un seguimiento efectivo de la tendencia del mercado mediante la negociación de señales de cruce EMA. Con una lógica clara y riesgos controlables, es adecuado para que los principiantes en el comercio cuántico practiquen. Optimizaciones adicionales en el ajuste de parámetros, filtración de entrada, colocación de stop loss pueden mejorar el rendimiento de la estrategia. Pero todas las estrategias tienen limitaciones, los usuarios deben aplicar con precaución en función de las condiciones del mercado al operar en vivo.


/*backtest
start: 2023-02-15 00:00:00
end: 2024-02-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © pradhan_abhishek

//@version=5
strategy('EMA cross-over strategy by AP', overlay=true, shorttitle='EMACS-AP', initial_capital=100000, default_qty_value=100, default_qty_type=strategy.percent_of_equity, commission_value=0.025)

// inputs
i_shortTerm = input(title='Fast EMA', defval=21)
i_longTerm = input(title='Slow EMA', defval=55)
// select backtest range: if this is not given, then tradingview goes back since inception / whereever it finds data
i_from = input(defval = timestamp("01 Jan 2023 00:00"), title = "From")
i_to = input(defval = timestamp("31 Dec 2033 23:59"), title = "To")
i_showBg = input(defval = true, title = "Show In-trade / Out-trade background")

// create date function "within window of time"
date() => true

// exponential moving average (EMA) variables, derived from input parameters
shortTermEMA = ta.ema(close, i_shortTerm)
longTermEMA = ta.ema(close, i_longTerm)
atr = ta.atr(14)

// ### Trade strategy: begins ###
inTrade = strategy.position_size > 0
notInTrade = strategy.position_size <= 0

goLongCondition1 = shortTermEMA > longTermEMA
goLongCondition2 = close > shortTermEMA

// exitCondition1 = shortTermEMA < midTermEMA
exitCondition2 = close < shortTermEMA

// enter if not in trade and long conditions are met
if date() and goLongCondition1 and goLongCondition2 and notInTrade
    strategy.entry('long', strategy.long)
    // exit on stop-Loss hit
    stopLoss = close - atr * 3
    strategy.exit('exit', 'long', stop=stopLoss)

// exit if already in trade and take profit conditions are met
if date() and exitCondition2 and inTrade
    strategy.close(id='long')
// ###Trade strategy: ends ###

// plot emas & background color for trade status
plot(shortTermEMA, color=color.new(color.blue, 0))
plot(longTermEMA, color=color.new(color.green, 0))
trade_bgcolor = notInTrade ? color.new(color.red, 75) : color.new(color.green, 75)
bgcolor(i_showBg ? trade_bgcolor : color.new(color.white, 75))

Más.