Tendencia del oscilador de la EMA siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2023-11-06 09:53:27
Las etiquetas:

img

Resumen general

Esta estrategia utiliza el indicador EMA para identificar las tendencias de precios y combina la desviación estándar para calcular las señales de compra y venta para la tendencia después de la negociación.

Estrategia lógica

La estrategia primero calcula la diferencia v entre el precio de cierre y la EMA de la longitud ema_length. Luego calcula la desviación estándar dev de v en períodos de ema_length. Luego determina el coeficiente de dirección k, con k=1 para largo y k=-1 para corto. El umbral de la señal de compra dev_limit se calcula por k * dev * factor límite. Cuando v cruza el dev_limit, se activa una señal de compra. La señal de salida es cuando v cruza 0.

La estrategia prevé dos modos:

  1. Comprar corto, ir largo cuando v cruza por debajo de dev_limit negativo, para seguir una tendencia bajista.

  2. Comprar largo, ir largo cuando v cruza por encima del límite de dev_positivo, para seguir una tendencia alcista.

En resumen, la estrategia calcula dinámicamente la desviación estándar de la diferencia entre el precio y la EMA para establecer el umbral y sigue las tendencias. El factor controla la sensibilidad de las señales de compra. ema_length determina el período EMA. El modo de compra controla la dirección del pedido.

Análisis de ventajas

Las ventajas de esta estrategia incluyen:

  1. La EMA identifica bien la dirección de la tendencia al suavizar los precios.

  2. El umbral dinámico basado en la desviación tipo se adapta mejor que los umbrales fijos.

  3. Dos modos de compra permiten seguir la tendencia alcista o bajista.

  4. El factor proporciona flexibilidad en el ajuste de la sensibilidad de compra. ema_length permite la optimización del período EMA.

  5. La lógica es simple y fácil de entender y modificar.

  6. El dimensionamiento de la posición se puede configurar de manera flexible para seguir una tendencia agresiva.

Análisis de riesgos

Los riesgos de la estrategia:

  1. La EMA tiene retraso y puede perder los puntos de inflexión de la tendencia.

  2. Se basa en la optimización de parámetros.

  3. Si se sigue una tendencia, se corre el riesgo de sufrir pérdidas mayores cuando la tendencia se invierte.

  4. Los cambios frecuentes entre largo y corto aumentan la frecuencia de las operaciones.

  5. Las señales frecuentes en los mercados variados aumentan los costos.

Para abordar los riesgos, considere agregar stop loss, optimizar parámetros, agregar filtros para evitar el exceso de operaciones, etc.

Direcciones de optimización

La estrategia se puede optimizar mediante:

  1. Probando diferentes períodos de EMA para encontrar la longitud óptima.

  2. Prueba de diferentes valores de factores para encontrar la mejor sensibilidad.

  3. Optimización de las estrategias de dimensionamiento de la posición, por ejemplo, la pirámide.

  4. Añadiendo filtros para evitar intercambios equivocados en mercados agitados.

  5. Incorporar el stop loss para controlar la pérdida de una sola operación.

  6. Optimización de parámetros por separado para los dos modos de compra.

  7. Investigando señales de reversión de tendencia para detener la tendencia.

Conclusión

La estrategia identifica tendencias con EMA y genera órdenes de umbral dinámicas para seguir tendencias. La lógica es simple y clara. El tamaño de la posición puede ser agresivo para perseguir tendencias. Tiene riesgos que deben abordarse a través de la optimización de parámetros y stop loss. Sirve como un buen ejemplo para aprender combinación de indicadores y ajuste de parámetros.


/*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)


Más.