
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.
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.
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.
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.
/*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)
//--------------------------------------------------------------