Estratégia de negociação de stop duplo de tartaruga


Data de criação: 2023-12-20 13:37:31 última modificação: 2023-12-20 13:37:31
cópia: 0 Cliques: 346
1
focar em
1166
Seguidores

Estratégia de negociação de stop duplo de tartaruga

Visão geral

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.

Princípio da estratégia

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.

Análise de vantagens

  • Controle de risco e maximizar o bloqueio de lucro com o duplo rastreamento de stop loss
  • A combinação de dois tipos de indicadores de longo e curto prazo permite filtrar parte do ruído e entrar em jogo quando há uma tendência mais clara.
  • A conservadão da política de controle livre pode ser ajustada por parâmetros

Análise de Riscos

  • A estratégia é mais conservadora, e é fácil perder algumas oportunidades.
  • Ponto de parada mal definido pode parar prematuramente
  • Menos transações, maior probabilidade de perdas

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.

Direção de otimização

  • Parâmetros de otimização de long e profit para encontrar a combinação ideal de parâmetros
  • Tente o algoritmo de perda de palavras ou perda de linha de sombra para reduzir a perda desnecessária
  • Aumentar as condições de abertura para filtrar o ruído e encontrar tendências mais claras
  • Buscando por verdadeiras inovações, combinadas com indicadores de volume de negócios

Resumir

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.

Código-fonte da estratégia
/*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) 
//--------------------------------------------------------------