Estratégia dupla de acompanhamento de tendências

Autora:ChaoZhang, Data: 2023-09-27 16:14:25
Tags:

Resumo

A estratégia de rastreamento de tendências duplas combina dois sinais de estratégia diferentes para capturar com mais precisão as tendências do mercado e gerar retornos excessivos.

Estratégia lógica

A estratégia consiste em duas partes:

  1. 123 Estratégia de reversão

    A estratégia de reversão 123 avalia primeiro a relação entre os preços de fechamento dos dois dias anteriores.

    Quando a linha rápida de Stoch está abaixo de um certo nível (por exemplo, 50) e a linha lenta está acima da linha rápida, ela é considerada sobrevendida e gera um sinal de compra.

    Assim, a estratégia de reversão 123 requer confirmação do indicador Stoch, além de identificar a reversão de preços para gerar sinais de negociação reais.

  2. Indicador de sobrecompra/supervenda

    O indicador de sobrecompra/supervenda usa diretamente o indicador Stoch. Quando o indicador Stoch está acima de um certo nível (por exemplo, 90), ele é considerado sobrecomprado e gera um sinal de venda. Quando o indicador Stoch está abaixo de um certo nível (por exemplo, 20), ele é considerado sobrevendido e gera um sinal de compra.

    Este indicador avalia os níveis de sobrecompra/supervenda directamente através do indicador Stoch para acompanhar as tendências.

Por último, a estratégia combina os sinais das duas estratégias - apenas quando os sinais estão na mesma direção os sinais finais de compra ou venda serão gerados para capturar com mais precisão as tendências do mercado.

Análise das vantagens

A maior vantagem da estratégia de rastreamento de tendências duplas é que pode verificar as tendências de preços e as condições de sobrecompra/supervenda para evitar sinais de negociação errados.

  1. A combinação de dois sinais de estratégia proporciona uma verificação mais robusta e reduz as perdas causadas por erros numa única estratégia.

  2. A estratégia de reversão 123 pode capturar pontos de reversão de tendência potenciais em tempo útil.

  3. O indicador de sobrecompra/supervenda pode verificar as condições actuais do mercado e evitar a perseguição de máximos e mínimos de venda.

  4. As duas estratégias podem verificar-se mutuamente para evitar sinais errados, melhorando a estabilidade.

  5. Combina indicadores simples e eficazes com uma lógica clara, de fácil compreensão e aplicação.

Análise de riscos

Embora a estratégia melhore a estabilidade através da verificação combinada, ainda existem alguns riscos:

  1. A estratégia de reversão 123 não pode identificar perfeitamente os pontos de reversão e pode perder algumas oportunidades.

  2. O indicador de sobrecompra/supervenda baseia-se apenas num indicador de stocks e pode gerar sinais falsos.

  3. Os dois sinais de estratégia podem anular-se e perder oportunidades. Ajustar parâmetros para reduzir restrições.

  4. A estratégia é apenas testada em dados históricos. Os parâmetros precisam de otimização contínua na negociação ao vivo. Adicione mecanismos de stop loss para controlar as perdas.

  5. Os parâmetros precisam de testes e otimização independentes para diferentes produtos e períodos de negociação.

Orientações de otimização

A estratégia pode ser ainda melhorada nos seguintes aspectos:

  1. Otimizar parâmetros para ambas as estratégias para formar pools de parâmetros para programas de otimização para selecionar em diferentes condições de mercado.

  2. Adicionar condições de filtragem baseadas em MA, Bandas de Bollinger, etc., para evitar sinais errados.

  3. Adicionar mecanismos de stop loss, tais como trailing stop loss, move stop loss, time stop loss etc. para controlar o drawdown máximo.

  4. Considerar a adição de filtros de volume ou de posições para diferentes produtos para evitar a baixa liquidez.

  5. Estudar a evolução dos parâmetros ao longo do tempo e usar o aprendizado de máquina para otimizar automaticamente.

  6. Otimizar a frequência de entrada para evitar excesso de negociação em mercados sem tendência.

Conclusão

A estratégia de rastreamento de tendência dupla identifica com precisão as inversões de tendência, verificando os níveis de sobrecompra / sobrevenda, combinando as 123 estratégias de reversão e sobrecompra / sobrevenda. Isso filtra sinais errados e capta tendências reais para retornos excessivos. É mais estável e lucrativo do que as estratégias de indicador único. Mas os riscos devem ser gerenciados por meio de stop loss oportuno. Melhorias futuras podem ser feitas por meio de otimização de parâmetros, adição de filtros, automação etc.


/*backtest
start: 2022-09-20 00:00:00
end: 2023-09-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/03/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// Simple Overbought/Oversold indicator
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


OO(Length,BuyBand,SellBand) =>
    pos = 0.0
    xOBOS = stoch(close, high, low, Length)
    nRes = iff(close > close[Length], xOBOS / 100, (100 - xOBOS) / 100)
    pos :=iff(nRes < SellBand, -1,
           iff(nRes > BuyBand, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Overbought/Oversold", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Overbought/Oversold ----")
LengthOO = input(10, minval=1)
BuyBand = input(0.92, step = 0.01)
SellBand = input(0.5, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posOO = OO(LengthOO,BuyBand,SellBand)
pos = iff(posReversal123 == 1 and posOO == 1 , 1,
	   iff(posReversal123 == -1 and posOO == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Mais.