
La estrategia de negociación de filtro de tendencia cruzada de medias móviles de múltiples índices es un sistema de negociación automatizado basado en indicadores de EMA (6, 14, 50, 200) de varios períodos. La estrategia utiliza señales de cruce para generar puntos de entrada de negociación en EMA (6, 14 y 14) de corto plazo, al tiempo que confirma la dirección de la tendencia del mercado a través de EMA (50 y 200) de largo plazo, lo que mejora la tasa de éxito de la negociación. La estrategia está especialmente diseñada para la gestión de posiciones en cantidades fijas de USDT, junto con un mecanismo de stop loss porcentual para controlar el riesgo.
La lógica central de la estrategia se basa en un sistema de confirmación de señales de promedio móvil de índices en varios niveles:
Generación de señales básicasUtiliza el cruce de EMA6 y EMA14 como señal de negociación inicial. Se produce una señal múltiple cuando EMA6 pasa hacia arriba a través de EMA14; se produce una señal de vacío cuando EMA6 pasa hacia abajo a través de EMA14
Confirmación de la dirección de la tendencia: La principal tendencia del mercado se determina a través de la posición relativa de EMA50 y EMA200. Cuando EMA50 es mayor que EMA200, se confirma una tendencia alcista; Cuando EMA50 es menor que EMA200, se confirma una tendencia bajista.
Filtrado de intensidad de tendencia: Calcula la diferencia porcentual entre EMA50 y EMA200, sólo cuando la diferencia es mayor o igual al valor mínimo establecido por el usuario (el 1.0% por defecto), la tendencia se considera lo suficientemente fuerte como para permitir el comercio.
Filtrado por ubicación del precioPara hacer más, el precio debe estar por encima de EMA50 o en la “zona” entre EMA50 y EMA200; para hacer vacío, el precio debe estar por debajo de EMA200 o en la “zona” entre EMA50 y EMA200.
Administración de posiciones: soporta dos modos de establecer el tamaño de la posición: el modo porcentual (porcentaje fijo de los intereses de la cuenta) o el modo de cantidad fija en USDT, y el tamaño real de la operación se puede ajustar mediante parámetros de apalancamiento.
Las estrategias de salidaSe ofrece en dos modos de parálisis - parálisis porcentual o parálisis cruzado EMA, y al mismo tiempo se utiliza un parálisis porcentual fijo para proteger la seguridad de los fondos.
Mecanismo de confirmación múltipleLa combinación de medias móviles a corto y largo plazo, que forman un mecanismo de confirmación de señales de filtración por capas, reduce significativamente la probabilidad de falsas señales. El EMA a corto plazo capta el movimiento instantáneo, el EMA a largo plazo verifica la dirección de la tendencia general.
Identificación de la intensidad de las tendencias: Calcula el porcentaje de diferencia entre EMAs para asegurar que se negocie solo en tendencias lo suficientemente fuertes, evitando el comercio frecuente y las pérdidas en los mercados horizontales.
Zona de acceso flexibleLa estrategia permite la entrada en “transacciones regionales”, es decir, dentro del rango de reajuste de los precios en la dirección de la tendencia principal (entre EMA50 y EMA200), lo que ayuda a obtener un precio de entrada más favorable.
Flexibilidad en la administración de fondos: soporta dos modos de gestión de posiciones, por ciento o por un monto fijo, adaptado a los comerciantes de diferentes tamaños de cuenta y preferencias de riesgo.
Detención automática de pérdidasEl sistema de control de pérdidas y pérdidas por ciento integrado permite el control automático de riesgos, evita la interferencia emocional humana y protege los fondos de negociación.
Integración de las funciones de alerta: Función de alerta de formato fijo implementada a través de alertcondition, para facilitar el emparejamiento con sistemas externos o la asistencia de transacciones manuales.
Acumulación de retraso en varios indicadoresEl uso de múltiples EMAs puede causar superposición de la latencia de la señal, puede perder puntos de entrada óptimos o tardar en reaccionar en mercados que cambian rápidamente. La solución es considerar la introducción de parámetros más sensibles en EMAs de corto período o agregar un indicador de volumen de movimiento como alerta temprana.
Problemas de adaptabilidad de parámetros fijos: Los períodos de EMA fijos en la estrategia (6, 14, 50, 200) pueden no ser aplicables a todas las condiciones del mercado o períodos de tiempo. Se recomienda realizar una retrospectiva antes de su uso real y ajustar estos parámetros según las características específicas del mercado.
Limitación de pérdidas por ciento fijoEl uso de un porcentaje fijo de stop loss no tiene en cuenta los cambios en la volatilidad del mercado, el stop loss puede ser demasiado pequeño en un entorno de alta volatilidad y demasiado grande en un entorno de baja volatilidad. Considere el uso de ATR (medio de la amplitud de fluctuación real) para ajustar dinámicamente el nivel de stop loss.
El punto de inflexión es la vulnerabilidad.En los puntos de inflexión de tendencias principales, las señales de cruce de EMA pueden ser falsas. Se recomienda agregar indicadores de confirmación adicionales, como volumen de transacciones, indicadores de convulsiones o análisis de la forma de los precios.
Riesgos de la gestión de fondosEl modelo de USDT fijo puede llevar a un tamaño de posición no razonable en un mercado de gran volatilidad de precios. Considere la implementación de un mecanismo de ajuste de posición dinámico, que ajuste la proporción de fondos en cada transacción según el riesgo del mercado.
Mecanismo de ajuste de parámetros dinámicosDesarrollo de configuraciones de ciclos EMA auto-adaptativos para ajustar automáticamente los parámetros de EMA en función de la volatilidad del mercado o el ciclo de negociación, lo que mejora la adaptabilidad de la estrategia a diferentes entornos de mercado. Esto se puede hacer mediante la adición de una función de cálculo de la volatilidad, como el cambio en el valor de ATR como base para el ajuste de los parámetros.
Aumentar el índice de confirmación auxiliarIntroducción de indicadores técnicos adicionales como el RSI (índice de fuerza y debilidad relativas), el MACD (medio móvil de convergencia dispersa) o el indicador de intersección, como confirmación de la señal cruzada, para reducir la incidencia de falsas señales.
Detención inteligente de pérdidasReemplazar el stop loss por un stop loss dinámico basado en el ATR para adaptarse mejor a los cambios en la volatilidad del mercado. Por ejemplo, el stop loss se puede establecer como el precio de entrada menos el doble del valor actual del ATR.
Estrategia de construcción de almacenes por lotes y por la pazRealizar estrategias de entrada por lotes y ganancias por lotes, en lugar de operar todas las posiciones de una sola vez, reducir la presión de la elección del momento y mejorar la estabilidad de las ganancias en general.
Identificación del estado del mercadoAumentar la capacidad de clasificar los estados de mercado (por ejemplo, mercados de tendencia, mercados de oscilación), aplicar diferentes parámetros de negociación en diferentes estados de mercado o incluso evitar completamente ciertos estados de mercado.
Mejoras en el aprendizaje automático: Introducción de un algoritmo de aprendizaje automático sencillo para optimizar la selección de parámetros y ajustar automáticamente el ciclo EMA óptimo y otras combinaciones de parámetros basadas en datos históricos.
Mecanismo de equilibrio de riesgos: Realizar ajustes dinámicos de posiciones basados en cambios en el valor neto de la cuenta, aumentar posiciones después de ganancias continuas, reducir posiciones después de pérdidas continuas, controlar el volumen de retiro al mismo tiempo que se obtiene un aumento en las ganancias.
La estrategia de negociación de filtro de tendencia cruzada de medias móviles de múltiples índices es un sistema de negociación integral que combina indicadores de EMA a varios niveles para identificar efectivamente las tendencias del mercado y generar señales de negociación a través de la sinergia de medias móviles de corto y largo plazo. La ventaja central de la estrategia reside en el mecanismo de confirmación múltiple y la capacidad de gestión de posiciones flexibles, lo que la hace sobresalir en mercados de tendencia.
Sin embargo, la estrategia también tiene limitaciones en cuanto al atraso de los indicadores y la fijación de los parámetros. La orientación de optimización se centra principalmente en el ajuste dinámico de los parámetros, el aumento de los indicadores auxiliares y la mejora del mecanismo de detención de pérdidas. Mediante la introducción de parámetros dinámicos y la gestión de riesgos con percepción de la volatilidad, la estrategia puede mejorar aún más la adaptabilidad en diversos entornos de mercado.
En general, se trata de una estrategia de seguimiento de tendencias con una estructura clara y una lógica rigurosa, adecuada para el uso de los inversores a medio y largo plazo. Para los operadores más activos, se puede considerar reducir los ciclos de EMA para aumentar la sensibilidad; para los operadores más conservadores, se pueden agregar condiciones de filtración adicionales y ampliar el margen de pérdida para reducir la frecuencia de las operaciones y el riesgo. En cualquier caso, antes de su uso en el mercado real, se recomienda un buen retroceso y ajustar los parámetros según las características específicas del mercado y las preferencias de riesgo personales.
/*backtest
start: 2024-05-20 00:00:00
end: 2024-08-17 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/
// @version=6
strategy("EMA sabit usdt ve Alarm)", overlay=true, margin_long=1, margin_short=1)
// —— GİRDİLER —— //
fastLen = input.int(6, "EMA6 Periyodu")
slowLen = input.int(14, "EMA14 Periyodu")
midLen = input.int(50, "EMA50 Periyodu")
longLen = input.int(200, "EMA200 Periyodu")
tpMode = input.string("Percent", "Take Profit Modu", options=["Percent", "EMA Cross"])
tpPerc = input.float(2.0, "TP (%)", step=0.1)
slPerc = input.float(7.0, "Stop Loss (%)", step=0.1)
orderSizeMode = input.string("Percent", "Pozisyon Boyutu Modu", options=["Percent", "Fixed"])
orderSizePerc = input.float(10.0, "Boyut (%)", minval=0.1, step=0.1)
orderSizeFixed = input.float(5.0, "Boyut (Sabit) [USDT]", minval=0)
leverage = input.int(1, "Kaldıraç", minval=1)
minEMAPct = input.float(1.0, "%50–200 Min Fark", step=0.1)
// —— EMA HESAPLAMALARI —— //
ema6 = ta.ema(close, fastLen)
ema14 = ta.ema(close, slowLen)
ema50 = ta.ema(close, midLen)
ema200 = ta.ema(close, longLen)
plot(ema6, title="EMA 6", linewidth=1)
plot(ema14, title="EMA 14", linewidth=1)
plot(ema50, title="EMA 50", linewidth=2)
plot(ema200, title="EMA 200", linewidth=2)
crossUp = ta.crossover(ema6, ema14)
crossDown = ta.crossunder(ema6, ema14)
priceAbove50 = close > ema50
priceBelow50 = close < ema50
priceAbove200 = close > ema200
priceBelow200 = close < ema200
upTrend = ema50 > ema200
downTrend = ema50 < ema200
zoneLong = priceBelow50 and priceAbove200
zoneShort = priceAbove50 and priceBelow200
emaDistPct = math.abs(ema50 - ema200) / ema200 * 100
strongTrend= emaDistPct >= minEMAPct
// —— KOŞULLAR —— //
longCond = crossUp and upTrend and strongTrend and (priceAbove50 or zoneLong)
shortCond = crossDown and downTrend and strongTrend and (priceBelow200 or zoneShort)
// —— POZİSYON MİKTARI —— //
var float qty = na
if orderSizeMode == "Percent"
qty := strategy.equity * (orderSizePerc/100) * leverage
else
qty := (orderSizeFixed / close) * leverage
// —— SİNYAL KOŞULLARI — statik mesajlar —— //
alarmLongID = "EMA_Long_Signal"
alarmShortID = "EMA_Short_Signal"
// —— GİRİŞLER —— //
if longCond
strategy.entry("Long", strategy.long, qty=qty)
label.new(bar_index, high, text="Long", yloc=yloc.abovebar)
if shortCond
strategy.entry("Short", strategy.short, qty=qty)
label.new(bar_index, low, text="Short", yloc=yloc.belowbar)
// —— ALERTCONDITION ile sabit mesaj —— //
alertcondition(longCond, title="Long Alarm", message=alarmLongID)
alertcondition(shortCond, title="Short Alarm", message=alarmShortID)
// ÇIKIŞLAR (TP/SL) —— //
if tpMode == "Percent"
if strategy.position_size > 0
slPrice = strategy.position_avg_price * (1 - slPerc/100)
tpPrice = strategy.position_avg_price * (1 + tpPerc/100)
strategy.exit("Exit Long", from_entry="Long", stop=slPrice, limit=tpPrice)
if strategy.position_size < 0
slPrice = strategy.position_avg_price * (1 + slPerc/100)
tpPrice = strategy.position_avg_price * (1 - tpPerc/100)
strategy.exit("Exit Short", from_entry="Short", stop=slPrice, limit=tpPrice)
else
if strategy.position_size > 0
slPrice = strategy.position_avg_price * (1 - slPerc/100)
strategy.exit("Stop Long", from_entry="Long", stop=slPrice)
if strategy.position_size < 0
slPrice = strategy.position_avg_price * (1 + slPerc/100)
strategy.exit("Stop Short", from_entry="Short", stop=slPrice)