O recurso está a ser carregado... Carregamento...

Estratégia de comércio de tartarugas de duplo rastreamento

Autora:ChaoZhang, Data: 2023-12-20 13:37:31
Tags:

img

Resumo

Esta estratégia utiliza dois pontos de stop loss de rastreamento com base nas regras de negociação de tartarugas para limitar as perdas, enquanto define diferentes parâmetros para filtrar o ruído do mercado e entrar em tendências mais pronunciadas.

Estratégia lógica

A estratégia baseia-se principalmente em dois pontos de rastreamento de stop loss, long_1 e long_2, para determinar os sinais de entrada. Long_1 rastreia a tendência de longo prazo, enquanto long_2 rastreia o curto prazo. Profit1 e profit2 atuam como pontos de stop loss.

Se o preço estiver acima de long_1, o mercado está em uma tendência de alta a longo prazo. Se o preço cair abaixo de long_2, isso indica um pullback a curto prazo, fornecendo uma boa oportunidade de entrada para longo prazo. Se o preço estiver abaixo de long_1, não há uma tendência de longo prazo confirmada. Mas se o preço ultrapassar long_2, isso sinaliza um salto a curto prazo e também pode tomar uma posição longa.

Após a entrada, são definidos dois stop loss de rastreamento stoploss1 e stoploss2 e comparados com o lucro1 e o lucro2 para obter o valor máximo, a fim de bloquear os lucros.

Análise das vantagens

  • A dupla traçabilidade do stop loss controla eficazmente os riscos e bloqueia os lucros
  • A combinação de indicadores a longo prazo e a curto prazo permite filtrar algum ruído e introduz tendências mais pronunciadas
  • Flexibilidade para ajustar o conservadorismo da estratégia através de ajustes de parâmetros

Análise de riscos

  • A estratégia é conservadora e pode perder algumas oportunidades.
  • A definição incorreta de stop loss pode provocar uma saída prematura
  • Menos negócios, por isso um único impacto de perda comercial pode ser grande

Pode tornar a estratégia mais agressiva ajustando parâmetros de longo e lucro para mais negócios.

Orientações de otimização

  • Encontre combinações ótimas de parâmetros para longo e lucro
  • Experimentação com perdas de ziguezague ou sombra para reduzir paradas desnecessárias
  • Adicionar mais filtros de entrada para detectar tendências mais fortes estabelecidas
  • Incorporar indicadores de volume para detectar breakouts reais

Resumo

Esta é uma estratégia geral conservadora adequada para investidores que buscam crescimento constante. Ao ajustar parâmetros e otimizar algoritmos de stop loss, a agressão pode ser aumentada.


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

Mais.