Estrategia de retroceso del impulso

El autor:¿ Qué pasa?, Fecha: 2024-01-23 15:23:14
Las etiquetas:

img

Resumen general

Esta estrategia tiene como objetivo identificar oportunidades potenciales de retroceso en el mercado. Emplea un sistema dual de promedios móviles con una media móvil a largo plazo (MA1) y una media móvil a corto plazo (MA2).

Estrategia lógica

La estrategia utiliza dos promedios móviles: MA1 (a largo plazo) y MA2 (a corto plazo). La lógica es que si los precios retroceden brevemente para probar el soporte de la tendencia a largo plazo, puede presentar una oportunidad larga. Específicamente, si el precio de cierre permanece por encima del soporte a largo plazo (MA1), la tendencia principal permanece intacta. Pero si el precio de cierre se rompe por debajo del MA a corto plazo (MA2) pero aún se mantiene por encima del MA a largo plazo (MA1), indica una configuración de retroceso de libro de texto. Uno puede ir aquí con un stop-loss y apuntar a que los precios se muevan por encima del MA corto.

Análisis de ventajas

Las ventajas de esta estrategia incluyen:

  1. Simple de implementar y fácil de entender con ajuste flexible de parámetros
  2. Aprovechar las MAs duales para identificar las tendencias principales y evitar operaciones contrarias a las tendencias
  3. Filtros de tiempo personalizables para evitar períodos anormales
  4. Tamaño de posición ajustable para adaptarse a las diferentes preferencias de riesgo
  5. Mecanismo de stop-loss para limitar el riesgo a la baja

Análisis de riesgos

Los riesgos a tener en cuenta:

  1. Retiro fallido si los precios continúan bajando y se alcanza el stop-loss
  2. Inversión de tendencia importante si se rompe el área de soporte clave
  3. Afectos y divergencias con acción de precios volátiles
  4. Las operaciones que faltan en los filtros de tiempo subóptimos

Algunas formas de optimizar y mitigar los riesgos:

  1. Optimizar los parámetros de MA para mejorar la calidad de la señal
  2. Ajuste fino de los niveles de suspensión de pérdidas para maximizar los beneficios y minimizar los riesgos
  3. Ajustar los filtros de tiempo para centrarse en los mejores períodos de negociación
  4. Prueba en diferentes instrumentos y entornos de mercado

Oportunidades de mejora

Algunas formas de mejorar la estrategia:

  1. Optimizar los parámetros de MA para encontrar las mejores combinaciones
  2. Prueba diferentes mecanismos de stop-loss como paradas de trailing o de candelabros
  3. Añadir filtros adicionales como volumen o volatilidad
  4. Incorporar las reglas de tamaño de posición como la adición de cruces de oro y la reducción de cruces de la muerte
  5. Construir un mecanismo automatizado de obtención de beneficios
  6. Prueba posterior para analizar las métricas clave y finalizar los parámetros

Conclusión

En resumen, esta es una estrategia de retroceso de reversión media sencilla. Identifica las configuraciones de retroceso con el enfoque de doble MA y gestiona el riesgo con paradas adaptativas. La estrategia es fácil de comprender e implementar con ajuste flexible. Los próximos pasos son optimizaciones adicionales en torno a elementos como parámetros MA, stop-loss, filtros para hacer que la estrategia sea más robusta.


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
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/
// © ZenAndTheArtOfTrading / www.PineScriptMastery.com
// @version=5
strategy("Simple Pullback Strategy", 
     overlay=true, 
     initial_capital=50000,
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100, // 100% of balance invested on each trade
     commission_type=strategy.commission.cash_per_contract, 
     commission_value=0.005) // Interactive Brokers rate

// Get user input
i_ma1           = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA")
i_ma2           = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA")
i_stopPercent   = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose    = input.bool(title="Exit On Lower Close", defval=false, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime     = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime       = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")

// Get indicator values
ma1 = ta.sma(close, i_ma1)
ma2 = ta.sma(close, i_ma2)

// Check filter(s)
f_dateFilter =true

// Check buy/sell conditions
var float buyPrice = 0
buyCondition    = close > ma1 and close < ma2 and strategy.position_size == 0 and f_dateFilter
sellCondition   = close > ma2 and strategy.position_size > 0 and (not i_lowerClose or close < low[1])
stopDistance    = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice       = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition   = strategy.position_size > 0 and stopDistance > i_stopPercent

// Enter positions
if buyCondition
    strategy.entry(id="Long", direction=strategy.long)

if buyCondition[1]
    buyPrice := open

// Exit positions
if sellCondition or stopCondition
    strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
    buyPrice := na

// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.orange)

Más.