Esta estrategia utiliza el enfoque explicado por Larry Williams en su libro
La lógica central de esta estrategia es calcular promedios móviles de 3 períodos de los precios altos y bajos. Específicamente, utiliza la función ta.ema para calcular promedios móviles exponenciales de los precios altos y bajos en las 3 barras más recientes para generar niveles dinámicos de soporte y resistencia. Cuando el precio se rompe por debajo de los mínimos EMA, indica una tendencia bajista, por lo que podemos ir largo. Cuando el precio vuelve a subir por encima de los máximos EMA, sugiere que la tendencia alcista ha terminado y debemos cerrar nuestra posición. De esta manera, la estrategia puede rastrear dinámicamente los cambios de precios y lograr comprar bajo y vender alto.
La mayor ventaja de esta estrategia es su simplicidad y dinamismo. En comparación con la toma de promedios móviles máximos/bajos de período fijo, esta estrategia utiliza promedios móviles continuos a corto plazo, que pueden capturar los cambios de precios de manera más sensible y oportuna. Esto le permite identificar rápidamente las oportunidades comerciales para entrar y salir del mercado. Además, la baja carga de computación es otra ventaja para reducir la latencia comercial.
El principal riesgo de esta estrategia es que reacciona más lentamente a eventos repentinos como noticias significativas. Debido a que su período de promedio móvil es muy corto, se necesita algún tiempo para ajustar los niveles de promedio móvil cuando hay un fuerte aumento de precios. Esto puede conducir a pérdidas o oportunidades perdidas. Además, la hipersensibilidad puede causar operaciones incorrectas. Para mitigar estos riesgos, podemos aumentar apropiadamente el período de promedio móvil o agregar filtros para evitar señales falsas.
En este sentido, el análisis de los periodos de tiempo múltiples, el reconocimiento de patrones con aprendizaje automático, etc. pueden ayudar a mejorar el rendimiento de la estrategia.
En resumen, esta es una estrategia muy simple y práctica, que identifica tendencias utilizando promedios móviles altos/bajos a corto plazo. Sus ventajas son un fuerte dinamismo, bajo cálculo y alta capacidad de respuesta, adecuados para el comercio activo. Pero también tiene deficiencias en la respuesta a eventos extremos y un mayor riesgo de falsas señales.
/*backtest start: 2023-11-26 00:00:00 end: 2023-12-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy( "Larry Williams 3 Period EMAs strategy", overlay=true, calc_on_every_tick=true, currency=currency.USD ) // Time range for backtesting startDate = input.int(title="Start Date", defval=1, minval=1, maxval=31) startMonth = input.int(title="Start Month", defval=1, minval=1, maxval=12) startYear = input.int(title="Start Year", defval=2018, minval=1800, maxval=2100) endDate = input.int(title="End Date", defval=31, minval=1, maxval=31) endMonth = input.int(title="End Month", defval=12, minval=1, maxval=12) endYear = input.int(title="End Year", defval=2041, minval=1800, maxval=2100) inDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0)) and (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0)) // EMA period = 3 emaH = ta.ema(high, period) emaL = ta.ema(low, period) // PLOT: // Draw the EMA lines on the chart plot(series=emaH, color=color.green, linewidth=2) plot(series=emaL, color=color.red, linewidth=2) // Conditions if(inDateRange and close < emaL) strategy.entry("Long", strategy.long, comment="Long") if(close > emaH) strategy.close("Long", comment="Close Long") // Uncomment to enable short entries //if(inDateRange and close > emaH) // strategy.entry("Short", strategy.short, comment="Short") //if(close < emaL) // strategy.close("Short", comment="Close Short")