Estrategia de seguimiento de tendencias basada en el indicador EMA


Fecha de creación: 2023-11-06 09:53:27 Última modificación: 2023-11-06 09:53:27
Copiar: 0 Número de Visitas: 691
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencias basada en el indicador EMA

Descripción general

La estrategia utiliza el indicador EMA para identificar las tendencias de los precios de las acciones y, en combinación con el cálculo de la diferencia estándar, las señales de compra y venta, para lograr una estrategia de negociación que siga la tendencia. La idea principal es calcular el diferencial entre el precio actual y la EMA, y establecer una compra a la brecha.

Principio de estrategia

La estrategia comienza por calcular la diferencia entre el precio de cierre y el EMA de la longitud de ema_length v. Luego calcula la diferencia estándar del ciclo de ema_length de v. Luego determina el coeficiente de dirección de compra k, k es 1 para comprar a la baja y k es -1 para comprar a la baja. Luego calcula el umbral de la señal de compra dev_limit, que es k multiplicado por dev y multiplicado por el factor de limitación.

La estrategia ofrece dos modelos:

  1. Comprar a la baja, comprar dev_limit cuando v es negativo, es decir, seguir la tendencia a la baja.

  2. Comprar un peso, comprar cuando el dev_limit de v está ajustado, es decir, seguir la tendencia al alza.

En resumen, la estrategia permite el seguimiento de la tendencia mediante el cálculo dinámico de la diferencia estándar entre el precio y el valor de la EMA. El parámetro factor controla la sensibilidad de la señal de compra. La longitud de la EMA controla el ciclo de la EMA. El patrón de compra controla la dirección de compra.

Análisis de las ventajas estratégicas

La estrategia tiene las siguientes ventajas:

  1. Utiliza el indicador EMA para identificar la dirección de la tendencia de los precios, el indicador EMA para suavizar los precios, el reconocimiento de la tendencia es eficaz.

  2. El cálculo de la diferencia dinámica en combinación con el cálculo de la diferencia estándar permite una mayor adaptación a los cambios del mercado que el cálculo de la diferencia fija.

  3. Las dos modalidades de compra permiten elegir entre seguir una tendencia al alza o una tendencia a la baja.

  4. El parámetro factor proporciona espacio para ajustar la sensibilidad de compra. El parámetro ema_length puede ajustar el parámetro de optimización del ciclo EMA.

  5. La lógica de la estrategia es clara y simple, fácil de entender y modificar.

  6. Puede configurar la gestión de posiciones con flexibilidad y estrategias positivas para alcanzar tendencias de alza y caída.

Análisis de riesgos

La estrategia también tiene los siguientes riesgos:

  1. Los indicadores de la EMA están rezagados y pueden haber perdido el punto de inflexión de la tendencia.

  2. Depende de la optimización de los parámetros, si los parámetros están mal configurados, puede ser demasiado sensible o lento.

  3. El riesgo de seguir la tendencia, que puede causar grandes pérdidas si se invierte.

  4. La frecuencia de las conversiones multiespaciales hace que las transacciones sean frecuentes.

  5. Las señales son más frecuentes en situaciones de gran agitación y los costos de las transacciones aumentan.

Para responder a estos riesgos, se puede considerar la adición de estrategias de control de riesgos de stop loss, la optimización de la combinación de pruebas de parámetros para encontrar los parámetros óptimos, la adición de condiciones de filtración para evitar el comercio demasiado frecuente, etc.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Prueba el efecto de los parámetros de los diferentes ciclos de EMA para encontrar la longitud óptima del ciclo de EMA.

  2. Se toman diferentes valores de los factores de prueba para encontrar la sensibilidad óptima al umbral.

  3. Optimización de las estrategias de gestión de posiciones abiertas, como por ejemplo, el aumento de posiciones según la tendencia.

  4. Añadir filtros de otros indicadores para evitar errores en las operaciones en situaciones de crisis.

  5. Aumentar las estrategias de stop loss para controlar las pérdidas individuales.

  6. Optimización de los parámetros para cada uno de los dos modelos de compra, buscando la combinación óptima de parámetros.

  7. Investiga las señales de cambio de tendencia y configura el seguimiento de tendencia para apagarlo.

Resumir

La estrategia se basa en la identificación de la dirección de la tendencia de EMA y el cálculo dinámico de los umbrales para generar una señal de compra y venta, lo que permite el seguimiento de la tendencia. La lógica de la estrategia es simple y clara, y se puede configurar de manera flexible para administrar las posiciones y seguir activamente la tendencia.

Código Fuente de la Estrategia
/*backtest
start: 2023-10-06 00:00:00
end: 2023-11-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Azzrael

// Based on EMA and EMA Oscilator https://www.tradingview.com/script/qM9wm0PW-EMA-Oscilator-Azzrael/

// (EMA - close) + Std Dev + Factor = detecting oversell/overbuy
// Long only!
// Pyramiding - sometimes, depends on ...
// There 2 enter strategies in one script 
// 1 - Classic, buy on entering to OverSell zone (more profitable ~> 70%)
// 2 - Crazy, buy on entering to OverBuy zone (catching trend and pyramiding, more net profit)
// Exit - crossing zero of (EMA - close)

//@version=5
strategy("STR:EMA Oscilator [Azzrael]", overlay=false, 
 margin_long=100, 
 margin_short=100, 
 currency=currency.USD,
 default_qty_type=strategy.percent_of_equity,
 default_qty_value=30,
 pyramiding=3)

entry_name="Buy"

ema_length = input.int(200, "Period", minval=2, step=10)
limit = input.float(1.7, "Factor", minval=1, step=0.1, maxval=10)
dno = input.string(defval="Buy on enter to OverSell", title="Model", options=["Buy on enter to OverSell", "Buy on enter to OverBuy"]) == "Buy on enter to OverSell"

v = close - ta.ema(close, ema_length)
dev = ta.stdev(v, ema_length)
k = dno ? -1 : 1
dev_limit = k*dev*limit

cond_long = dno ? ta.crossunder(v, dev_limit) : ta.crossover(v, dev_limit)
cond_close = ta.cross(v, 0) 

// dev visualization
sig_col = (dno and v <= dev_limit) or (not dno and v >= dev_limit) ? color.green : color.new(color.blue, 80)
plot(dev_limit, color=color.green)
plot(k*dev, color=color.new(color.blue, 60))
plot(v, color=sig_col )
hline(0)

// Make love not war
strategy.entry(entry_name, strategy.long, when=cond_long)
strategy.close(entry_name, when=cond_close)