Estrategia de trading de tortuga con doble trailing stop


Fecha de creación: 2023-12-20 13:37:31 Última modificación: 2023-12-20 13:37:31
Copiar: 1 Número de Visitas: 627
1
Seguir
1621
Seguidores

Estrategia de trading de tortuga con doble trailing stop

Descripción general

La estrategia utiliza el principio de la piratería para establecer dos puntos de trazabilidad, limitar las pérdidas mediante el doble trazabilidad, y configurar diferentes parámetros para filtrar el ruido del mercado y comprar cuando la tendencia es más evidente.

Principio de estrategia

La estrategia se basa en la determinación de la hora de comprar a través de dos puntos de parada de seguimiento de pérdidas long_1 y long_2. Long_1 sigue la tendencia a más largo plazo, y long_2 sigue la tendencia a más corto plazo. Al mismo tiempo, establece profit1 y profit2 como puntos de parada.

Si el precio es superior a long_1, el mercado está en una tendencia al alza a largo plazo, en este momento si el precio es inferior a long_2, lo que indica que el corto plazo ofrece una mejor oportunidad de entrada, entonces ingrese más; si el precio es inferior a long_1, no se ha determinado la tendencia a largo plazo, y si el precio es superior a long_2, lo que indica un rebote a corto plazo, también se puede ingresar.

Después de entrar, configure dos puntos de seguimiento de stoploss1 y stoploss2, y compare con profit1 y profit2 para obtener el valor máximo y así bloquear las ganancias.

Análisis de las ventajas

  • Con el doble seguimiento de los paros, los riesgos se controlan de manera efectiva y los beneficios se bloquean al máximo.
  • La combinación de dos tipos de indicadores de largo y corto plazo permite filtrar parte del ruido y entrar en juego cuando hay una tendencia más clara.
  • La conservaduridad de las políticas de control libre se puede ajustar mediante parámetros

Análisis de riesgos

  • Las estrategias son más conservadoras, y es fácil perder algunas oportunidades.
  • Punto de parada mal configurado puede detenerse prematuramente
  • Menos transacciones y más pérdidas por transacción

Se puede ajustar adecuadamente los parámetros de long y profit para que la estrategia sea más agresiva y aumentar el número de operaciones. Al mismo tiempo, se puede optimizar el algoritmo de punto de parada para lograr un ajuste automático.

Dirección de optimización

  • Optimización de los parámetros de long y profit para encontrar la combinación óptima de parámetros
  • Prueba el algoritmo de pérdida de palabras o pérdida de líneas de sombra para reducir la pérdida innecesaria
  • Aumentar las condiciones de apertura para filtrar el ruido y encontrar tendencias más claras
  • Buscando verdaderos avances junto con los indicadores de volumen de transacciones

Resumir

La estrategia en su conjunto es más conservadora y adecuada para inversionistas de crecimiento estable. Se puede aumentar adecuadamente la agresividad de la estrategia mediante la optimización de los ajustes de parámetros y los algoritmos de stop loss. Además, el aumento del mecanismo de filtrado del ruido del mercado también es una dirección de optimización posterior.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Turtle Project",overlay= true)
//-----------------------------------------------------------
entry_1 =  input(55) 
profit_1 =  input(20)             

long_1 = float(na)                                                             
long_1:= if high[entry_1] >= highest(high,entry_1)                   
    high[entry_1]                                                            
else                                                                              
    long_1[1]                                                                   


profit1 = float(na)                                                            
profit1:= if low[profit_1] <= lowest(low,profit_1)                   
    low[profit_1]                                                            
else                                                                            
    profit1[1]                      
//-----------------------------------------------------------
entry_2 =  input(20) 
profit_2 =  input(10)             

long_2 = float(na)                                                             
long_2:= if high[entry_2] >= highest(high,entry_2)                   
    high[entry_2]                                                            
else                                                                              
    long_2[1]                                                                   


profit2 = float(na)                                                            
profit2:= if low[profit_2] <= lowest(low,profit_2)                   
    low[profit_2]                                                            
else                                                                           
    profit2[1]                      
//------------------------------------------------------------
stoploss_1= lowest(low,1) < long_1 and highest(high,1) > long_1
stoploss_2= lowest(low,1) < long_2 and highest(high,1) > long_2 

stop_1 = input(1)/100
stop_2 = input(2)/100

plotchar(stoploss_1, "high1", "▲",location.top,color=color.red )
plotchar(stoploss_2, "high2", "▲",location.top,color=color.blue)


//------------------------------------------------------------
if strategy.position_size == 0
    if low < long_1
        if high < long_1 
            strategy.entry("longlong_4",strategy.long, stop=long_1)

if strategy.position_size == 0    
    if low > long_1
        if high < long_2 
            strategy.entry("longlong_3",strategy.long, stop=long_2)

stoploss1 = float(na)
stoploss1:= stoploss_1 ? strategy.position_avg_price * (1 - stop_1) : stoploss1[1]
stoploss__1 = max(stoploss1,profit1)

if high > long_1 and strategy.position_size > 0
    strategy.exit("exit_1 ","longlong_4",stop=stoploss__1)

stoploss2 = float(na)
stoploss2:= stoploss_2 ? strategy.position_avg_price * (1 - stop_2) : stoploss2[1]
stoploss__2 = max(stoploss2,profit2)

if high > long_2 and strategy.position_size > 0
    strategy.exit("exit_2 ","longlong_3",stop=stoploss__2)
//--------------------------------------------------------------
plot(long_1,color=color.red ,linewidth=3)
plot(long_2,color=color.blue,linewidth=3)

plot(profit1,color=color.red,   linewidth=1)
plot(profit2,color=color.blue,  linewidth=1)

//plot(stoploss__1,style=plot.style_circles, color=color.yellow) 
//plot(stoploss__2,style=plot.style_circles, color=color.yellow) 

plot(stoploss1,style=plot.style_circles, color=color.blue) 
plot(stoploss2,style=plot.style_circles, color=color.red) 
//--------------------------------------------------------------