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

Autora:ChaoZhang, Data: 2023-12-29 16:45:51
Tags:

img

Resumo

Esta estratégia gera lucro calculadora de dois grupos de médias móveis simples com parâmetros diferentes e usando-os como sinais para abertura e fechamento de posições.

Princípios

A estratégia calcula simultaneamente dois grupos de linhas rápidas e lentas. Os parâmetros da linha rápida são definidos em 20 dias para posições de abertura e 10 dias para posições de fechamento. Os parâmetros da linha lenta são 55 dias e 20 dias, respectivamente. Quando o preço cruza acima do valor mais alto do período de abertura da linha rápida, ele desencadeia um sinal longo. Quando o preço cai abaixo do valor mais baixo do período de abertura da linha rápida, ele desencadeia um sinal curto. Da mesma forma, quando o preço cai abaixo do valor mais baixo do período de fechamento da linha rápida, ele fecha as posições longas. Quando o preço quebra o valor mais alto do período de fechamento da linha rápida, ele fecha as posições curtas. A linha lenta tem a mesma lógica para abrir e fechar posições como a linha rápida.

A estratégia baseia-se na teoria da média móvel para obter lucros. Ou seja, quando a média móvel de curto prazo cruza acima da média móvel de longo prazo, ela é considerada um sinal de alta. Quando ela cruza abaixo, ela sinaliza uma tendência de queda. As linhas rápidas e lentas nesta estratégia desempenham papéis semelhantes.

Vantagens

  1. Regras simples e claras, fáceis de compreender e de aplicar, adequadas para iniciantes;
  2. Critérios claros para a abertura e encerramento de posições, evitando a troca frequente;
  3. A combinação de médias móveis duplas rápidas e lentas suaviza as flutuações de preços e gera sinais de negociação mais claros;
  4. A utilização de conjuntos múltiplos de parâmetros ajuda a controlar os riscos e a prevenir operações errôneas;
  5. Lucros constantes a longo prazo, validados em negociações ao vivo.

Riscos e atenuações

  1. A estratégia em si é mecânica e não pode fazer julgamentos sobre condições especiais de mercado, tendo assim limitações de lucro;
    • Tentar incorporar mais indicadores ou modelos de aprendizagem de máquina para ajudar na tomada de decisões
  2. As médias móveis como indicadores atrasados apresentam alguma latência;
    • Redução adequada dos períodos de abertura e encerramento
  3. Incapaz de limitar a utilização máxima.
    • Estabelecer pontos de stop-loss

Orientações de otimização

  1. Adicionar módulo de stop-loss para controlar o drawdown máximo
  2. Incorporar outros indicadores para filtrar sinais
  3. Ajustar dinamicamente os parâmetros da média móvel
  4. Adicionar módulo de processamento de dados para eliminar os impactos de dados anormais
  5. Incorporar modelos de aprendizagem de máquina para determinar tendências

Resumo

Esta é uma estratégia típica de seguir tendências. Ao estabelecer regras de negociação baseadas em médias móveis duplas simples e rastrear tendências de mercado, ele alcança lucros constantes. A estratégia é fácil de entender e implementar com sinais de abertura claros e lucros verificados a longo prazo do comércio ao vivo, tornando-a muito adequada para iniciantes aprenderem e pesquisarem. Também estabelece as bases para negociações quantitativas mais complexas.


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

Mais.