Estratégia de negociação de tartarugas baseada em média móvel simples


Data de criação: 2023-12-29 16:45:51 última modificação: 2023-12-29 16:45:51
cópia: 2 Cliques: 848
1
focar em
1621
Seguidores

Estratégia de negociação de tartarugas baseada em média móvel simples

Visão geral

Esta estratégia é obtida através da computação de uma média móvel simples de dois conjuntos de diferentes parâmetros, e usá-la como um sinal de posição e posição. A estratégia foi proposta pela primeira vez pelo comerciante americano Richard Dennis em 1983, para obter lucros estáveis com base em regras simples, e depois foi divulgada e amplamente conhecida por Curtis Faith.

Princípio da estratégia

A estratégia calcula simultaneamente dois conjuntos de linha rápida e linha lenta. O parâmetro da linha rápida é definido como um período de construção de posição de 20 dias e um período de liquidação de 10 dias. O parâmetro da linha lenta é definido como um período de construção de posição de 55 dias e um período de liquidação de 20 dias.

A estratégia se baseia na teoria da linha de equilíbrio das médias móveis para obter lucro. Ou seja, quando a média curta é atravessada pela média de longo prazo, é considerada um sinal de aumento de preço; quando a baixa é usada como sinal de queda de preço. As linhas rápidas e lentas desta estratégia desempenham um papel semelhante.

Vantagens estratégicas

  1. As regras são simples, claras, fáceis de entender e de implementar, adequadas para os iniciantes;
  2. A construção de armazéns com padrões claros, evitando transações frequentes;
  3. A combinação de uma média móvel rápida e uma média móvel lenta pode suavizar o ruído causado pelas mudanças de preço e produzir um sinal de negociação mais claro;
  4. A utilização de múltiplos conjuntos de parâmetros para a combinação permite controlar o risco e evitar transações erradas;
  5. O que é um banco de dados?

Riscos e soluções

  1. A estratégia em si é mais mecânica, não permite a avaliação de situações especiais, e tem um limite de lucro;
    • Pode tentar introduzir mais indicadores ou modelos baseados em aprendizado de máquina para auxiliar a decisão
  2. A média móvel, como indicador de referência, está um pouco atrasada;
    • Reduzir adequadamente o ciclo de construção e manutenção de armazéns
  3. Não há restrições quanto à retirada máxima.
    • Ponto de paragem ajustável

Direção de otimização

  1. Aumentar o módulo de stop loss para controlar a retirada máxima
  2. Combinação com outros indicadores de filtragem
  3. Ajuste dinâmico dos parâmetros da média móvel
  4. Adição de módulos de processamento de dados e eliminação de dados anormais
  5. Modelos de aprendizagem de máquina para determinar tendências

Resumir

Esta estratégia é uma estratégia típica de acompanhamento de tendências. Estabelece regras de negociação com base em uma simples média móvel dupla, obtendo ganhos estáveis ao acompanhar as tendências do mercado.

Código-fonte da estratégia
/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//coded by tmr0
//original idea from «Way of the Turtle: The Secret Methods that Turned Ordinary People into Legendary Traders» (2007) CURTIS FAITH
strategy("20 years old Turtles strategy by tmr0", shorttitle = "Turtles", overlay=true)

enter_fast = input(20, minval=1)
exit_fast = input(10, minval=1)
enter_slow = input(55, minval=1)
exit_slow = input(20, minval=1)

fastL = highest(enter_fast)
fastLC = lowest(exit_fast)
fastS = lowest(enter_fast)
fastSC = highest(exit_fast)

slowL = highest(enter_slow)
slowLC = lowest(exit_slow)
slowS = lowest(enter_slow)
slowSC = highest(exit_slow)

enterL1 = high > fastL[1]
exitL1 = low <= fastLC[1]
enterS1 = low < fastS[1]
exitS1 = high >= fastSC[1]

enterL2 = high > slowL[1]
exitL2 = low <= slowLC[1]
enterS2 = low < slowS[1]
exitS2 = high >= slowSC[1]


//bgcolor(exitL1 or exitL2? red: enterL1 or enterL2? navy:white)

strategy.entry("fast L", strategy.long, when = enterL1)
strategy.entry("fast S", strategy.short, when = enterS1)
strategy.close("fast L", when = exitL1)
strategy.close("fast S", when = exitS1)

strategy.entry("slow L", strategy.long, when = enterL2)
strategy.entry("slow S", strategy.short, when = enterS2)
strategy.close("slow L", when = exitL2)
strategy.close("slow S", when = exitS2)
//zl=0
//z=strategy.netprofit / 37 * koef  //ежемесячная прибыль
//z=strategy.grossprofit/strategy.grossloss
//z1=plot (z, style=line, linewidth=3, color = z>zl?green:red, transp = 30)
//hline(zl, title="Zero", linewidth=1, color=gray, linestyle=dashed)