Estrategia de reversión de tres días para el comercio de tortugas

El autor:¿ Qué pasa?, Fecha: 2023-10-13 15:37:18
Las etiquetas:

Resumen general

La Estrategia de Reversión de 3 Días de Turtle Trading es una modificación de la Estrategia de Reversión Media de 3 Días del libro High Probability ETF Trading de Larry Connors y Cesar Alvarez.

  • Si el cierre de ayer está por debajo de la media móvil simple de 5 días, compre hoy.
  • Si el cierre de hoy está por encima del promedio móvil simple de 5 días, venda hoy.

A través de la práctica y backtesting, he encontrado que la estrategia funciona mejor cuando se utiliza una EMA en lugar de una SMA para la línea de tendencia.

Estrategia lógica

La estrategia funciona de la siguiente manera:

  • Venga largo cuando las siguientes condiciones de compra sean verdaderas:
    • El cierre está por encima de la EMA de 200 días
    • El cierre está por debajo de la EMA de 5 días
    • El máximo de hoy es menor que el máximo de ayer.
    • El mínimo de hoy es inferior al mínimo de ayer.
    • El máximo de ayer es menor que el máximo del día anterior.
    • El mínimo de ayer es menor que el mínimo del día anterior.
    • El máximo del día anterior es menor que el máximo de hace 2 días
    • El mínimo del día anterior es menor que el mínimo de hace 2 días
  • Salida cuando el cierre se cruza por encima de la EMA de salida

La EMA de salida es por defecto la EMA de 5 días, su duración es ajustable.

La idea principal de la estrategia es aprovechar la reversión media a corto plazo. Cuando los precios disminuyen continuamente, es probable que se recuperen a corto plazo. La estrategia identifica las oportunidades de reversión media comprobando si los precios se han reducido durante 3 días consecutivos por debajo de una EMA a corto plazo. Una vez que ocurre la reversión, sale rápidamente cuando el precio se rompe por encima de la EMA de salida.

Análisis de ventajas

En comparación con las estrategias tradicionales de cruce de medias móviles, esta estrategia presenta las siguientes ventajas:

  1. El uso de estrechamiento de 3 días consecutivos para identificar reversiones mejora la calidad de la señal.

  2. La filtración con EMA largas y cortas evita el comercio en mercados de tendencia.

  3. El uso de EMA en lugar de SMA para la línea de tendencia es más sensible para detectar reversiones.

  4. La longitud EMA de salida ajustable permite personalizar la estrategia de stop loss en función de las condiciones del mercado.

  5. La baja frecuencia de negociación con períodos de retención de 1-2 días evita los riesgos asociados con las apuestas direccionales largas.

Análisis de riesgos

La estrategia también presenta los siguientes riesgos:

  1. Riesgo de reversión fallido: el precio puede no rebotar y continuar disminuyendo después de la señal de reversión.

  2. El precio podría alcanzar repetidamente el stop loss en mercados agitados.

  3. El riesgo de optimización de parámetros. La EMA de salida y otros parámetros necesitan pruebas y ajustes continuos basados en la evolución de los mercados. El rendimiento podría degradarse sin ajuste.

  4. El riesgo de sobreajuste La optimización debe evitar el sobreajuste Los parámetros deben ser robustos.

Los riesgos pueden reducirse:

  1. Seguir estrictamente las reglas de stop loss para controlar la pérdida de una sola operación.

  2. Ajuste de parámetros robusto durante la optimización para equilibrar el riesgo y el rendimiento.

  3. Ajuste del tamaño de las posiciones para reducir el riesgo por operación.

Oportunidades de optimización

La estrategia puede mejorarse en los siguientes aspectos:

  1. Prueba diferentes longitudes de EMA para la entrada y salida para encontrar parámetros óptimos.

  2. Añadir otros filtros como el volumen para asegurar que las señales de inversión sean más confiables.

  3. Mejore el stop loss con métodos como ATR o trailing stops para mayor flexibilidad.

  4. Incorporar un filtro de tendencia para evitar señales de reversión en las tendencias existentes.

  5. Combinar con otras estrategias de optimización y diversificación de cartera.

  6. Emplear el aprendizaje automático para ajustar parámetros adaptativos.

Resumen de las actividades

La Estrategia de Reversión de 3 días de Turtle Trading identifica oportunidades de reversión a corto plazo al detectar patrones de estrechamiento de 3 días por debajo de una EMA corta. En comparación con las estrategias tradicionales de promedios móviles, tiene señales de entrada más confiables y EMA de salida ajustable para la optimización de stop loss. La estrategia funciona bien para mercados agitados de rango y capturar rebotes cortos.


/*backtest
start: 2023-10-05 00:00:00
end: 2023-10-12 00:00:00
period: 10m
basePeriod: 1m
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/
// @version = 5
// Author = TradeAutomation


strategy(title="ETF 3-Day Reversion Strategy", shorttitle="ETF 3-Day Reversion Strategy", process_orders_on_close=true, overlay=true, commission_type=strategy.commission.cash_per_order, commission_value=1, initial_capital = 10000000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)


// Backtest Date Range Inputs // 
StartTime = input(defval=timestamp('01 Jan 2012 05:00 +0000'), title='Start Time')
EndTime = input(defval=timestamp('01 Jan 2099 00:00 +0000'), title='End Time')
InDateRange = true

// Strategy Rules //
DayEMA5 = ta.ema(close, 5)
Rule1 = close>ta.ema(close, 200)
Rule2 = close<DayEMA5
Rule3 = high<high[1] and low<low[1] and high[1]<high[2] and low[1]<low[2] and high[2]<high[3] and low[2]<low[3]
ExitEMA = ta.ema(close, input.int(5, "EMA Length For Exit Strategy", tooltip = "The strategy will sell when the price crosses over this EMA"))
plot(DayEMA5)
plot(ExitEMA, color=color.green)

// Entry & Exit Functions //
if (InDateRange)
    strategy.entry("Long", strategy.long, when = Rule1 and Rule2 and Rule3)
//    strategy.close("Long", when = ta.crossunder(close, ATRTrailingStop))
    strategy.close("Long", when = ta.crossover(close, ExitEMA))
if (not InDateRange)
    strategy.close_all()

Más.