Esta estrategia es una estrategia de negociación algorítmica de tendencia. Cálcula dos líneas EMA con parámetros diferentes y genera señales de negociación cuando ocurren la Cruz Dorada y la Cruz de la Muerte entre las dos EMA. La estrategia también combina múltiples líneas EMA para salir de ganancias y establece puntos de stop loss para controlar los riesgos.
La estrategia utiliza 4 líneas EMA, incluyendo una EMA rápida y una EMA lenta, cuyo cruce se utiliza para generar señales de compra y venta.
Específicamente, cuando la EMA rápida cruza por encima de la EMA lenta, se genera una señal de compra. Cuando la EMA rápida cruza por debajo de la EMA lenta, se genera una señal de venta. Esta es una típica estrategia de cruce de doble EMA. Para rastrear mejor las tendencias y aumentar la rentabilidad, después de ingresar a una posición, la estrategia saldrá selectivamente parte o la totalidad de la posición cuando la EMA rápida cruce por encima de la segunda línea EMA o cuando la EMA rápida cruce por debajo de la tercera línea EMA.
Además, la estrategia establece puntos de stop loss tanto largos como cortos para evitar pérdidas excesivas, en concreto, el stop loss para las posiciones largas se establece en el 6% del precio de entrada y en el 3% para las posiciones cortas.
En comparación con una estrategia cruzada típica de doble EMA, las principales ventajas de esta estrategia incluyen:
El establecimiento de múltiples líneas de EMA para la salida de ganancias puede fijar mejor las ganancias y evitar la contracción de las ganancias durante las retrocesos posteriores.
La posición corta tiene un stop loss más pequeño, que puede soportar fluctuaciones normales del mercado más grandes y evitar frecuentes stop loss.
El establecimiento de líneas EMA con diferentes parámetros para la salida de beneficios permite elegir el punto de salida óptimo en función de las condiciones del mercado.
La estrategia general tiene una buena capacidad de seguir tendencias para obtener mayores beneficios de las tendencias a medio y largo plazo.
Los principales riesgos de esta estrategia incluyen:
En los mercados de rango, las señales de negociación generadas por las líneas de la EMA son frecuentes, lo que puede conducir a un exceso de negociación.
El stop loss corto solo puede prevenir condiciones extremas de mercado y no puede evitar retiros significativos en la cuenta de estrategia.
El riesgo de recortes sigue existiendo y los beneficios pueden reducirse significativamente cuando se produce un ajuste a largo plazo.
La estrategia es sensible al ajuste de parámetros. Una configuración incorrecta puede causar fallas en la estrategia.
A la vista de los riesgos mencionados anteriormente, la estrategia puede optimizarse en los siguientes aspectos:
Aumentar los algoritmos de aprendizaje automático para ayudar en el juicio de tendencias y reducir las probabilidades de errores comerciales.
Aumentar el mecanismo de stop loss adaptativo para ajustar dinámicamente el stop loss en función de la volatilidad del mercado.
Establecer la utilización del capital para evitar la ocupación excesiva del capital y aumentar el mecanismo de gestión de la posición.
Seleccionar productos comerciales con tendencias obvias y altas fluctuaciones.
Aumentar el módulo de optimización de parámetros para lograr la optimización automática y la actualización de parámetros.
En general, la estrategia de cruce de doble EMA es una estrategia de seguimiento de tendencias rentable. Tiene ventajas como múltiples líneas EMA para obtener ganancias, pequeñas paradas cortas y una buena capacidad de seguimiento de tendencias. Sin embargo, todavía hay algunos riesgos con esta estrategia. Necesita una mayor optimización de ajuste de parámetros e incorporación de algoritmos de aprendizaje automático para mejorar la estabilidad. En general, esta estrategia es adecuada para los inversores con cierta experiencia comercial para llevar a cabo el comercio de algoritmos.
/*backtest start: 2023-02-19 00:00:00 end: 2024-02-25 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/ // © RealTraderAkeme //@version=5 strategy("AKEME_EMA_CROSS_V6", overlay=true) ////////////////////////////////////////////////////////////PARAMETERS///////////////////////////////////////////////////////////////// emaFast_op = input(title="Fast_EMA", defval=6) emaSlow_op = input(title="Slow_EMA", defval=26) emaExit_op = input(title="Sell_EMA_Exit",defval=10) emabuyExit_op = input(title="Buy_EMA_Exit",defval=20) Order_Value = input(defval=1000, title="Order_Value in Pounds") Direction_Of_Trade = input(title="Trade Direction", defval="Both") ////////////////////////////////////////////////////////////INPUTS////////////////////////////////////////////////////////////////// fastEMA = ta.ema(close, emaFast_op) slowEMA = ta.ema(close,emaSlow_op) emaExit = ta.ema(close,emaExit_op) emabuyExit = ta.ema(close,emabuyExit_op) Entry_Ratio = strategy.openprofit/Order_Value //////////////////////////////////////////////////////////GRAPHS////////////////////////////////////////////////////////////////// plot(fastEMA, color=color.orange, linewidth = 2) plot(slowEMA,color = color.blue, linewidth = 2) plot(emaExit,color = color.gray, linewidth = 2) plot(series=emabuyExit, color= color.rgb(210, 74, 235), linewidth=2) /////////////////////////////////////////////////////Conditions////////////////////////////////////////////////////////////////////// longOK = (Direction_Of_Trade == "Long") or (Direction_Of_Trade == "Both") shortOK = (Direction_Of_Trade == "Short") or (Direction_Of_Trade == "Both") ///////////////////////////////////////////////////////////ENTRIES&EXITS/////////////////////////////////////////////////////////////// longCondition = ta.crossover(fastEMA, slowEMA) and longOK if (longCondition) strategy.entry("Buy", strategy.long) shortCondition = ta.crossunder(fastEMA, slowEMA) and shortOK if (shortCondition) strategy.entry("Sell", strategy.short) if (strategy.position_size > 0 and shortCondition) strategy.exit(id="exit Buy", stop=close) if (strategy.position_size < 0 and longCondition) strategy.exit(id="exit Sell", stop=close) /////////////////////////////////////////////////////TAKE PROFIT CONDITIONS//////////////////////////////////////////////////////// if ta.crossunder(fastEMA, emabuyExit) and Entry_Ratio > 0.08333 strategy.close("Buy",comment = "Exit") if ta.crossover(fastEMA, emaExit) and Entry_Ratio > 0.016666 strategy.close("Sell",comment = "Exit") if Entry_Ratio > 0.4166666 //0.4166666 strategy.close("Buy",comment = "Exit", qty_percent = 100) if Entry_Ratio > 0.0833333//0.0833333 strategy.close("Sell",comment = "Exit")//50 if Entry_Ratio > 0.1111111//4000 strategy.close("Sell",comment = "Exit", qty_percent = 50) if ta.crossover(fastEMA, emaExit) and Entry_Ratio > 0.278 //Percentage strategy.close("Sell",comment = "Exit") ////////////////////////////////////////////STOP LOSS AS PERCENTAGE OF ENTRY CONDITIONS/////////////////////////////////////////// if Entry_Ratio < -0.05555555555 strategy.close("Buy",comment = "Exit") if Entry_Ratio < -0.027777777777 strategy.close("Sell",comment = "Exit")// The Sell Stoloss is half the buying stoploss.