Estrategia de stop loss siguiendo tendencias


Fecha de creación: 2023-10-30 15:21:54 Última modificación: 2023-10-30 15:21:54
Copiar: 0 Número de Visitas: 699
1
Seguir
1617
Seguidores

Estrategia de stop loss siguiendo tendencias

Descripción general

Esta estrategia combina el seguimiento de la tendencia para detener la pérdida y el bloqueo de la lógica de salida, para lograr un beneficio de seguimiento continuo de la tendencia. La estrategia utiliza la línea de paridad para determinar la dirección de la tendencia, y genera una señal de negociación cuando el precio rompe la línea de paridad. Una vez que se ingresa en una posición de varios titulares, la estrategia establece el límite de pérdida de acuerdo con el valor de ATR, y al mismo tiempo utiliza la lógica de seguimiento de la tendencia para ajustar el límite de pérdida, al mismo tiempo que protege las ganancias.

Principio de estrategia

  1. De acuerdo con el rango de tiempo de respuesta de la entrada del usuario, configure la hora de inicio y finalización de la respuesta.

  2. Establezca el precio de parada para las posiciones largas y cortas, y el porcentaje de seguimiento de la parada.

  3. Cuando el precio rompe la línea media se produce una señal de hacer más entrada.

  4. Calcule la distancia de parada en función del valor ATR y establezca el precio de parada.

  5. Cuando el precio continúe subiendo, se puede seguir el rastreo y ajustar el stop loss para que se mueva gradualmente hacia arriba y se bloquee más ganancias.

  6. Cuando el precio sube hasta el límite establecido, se detiene la posición parcialmente.

  7. Cuando la línea media se rompa y se produce una señal de falta, se hace una entrada de falta.

  8. Calcule la distancia de parada en función del valor ATR y establezca el precio de parada.

  9. Cuando el precio continúe bajando, se puede seguir el rastreo y ajustar el stop loss para que se mueva gradualmente hacia abajo y se bloqueen más ganancias.

  10. Cuando el precio cae a un límite de parada establecido, se detiene la posición parcialmente.

Ventajas estratégicas

  • Utilizando el mecanismo de seguimiento de tendencias, se puede obtener ganancias al mismo tiempo que se protege la ganancia, lo que es más ventajoso que la distancia de parada fija tradicional.

  • La combinación de los indicadores ATR con el cálculo de la distancia de parada dinámica puede responder de manera efectiva a las fluctuaciones del mercado y reducir la probabilidad de que se desencadene un stop loss.

  • La lógica de bloqueo parcial puede bloquear parte de los beneficios y reducir el riesgo de retiro.

  • La lógica de la estrategia es simple y clara, fácil de entender y implementar, adecuada para los traders.

Riesgo estratégico

  • Cuando la tendencia se invierte repentinamente, la distancia de parada puede ser demasiado grande para detenerla a tiempo, lo que puede provocar grandes pérdidas.

  • La distancia de pérdida calculada por el indicador ATR puede ser demasiado flexible y puede ser activada por el ruido del mercado.

  • Algunas de las proporciones de paradas están mal configuradas, lo que puede perder oportunidades de tendencia o aumentar las pérdidas.

  • Se necesitan muchos parámetros para optimizar, como el ciclo ATR, la proporción de seguimiento de pérdidas, la proporción de paradas parciales, etc. La optimización es más difícil.

  • La estrategia se basa solo en la línea media y los indicadores ATR, que producen errores de negociación cuando emiten señales erróneas.

Dirección de optimización de la estrategia

  • Se puede combinar con otros indicadores para filtrar las señales de negociación y evitar que se produzcan señales erróneas en la línea uniforme. Por ejemplo, MACD, KD, etc.

  • Se puede considerar cambiar el parón parcial fijo por un parón proporcional dinámico, ajustado según la intensidad de la tendencia.

  • Se pueden probar diferentes parámetros del ciclo ATR, con el parámetro más estable. También se pueden combinar otros indicadores para determinar la distancia de parada.

  • Se puede introducir algoritmos de aprendizaje automático para optimizar automáticamente los parámetros y ajustar los parámetros en tiempo real según el mercado.

  • Se puede combinar con algoritmos avanzados como el aprendizaje profundo para identificar automáticamente las tendencias y generar señales de transacción a través del entrenamiento de modelos.

Resumir

Esta estrategia integra los paros de seguimiento de tendencias, los paros dinámicos ATR y la lógica de paradas parciales, puede seguir continuamente la tendencia para detenerse, y también tiene una cierta ventaja en el control de la retirada. Sin embargo, la estrategia también tiene ciertas limitaciones, como la tendencia de determinar el indicador de sencillez, la dificultad de optimizar los parámetros, etc. Esto nos da una buena dirección de optimización, con la introducción de más indicadores y medios técnicos, con la esperanza de mejorar aún más la estabilidad de la estrategia y la rentabilidad.

Código Fuente de la Estrategia
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
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/
// © felipefs

//@version=4
strategy("Meu Script", overlay=true)
plot(ohlc4)

//Funçao de Datas
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(6, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => time >= testPeriodStart and time <= testPeriodStop ? true : false

//Funções de Trailing Stop
long_stop_price = 0.0
short_stop_price = 0.0
long_trail_perc = 0
short_trail_perc = 0

long_stop_price := if (strategy.position_size > 0)
    stopValue = close * (1 - long_trail_perc)
    max(stopValue, long_stop_price[1])
else
    0

short_stop_price := if (strategy.position_size < 0)
    stopValue = close * (1 + short_trail_perc)
    min(stopValue, short_stop_price[1])
else
    999999

//Função de Debug
debug(value) =>
    x = bar_index
    y = close
    label.new(x, y, tostring(value))
    
//Take Profit
profit = close * (1 + 0.12)
strategy.entry("Long", true)
strategy.exit("Take Profit 1 Long", from_entry="Long", limit=profit, qty_percent=50.0)
 
//ATR Stop
 
// xATRTrailingStopLong = 0.0
// xATR = atr(nATRPeriod)
// nLossLong = nATRMultipLong * xATR

// if (strategy.position_size > 0)
//     xATRTrailingStopLong := max(nz(xATRTrailingStopLong[1]), close - nLossLong)