A estratégia utiliza a regra de negociação da pirâmide para estabelecer dois pontos de parada de rastreamento, limitando os prejuízos através de um stop loss de duplo rastreamento, ao mesmo tempo em que configura diferentes parâmetros para filtrar o ruído do mercado e comprar quando a tendência é mais evidente.
A estratégia determina o momento de compra principalmente através de dois pontos de parada long_1 e long_2. Long_1 segue a tendência de longo prazo, long_2 segue a tendência de curto prazo. Ao mesmo tempo, define profit1 e profit2 como pontos de parada.
Se o preço for superior a long_1, o mercado estará em uma tendência ascendente de longo prazo. Neste momento, se o preço for inferior a long_2, o que indica que a retracção em curto prazo oferece uma melhor oportunidade de entrada, então faça mais; se o preço for inferior a long_1, o longo prazo não determina a tendência.
Após a entrada, configure dois pontos de parada de rastreamento: stoploss1 e stoploss2, e compare com profit1, profit2 para obter o valor máximo e, assim, bloquear o lucro.
Pode-se ajustar os parâmetros de long e profit de forma apropriada para tornar a estratégia mais agressiva, aumentando o número de transações. Ao mesmo tempo, otimizar o algoritmo de ponto de parada e realizar o ajuste automático.
A estratégia em geral é mais conservadora e adequada para investidores de crescimento estável. A agressividade da estratégia pode ser apropriadamente aumentada por meio de ajustes de parâmetros e otimização de algoritmos de stop loss. Além disso, o aumento do mecanismo de filtragem de ruído do mercado também é uma direção de otimização 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)
//--------------------------------------------------------------