Estratégia da Tartaruga do Canal Duplo

Autora:ChaoZhang, Data: 2024-01-05 16:16:44
Tags:

img

Resumo

A Estratégia da Tartaruga de Avanço do Canal Duplo é uma estratégia de ruptura que gera sinais de negociação usando o indicador do Canal Donchian. A estratégia estabelece canais rápidos e lentos ao mesmo tempo. O canal rápido é usado para definir preços de stop loss, enquanto o canal lento é usado para gerar sinais de abertura e fechamento. Quando o preço atravessa o trilho superior do canal lento, vá longo; quando o preço atravessa o trilho inferior, vá curto. Esta estratégia tem as características de forte rastreamento de tendência e bom controle de drawdown.

Princípios

A lógica central da Estratégia de Tortuga de Descoberta de Canal Duplo é baseada no indicador do Canal Donchian. O Canal Donchian consiste em trilho superior, trilho inferior e trilho médio calculados a partir dos preços mais altos e mais baixos. Esta estratégia cria canais rápidos e lentos simultaneamente, com parâmetros definidos pelo usuário e períodos padrão de 50 bares para o canal lento e 20 bares para o canal rápido.

Os trilhos superiores e inferiores (linhas azuis) do canal lento são usados para gerar sinais de negociação. Quando o preço atravessa o trilho superior, vá longo; quando o preço quebra abaixo do trilho inferior, vá curto. O trilho médio (linha vermelha) do canal rápido é usado para stop loss. O preço de stop loss para posições longas é o trilho médio do canal rápido; o preço de stop loss para posições curtas também é o trilho médio do canal rápido.

Assim, o canal lento gera sinais enquanto o canal rápido controla os riscos. Usando canais duplos garante tanto a estabilidade do sinal quanto o controle do risco. As cores de fundo indicam a direção da posição atual, com verde para longo e vermelho para curto.

Além disso, a estratégia também define a porcentagem de risco e o tamanho da posição. A porcentagem de risco é de 2% e os tamanhos das posições são calculados com base na porcentagem de risco e na volatilidade do canal. Isso controla efetivamente o risco por comércio e o aumento gradual da posição.

Vantagens

A Estratégia da Tartaruga de Descobrimento por Canal Duplo tem as seguintes vantagens:

  1. A estratégia é baseada em um sistema de rastreamento de tendências, que permite que o canal de Donchian seja usado para identificar tendências de médio e longo prazo.

  2. A estratégia também define a porcentagem de risco para limitar diretamente a perda máxima da conta.

  3. Os grandes parâmetros de canal lento exigem um tempo relativamente longo para formar canais, evitando negociação excessiva. Enquanto o canal rápido para a perda e capta correções de curto prazo. Os dois se complementam para formar sinais de negociação estáveis.

  4. A estratégia utiliza a volatilidade do canal de Donchian para calcular o dimensionamento das posições para o controlo da exposição ao risco.

  5. Visualização intuitiva. canais duplos, linhas de stop loss, fundo de posição são todos claramente traçados para fácil compreensão da lógica da estratégia. Enquanto isso, o drawdown máximo, perda máxima e outras métricas-chave também são exibidos.

Riscos

A Estratégia da Tartaruga do Canal Duplo também tem alguns riscos:

  1. Incapaz de utilizar efetivamente os preços intradiários. Turtle só abre posições em breakouts de canal, incapaz de usar uma situação mais precisa para aumentar as posições. Isso pode ser melhorado através da otimização.

  2. Os pontos de stop loss são propensos à caça. Os pontos de stop loss fixos do trilho médio da tartaruga podem ser facilmente atingidos em mercados ativos.

  3. Os parâmetros de canal duplo precisam de ajuste fino. As configurações adequadas dos parâmetros são cruciais para sinais razoáveis e estáveis. Os parâmetros fixos atuais não podem se adaptar às mudanças do mercado, e são necessários recursos adaptativos.

  4. Incapaz de utilizar informações overnight e pré-mercado. Atualmente, a estratégia apenas julga tendências com base em dados de mercado ao vivo, incapaz de informar decisões de negociação com ações de preços overnight e pré-mercado. Isso pode ser abordado por ajuste de dados.

Orientações de otimização

As principais direcções de otimização para a Estratégia da Tartaruga de Descoberta de Canal Duplo são:

  1. Usar preços intradiários para ajustar posições. As posições podem ser ajustadas com base na distância do preço do canal em vez de simplesmente long/short.

  2. Mudança de paradas fixas do trilho médio para cálculos dinâmicos para evitar a caça de paradas fixas.

  3. Optimização adaptativa dos parâmetros do canal: permite que os parâmetros do canal sejam ajustados automaticamente com base nas condições do mercado em vez de valores fixos manuais.

  4. Incorporar informações overnight e pré-mercado, considerando não apenas os preços em tempo real, mas também os preços overnight e pré-mercado ao julgar as tendências para obter condições de mercado mais completas.

  5. Combine várias ações e índices. Aplique a estratégia a várias ações, com oportunidades de arbitragem entre ações e índices para melhorar o alfa.

Conclusão

Em conclusão, a Estratégia da Tartaruga de Descobrimento de Canal Duplo é uma estratégia geral estável e eficiente, seguindo uma estratégia com controle de risco incorporado. O uso duplo de canais rápidos e lentos garante tanto a estabilidade do sinal quanto a gestão de riscos. Além disso, o fundo da posição, o levantamento máximo e o dimensionamento da posição também tornam essa estratégia facilmente gerenciável e otimizável. Em geral, esta é uma estratégia quantitativa de alta qualidade que vale a pena pesquisa e aplicação minuciosas.


/*backtest
start: 2023-12-05 00:00:00
end: 2024-01-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2020

//@version=4
strategy("Noro's RiskTurtle Strategy", shorttitle = "RiskTurtle str", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 100, default_qty_value = 100, commission_value = 0.1)

//Settings
needlong  = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
risk      = input(2, minval = 0.1, maxval = 99, title = "Risk size, %")
fast      = input(20, minval = 1, title = "Fast channel (for stop-loss)")
slow      = input(50, minval = 1, title = "Slow channel (for entries)")
showof    = input(true, defval = true, title = "Show offset")
showll    = input(true, defval = true, title = "Show lines")
showdd    = input(true, defval = true, title = "Show label (drawdown)")
showbg    = input(true, defval = true, title = "Show background")
fromyear  = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear    = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth   = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday   = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today     = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Donchian price channel fast
hf = highest(high, fast)
lf = lowest(low, fast)
center = (hf + lf) / 2

//Donchian price chennal slow
hs = highest(high, slow)
ls = lowest(low, slow)

//Lines
colorpc = showll ? color.blue : na
colorsl = showll ? color.red : na
offset = showof ? 1 : 0
plot(hs, offset = offset, color = colorpc, title = "Slow channel high")
plot(ls, offset = offset, color = colorpc, title = "Slow channel low")
plot(center, offset = offset, color = colorsl, title = "Fast channel stop-loss")

//Background
size = strategy.position_size
colorbg = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na
bgcolor(colorbg, transp = 70)

//Var
loss = 0.0
maxloss = 0.0
equity = 0.0
truetime = true

//Lot size
risksize = -1 * risk
risklong = ((center / hs) - 1) * 100
coeflong = abs(risksize / risklong)
lotlong = (strategy.equity / close) * coeflong
riskshort = ((center / ls) - 1) * 100
coefshort = abs(risksize / riskshort)
lotshort = (strategy.equity / close) * coefshort

//Orders
strategy.entry("Long", strategy.long, lotlong, stop = hs, when = needlong and strategy.position_size == 0 and hs > 0 and truetime)
strategy.entry("Short", strategy.short, lotshort, stop = ls, when = needshort and strategy.position_size == 0 and ls > 0 and truetime)
strategy.exit("LongExit", "Long", stop = center, when = needlong and strategy.position_size > 0)
strategy.exit("Short", stop = center, when = needshort and strategy.position_size < 0)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("Long")
    strategy.cancel("Short")
    
if showdd

    //Drawdown
    max = 0.0
    max := max(strategy.equity, nz(max[1]))
    dd = (strategy.equity / max - 1) * 100
    min = 100.0
    min := min(dd, nz(min[1]))
    
    //Max loss size
    equity := strategy.position_size == 0 ? strategy.equity : equity[1]
    loss := equity < equity[1] ? ((equity / equity[1]) - 1) * 100 : 0
    maxloss := min(nz(maxloss[1]), loss)
    
    //Label
    min := round(min * 100) / 100
    maxloss := round(maxloss * 100) / 100
    labeltext = "Drawdown: " + tostring(min) + "%" + "\nMax.loss " + tostring(maxloss) + "%"
    var label la = na
    label.delete(la)
    tc = min > -100 ? color.white : color.red
    osx = timenow + round(change(time)*10)
    osy = highest(100)
    // la := label.new(x = osx, y = osy, text = labeltext, xloc = xloc.bar_time, yloc = yloc.price, color = color.black, style = label.style_labelup, textcolor = tc)

Mais.