Tendencia de seguir la estrategia con stop loss

El autor:¿ Qué pasa?, fecha: 2024-01-12 14:55:40
Las etiquetas:

img

Resumen general

Esta estrategia identifica las tendencias de precios mediante el cálculo del indicador Supertrend y establece posiciones largas o cortas cuando las tendencias cambian.

Principios de estrategia

Esta estrategia utiliza la función ta.supertrend() para calcular el indicador de Supertrend. La Supertrend combina el rango verdadero promedio y el precio promedio para determinar si los precios están en una tendencia alcista o bajista. Cuando los precios cambian de una tendencia bajista a una tendencia alcista, la estrategia detecta el cambio de dirección utilizando ta.change() y establece una posición larga. Cuando los precios cambian de una tendencia alcista a una tendencia bajista, se toma una posición corta.

El nivel de stop loss stop_loss y el nivel de take profit profit se establecen para realizar órdenes de stop loss y de take profit después de introducir posiciones para controlar los riesgos.

En concreto, la estrategia se ejecuta a través de los siguientes pasos:

  1. Calcular la dirección del indicador Supertrend
  2. Compruebe si los precios han cambiado de tendencia bajista a tendencia alcista y establezca una posición larga si es así
  3. Compruebe si los precios han pasado de una tendencia alcista a una tendencia bajista y tome una posición corta si es así
  4. Establecer el precio de stop loss y el precio de take profit para la posición larga después de que se establezca
  5. Establecer el precio de stop loss y el precio de take profit para la posición corta después de que se establezca

Los pasos anteriores pueden capturar eficazmente los cambios de tendencia y tomar posiciones en los momentos apropiados.

Análisis de ventajas

La mayor ventaja de esta estrategia es la capacidad de rastrear automáticamente los cambios de tendencia sin la necesidad de un juicio manual. El indicador Supertrend tiene un efecto de filtrado sobre las fluctuaciones de precios y puede identificar eficazmente las tendencias, evitando la adopción de posiciones excesivas en mercados variados.

Además, los niveles de stop loss y take profit predefinidos permiten el stop loss y take profit automáticos, limitando efectivamente las pérdidas de una sola operación y bloqueando las ganancias.

En comparación con las estrategias de promedios móviles simples, esta estrategia tiene capacidades superiores en la identificación de tendencias y es más adecuada para mercados de tendencias.

Análisis de riesgos

El mayor riesgo de esta estrategia proviene de un ajuste inadecuado de los parámetros del indicador de Supertrend. Si los parámetros no se establecen adecuadamente, la efectividad del indicador en la detección de cambios de tendencia sufrirá.

Además, los niveles de stop loss y take profit afectan significativamente el rendimiento de la estrategia. Un stop loss que sea demasiado ajustado se detendría fácilmente prematuramente. Un take profit que sea demasiado amplio puede perder puntos de salida ideales. Se necesita una optimización extensa para encontrar los valores óptimos de parámetros para diferentes condiciones de mercado e instrumentos comerciales.

Por último, como todas las estrategias de seguimiento de tendencias, las inversiones repentinas de tendencias y los golpes pueden causar pérdidas que deben controlarse mediante una gestión adecuada del dinero.

Oportunidades de mejora

Se pueden mejorar los siguientes aspectos de la estrategia:

  1. Optimizar los parámetros del indicador Supertrend, incluido el período y el factor ATR mediante backtesting.

  2. Incorporar reglas de dimensionamiento de posiciones basadas en métricas de rendimiento como rendimiento y reducciones.

  3. Aumentar con modelos de aprendizaje automático para ayudar en la identificación de tendencias.

  4. Añadir filtros basados en otros indicadores como promedios móviles y medidas de volatilidad para evitar señales falsas.

  5. Optimizar dinámicamente los niveles de stop loss y de ganancias basados en la volatilidad del mercado y el tamaño de las posiciones.

Las mejoras anteriores pueden mejorar la rentabilidad, la estabilidad y la gestión de riesgos de la estrategia.

Conclusión

En general, esta es una estrategia muy práctica de seguimiento de tendencias. Automáticamente rastrea los cambios de tendencias y utiliza stop loss y take profit para controlar los riesgos. En comparación con las estrategias de promedios móviles simples, tiene una capacidad de identificación de tendencias superior y es más adecuada para los mercados de tendencias. Con cierta optimización de parámetros y aumento del aprendizaje automático, esta estrategia puede lograr una estabilidad y ganancias aún mejores. Merece más investigación y aplicación.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity)

// Stop loss and profit amount
stop_loss = input(300, title="Stop Loss Amount")
profit = input (800, title="Profit Amount")

atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

[_, direction] = ta.supertrend(factor, atrPeriod)

long_condition = ta.change(direction) <0
short_condition = ta.change(direction) >0
long_condition_1= (long_condition)?1:0
short_condition_2 = (short_condition)?1:0

stop_price_long = ta.valuewhen(long_condition, low[0]-stop_loss,0)
profit_price_long = ta.valuewhen(long_condition, high[0]+profit,0)
stop_price_short = ta.valuewhen(short_condition, high[0]+stop_loss,0)
profit_price_short = ta.valuewhen(short_condition, low[0]-profit,0)

if (long_condition)
    strategy.entry("Michael3 Long Entry Id", strategy.long)

if (short_condition)
    strategy.entry("Michael3 Short Entry Id", strategy.short)


if (strategy.position_size>0)
    strategy.exit("exit_long",from_entry="Michael3 Long Entry Id",limit=profit_price_long,stop=stop_price_long)

if (strategy.position_size<0)
    strategy.exit("exit_short",from_entry="Michael3 Short Entry Id",limit=profit_price_short,stop=stop_price_short)    
    


//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

Más.