Estratégia de Comércio de Tartarugas de Richard

Autora:ChaoZhang, Data: 2024-02-06 11:56:47
Tags:

img

Resumo

A estratégia de negociação de tartaruga de Richard é uma estratégia de negociação baseada nas técnicas de negociação de tartaruga de Richard Dennis.

Estratégia lógica

A lógica central da estratégia de negociação de tartaruga de Richard é rastrear tendências com base em quebras de preços. Especificamente, a estratégia monitora continuamente os preços mais altos (_20_day_highest) e mais baixos (_20_day_lowest) nos últimos 20 dias. Quando o preço de fechamento quebra a alta de 20 dias, ele sinaliza uma quebra ascendente, desencadeando uma ordem longa. Quando o preço de fechamento cai abaixo da baixa de 20 dias, ele sinaliza uma quebra descendente, desencadeando uma ordem curta.

Após a entrada de posições, a estratégia usa o Average True Range (ATR) para calcular o preço de stop loss. Ele também rastreia os preços altos e baixos de 10 dias para stop loss de deslizamento. Quando a stop loss longa ou a stop loss de deslizamento é acionada, ele fechará a posição longa. Quando a stop loss curta ou a stop loss de deslizamento é acionada, ele fechará a posição curta.

Vantagens

A estratégia comercial de tartarugas de Richard tem as seguintes vantagens:

  1. Pode identificar automaticamente reversões de tendência e ajustar as posições em conformidade.
  2. O mecanismo de stop loss ATR controla eficazmente a perda de stop loss único.
  3. O mecanismo de stop loss de deslizamento bloqueia alguns lucros e reduz os drawdowns.
  4. A lógica da estratégia é simples e fácil de entender para iniciantes.
  5. Não há necessidade de prever tendências de mercado ou cálculos complexos, apenas simples negociação baseada em regras.

Riscos

Há também alguns riscos com a estratégia de negociação de tartarugas de Richard:

  1. A negociação de breakout é propensa a ficar presa, gerando por vezes uma frequência excessiva de negociação.
  2. O ATR e o stop loss de deslizamento podem ser demasiado rigorosos, causando ocasionalmente uma stop loss prematura.
  3. Utiliza apenas dados de preços sem combinar outros fatores para prever a continuidade da tendência.
  4. O risco de excesso de aptidão, os resultados reais da negociação podem ser pobres.

Para mitigar esses riscos, podemos otimizar as condições de entrada com mais indicadores para prever tendências; ajustar algoritmos de stop loss para reduzir a frequência de stop loss.

Orientações de otimização

A estratégia de comércio de tartarugas de Richard pode ser otimizada nos seguintes aspectos:

  1. Otimizar parâmetros para encontrar combinações ótimas de parâmetros, como ajustar o ciclo de cálculo ou testar múltiplos ATR diferentes.
  2. Incorporar mais indicadores ou algoritmos de aprendizagem de máquina para julgar a continuidade da tendência, como médias móveis, indicadores de impulso, etc.
  3. Otimizar os métodos de stop loss, tais como testes de stop loss de deslizamento flexível, trailing stop loss, etc.
  4. Combine indicadores de sentimento, notícias e mais informações para prever os movimentos do mercado.

Conclusão

A estratégia de negociação de tartaruga de Richard é uma estratégia de tendência de ruptura muito típica. É simples e prática, boa para os iniciantes aprenderem e um paradigma de negociação quântica. A estratégia pode ser otimizada de muitas maneiras para reduzir riscos e aumentar a lucratividade.


/*backtest
start: 2023-02-05 00:00:00
end: 2024-02-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © melodyera0822

//@version=4
strategy("Richard Strategy", overlay=true)

// User input
variable_for_stoploss = input(4,title="stop loss var")
lenght = input(20,title="lenght")

// high_low
_20_day_highest = highest(nz(close[1]), lenght)
_20_day_lowest = lowest(nz(close[1]), lenght)

_10_day_low = lowest(nz(close[1]), lenght/2)
_10_day_high = highest(nz(close[1]), lenght/2)

//indicators
atr20 = atr(20)
ema_atr20 = ema(atr20,20)

//vars
var traded = "false"
var buy_sell = "none"
var buyExit = false
var sellExit = false
var stoploss = 0

buyCon = close > _20_day_highest and traded == "false"
plotshape(buyCon,style = shape.triangleup,location = location.belowbar, color = color.green )
if (buyCon)
    strategy.entry("long", strategy.long, when = buyCon)
    traded := "true"
    buy_sell := "buy"
    stoploss := round(close - variable_for_stoploss * ema_atr20)
    
sellCon = close < _20_day_lowest and  traded == "false"
plotshape(sellCon,style = shape.triangledown, color = color.red )
if (sellCon)
    strategy.entry("short", strategy.short)
    traded := "true"
    buy_sell := "sell"
    stoploss := round(close - variable_for_stoploss * ema_atr20)

if traded == "true"
    if buy_sell == "buy" and ((close<stoploss)or(close<_10_day_low))
        strategy.close("long")
        buyExit := true
        traded := "false"
        
    if buy_sell == "sell" and ((close>stoploss)or(close>_10_day_high))
        strategy.close("short")
        sellExit := true
        traded := "false"
        
plotshape(buyExit,style = shape.triangleup,location = location.belowbar, color = color.yellow )
buyExit := false
plotshape(sellExit,style = shape.triangledown, color = color.yellow )
sellExit := false

Mais.