Estrategia de stop loss y take profit de porcentaje fijo basada en promedios móviles

El autor:¿ Qué pasa?, Fecha: 2023-12-18 11:30:39
Las etiquetas:

img

Resumen general

Esta estrategia utiliza promedios móviles para generar señales de negociación y establece un porcentaje fijo de stop loss y toma niveles de ganancia basados en el precio de entrada para controlar el riesgo y la recompensa de cada operación.

Estrategia lógica

La estrategia utiliza primero la media móvil exponencial de 5 días (EMA) y la EMA de 32 días para determinar la dirección de la tendencia.

Después de entrar en una operación, la estrategia establece dinámicamente el stop loss y take profit para cada operación en función del porcentaje de stop loss y take profit definido por el usuario. Específicamente, para operaciones largas, el stop loss se establece en el precio de entrada × (1 - porcentaje de stop loss) y el take profit se establece en el precio de entrada × (1 + porcentaje de take profit). Para operaciones cortas se invierte - stop loss en el precio de entrada × (1 + porcentaje de stop loss) y take profit en el precio de entrada × (1 - porcentaje de take profit).

Esto permite garantizar una relación riesgo/beneficio fija para cada operación y controlar el riesgo y el beneficio.

Análisis de ventajas

Esta forma de establecer el stop loss y el take profit tiene varias ventajas significativas:

  1. Puede limitar la pérdida máxima por operación y controlar eficazmente el riesgo comercial.

  2. Puede bloquear la relación de ganancias fijas por comercio y garantizar el rendimiento.

  3. Los puntos de stop loss y take profit varían con el precio de entrada real en lugar de utilizar valores fijos.

  4. Los usuarios pueden determinar su apetito por el riesgo ajustando los parámetros de entrada.

  5. Lógica de estrategia simple e intuitiva, fácil de entender y verificar.

Análisis de riesgos

También hay algunos riesgos con esta estrategia:

  1. Las medias móviles pueden generar señales invalidas excesivas, con una alta probabilidad de que se detengan después de la entrada.

  2. La tasa de ganancias demasiado alta puede resultar en una rentabilidad insuficiente, demasiado baja puede no ganar lo suficiente.

  3. El stop loss demasiado cercano puede aumentar la probabilidad de ser detenido y debe proporcionar un amortiguador.

  4. La elección de los productos de negociación y los plazos pueden afectar a la eficacia.

Soluciones correspondientes:

  1. Optimice los parámetros de la media móvil para reducir las señales falsas.

  2. Prueba diferentes ratios de ganancias para encontrar el óptimo.

  3. Ajustar la distancia de stop loss en función de la volatilidad del mercado.

  4. Evaluar el rendimiento de la estrategia en diferentes productos y plazos.

Direcciones de optimización

La estrategia puede mejorarse en los siguientes aspectos:

  1. Añadir otros indicadores para la validación de tendencias para evitar señales falsas excesivas de las medias móviles.

  2. Optimice el stop loss y tome porcentajes de ganancias basados en datos de backtest para encontrar parámetros óptimos.

  3. Cambiar el stop loss a trailing stop para obtener más ganancias.

  4. Añadir reglas de dimensionamiento de posiciones con pirámide y stop loss para gestionar el riesgo comercial.

  5. Evaluar la variación del rendimiento en diferentes instrumentos de negociación y plazos.

Resumen de las actividades

Esta estrategia identifica la dirección de la tendencia con promedios móviles, y establece un porcentaje fijo de stop loss y take profit basado en el precio de entrada para controlar el riesgo y la recompensa de una sola operación.


/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © theCrypster 2020

//@version=4
strategy("Fixed Percent Stop Loss & Take Profit %", overlay=true)

// Moving Averages to get some example trades generated
eg1 = ema(close, 5)
eg2 = ema(close, 32)

long = crossover(eg1, eg2)
short = crossunder(eg1, eg2)

strategy.entry("LONG", strategy.long, when=long)
strategy.entry("SHORT", strategy.short, when=short)

//
// The Fixed Percent Stop Loss Code
// User Options to Change Inputs (%)
stopPer = input(5.0, title='Stop Loss %', type=input.float) / 100
takePer = input(10.0, title='Take Profit %', type=input.float) / 100

// Determine where you've entered and in what direction
longStop = strategy.position_avg_price * (1 - stopPer)
shortStop = strategy.position_avg_price * (1 + stopPer)
shortTake = strategy.position_avg_price * (1 - takePer)
longTake = strategy.position_avg_price * (1 + takePer)

if strategy.position_size > 0 
    strategy.exit(id="Close Long", stop=longStop, limit=longTake)
if strategy.position_size < 0 
    strategy.exit(id="Close Short", stop=shortStop, limit=shortTake)

//PLOT FIXED SLTP LINE
plot(strategy.position_size > 0 ? longStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Fixed SL")
plot(strategy.position_size < 0 ? shortStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Short Fixed SL")
plot(strategy.position_size > 0 ? longTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Long Take Profit")
plot(strategy.position_size < 0 ? shortTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Short Take Profit")

//




Más.