Estrategia de ganancias más allá del trailing stop


Fecha de creación: 2024-01-08 16:24:03 Última modificación: 2024-01-08 16:24:03
Copiar: 0 Número de Visitas: 717
1
Seguir
1617
Seguidores

Estrategia de ganancias más allá del trailing stop

Descripción general

La estrategia de stop-loss móvil es una estrategia de comercio cuantitativa basada en el indicador de superarse. La estrategia realiza paradas y paradas móviles mediante la construcción de condiciones de entrada y salida de posiciones largas y cortas. La ventaja de la estrategia es que se pueden obtener ganancias más altas en una tendencia continua, mientras que se puede bloquear la mayor parte de las ganancias mediante paradas móviles.

Principio de estrategia

La estrategia es un tipo de seguimiento de tendencias basado en la superación del indicador. La superación del indicador permite determinar la dirección de la tendencia de los precios. Cuando la superación del indicador cambia de dirección, genera señales de compra y venta.

Análisis de las ventajas

La mayor ventaja de esta estrategia es la combinación de juicio de tendencia y parada móvil. Se puede capturar la tendencia con mayor precisión al superar el indicador para juzgar la dirección de la tendencia a través de un descenso en el eje 0 y arriba. La parada móvil puede bloquear la mayor parte de las ganancias mientras la tendencia se desarrolla. La configuración de stop loss también es favorable para controlar el riesgo.

Análisis de riesgos

El mayor riesgo de esta estrategia es que es sensible al fracaso de la ruptura. En la zona de liquidación, superar los indicadores puede generar falsas rupturas y erróneamente establecer posiciones. En este caso, es fácil de ser engañado. Además, el mecanismo de parada móvil también puede detenerse demasiado pronto y perder el seguimiento. Finalmente, la configuración incorrecta de la parada puede ser demasiado flexible o demasiado radical, lo que aumenta el riesgo.

Dirección de optimización

La estrategia se puede optimizar de las siguientes maneras: 1) determinar razonablemente los parámetros de los indicadores que se superan para evitar la generación de falsas señales; 2) aumentar los mecanismos para juzgar la fiabilidad de la ruptura, como aumentar las señales de volumen de negocios; 3) optimizar los parámetros de los paradas móviles para minimizar la posibilidad de arbitraje mientras se garantiza la ganancia; 4) usar paradas dinámicas basadas en la volatilidad en lugar de paradas estáticas; 5) agregar otros indicadores para la combinación y mejorar la estabilidad de la estrategia.

Resumir

Más allá de la estrategia móvil de stop loss y ganancias, en general, es una buena estrategia de seguimiento de tendencias. Puede juzgar razonablemente la dirección de la tendencia y tiene un mecanismo de parada móvil. Pero la estrategia también es más sensible a la falla de ruptura y existe un cierto riesgo.

Código Fuente de la Estrategia
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ST Michael Moving TP", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15)

// Stop loss and profit amount
stop_loss = input(1500, title="Stop Loss Amount")
profit = input (15000, title="Profit Amount")
LongTrailProfit = input (0.91, title = "Long Trailing Profit Taking")
ShortTrailProfit = input (1.01, title = "Short Trailing Profit Taking")

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


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)

atr=ta.atr(10)

intrade_long = strategy.position_size > 0
intrade_short = strategy.position_size < 0
exitConditionLong = (close < (close[1]*LongTrailProfit)) 
exitConditionShort = (close > (close[1]*ShortTrailProfit))

if (long_condition)
    strategy.entry("Long3", strategy.long)
if (intrade_long and exitConditionLong)
    strategy.close("Long3")

if (short_condition)
    strategy.entry("Short3", strategy.short)
if (intrade_short and exitConditionShort)
    strategy.close ("Short3")

if (strategy.position_size>0)
    strategy.exit("exit_long",from_entry="Long3",limit=profit_price_long,stop=stop_price_long)

if (strategy.position_size<0)
    strategy.exit("exit_short",from_entry="Short3",limit=profit_price_short,stop=stop_price_short)