Sistema de acompanhamento de tendências de caixa dupla

Autora:ChaoZhang, Data: 2023-11-02 17:19:22
Tags:

Resumo

O Sistema de Seguimento de Tendências é uma estratégia de rastreamento de tendências baseada em um sistema de caixa dupla. Ele usa uma caixa de longo prazo para determinar a direção geral da tendência e toma sinais que se alinham com a tendência principal quando a caixa de curto prazo é acionada.

Estratégia lógica

A estratégia usa duas caixas para determinar a tendência. A caixa de longo prazo usa um período mais longo para julgar a direção da tendência principal, e a caixa de curto prazo usa um período mais curto para gerar sinais de negociação.

Em primeiro lugar, a estratégia calcula os preços mais altos e mais baixos da caixa de longo prazo para determinar a principal direção da tendência.

  • Se o preço mais alto cruzar acima do preço mais alto da barra anterior, é definido como uma tendência de alta, atribuída um valor de 1
  • Se o preço mais baixo cruzar abaixo do preço mais baixo da barra anterior, ele é definido como uma tendência de queda, atribuída um valor de -1
  • Caso contrário, mantenha a direcção de tendência original

Depois de determinar a tendência principal, a estratégia começa a tomar posições com base nos sinais de caixa de curto prazo.

  • Quando a tendência principal estiver em alta e o preço mais baixo da caixa de curto prazo for igual ao preço mais baixo da barra anterior e for inferior ao preço mais baixo da caixa de curto prazo atual, vá longo.
  • Quando a tendência principal for descendente e o preço mais alto da caixa de curto prazo for igual ao preço mais alto da barra anterior e for superior ao preço mais alto da caixa de curto prazo atual, vá curto.

Além disso, o stop loss e o take profit são configurados:

  • A perda de parada longa é o preço mais baixo da caixa de longo prazo, a perda de parada curta é o preço mais alto da caixa de longo prazo
  • Long take profit é o preço mais alto da caixa de curto prazo, curto take profit é o preço mais baixo da caixa de curto prazo

Quando a tendência principal se inverter, feche todas as posições.

Análise das vantagens

As vantagens desta estratégia incluem:

  1. O sistema de caixa dupla identifica eficazmente as direcções da tendência e reduz as operações incorretas
  2. Só tomando sinais de reversão que se alinhem com a tendência principal, evita-se ser enganado pelo ruído do mercado a curto prazo
  3. A combinação de períodos longos e curtos garante a captação das principais tendências, mantendo simultaneamente a flexibilidade de ajustamento da posição
  4. Controlo razoável do risco com pontos de stop loss e take profit, seguindo tendências
  5. A redução rápida de todas as posições quando a tendência principal se inverte minimiza as perdas

Análise de riscos

Os riscos desta estratégia incluem:

  1. As configurações incorretas de período longo e curto podem causar excesso de negociação ou oportunidades perdidas
  2. As reversões a curto prazo podem não representar alterações de tendência a longo prazo, continuando a representar riscos de perdas
  3. Stop loss muito perto pode ser parado fora prematuramente
  4. Tirar lucro muito solto pode não maximizar lucros
  5. Julgamento errado da tendência principal leva a perdas
  6. As soluções incluem períodos de ajuste, otimização de paradas/alvos, adição de filtros, etc.

Orientações de otimização

A estratégia pode ser melhorada:

  1. Adicionando filtros para evitar falhas
  2. Otimizar períodos longos e curtos para diferentes produtos
  3. Ajuste dinâmico dos níveis de stop loss e take profit
  4. Incorporação de regras de dimensionamento das posições
  5. Utilização do volume, etc., para julgar a fiabilidade das alterações de tendência
  6. Utilizando o aprendizado de máquina para otimizar automaticamente parâmetros e filtros

Resumo

O Sistema de Seguimento de Tendências é uma estratégia prática de negociação de tendências que combina determinação de tendências e ajustes de curto prazo. Com otimizações contínuas, pode se tornar um sistema automatizado robusto que rastreia tendências enquanto controla riscos. Ele contém as filosofias centrais da negociação de tendências e vale a pena um estudo aprofundado.

[/trans]


/*backtest
start: 2023-10-25 00:00:00
end: 2023-10-26 07:00:00
period: 5m
basePeriod: 1m
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/
// © LonesomeTheBlue

//@version=4
strategy("Grab Trading System", overlay = true)
flb = input(defval = 80, title = "Longterm Period", minval = 1)
slb = input(defval = 21, title = "Shortterm Period", minval = 1)
showtarget = input(defval = true, title = "Show Target")
showtrend = input(defval = true, title = "Show Trend")

major_resistance = highest(flb)
major_support = lowest(flb)
minor_resistance = highest(slb)
minor_support = lowest(slb)

var int trend = 0
trend := high > major_resistance[1] ? 1 : low < major_support[1] ? -1 : trend
strategy.entry("Buy", true, when = trend == 1 and low[1] == minor_support[1] and low > minor_support)
strategy.entry("Sell", false, when = trend == -1 and high[1] == minor_resistance[1] and high < minor_resistance)

if strategy.position_size > 0
    strategy.exit("Buy", stop = major_support, comment = "Stop Buy")
    if high[1] == minor_resistance[1] and high < minor_resistance
        strategy.close("Buy", comment ="Close Buy")
    
if strategy.position_size < 0
    strategy.exit("Sell", stop = major_resistance, comment = "Stop Sell")
    if low[1] == minor_support[1] and low > minor_support
        strategy.close("Sell", comment ="Close Sell")

if strategy.position_size != 0 and change(trend)
    strategy.close_all()
    
majr = plot(major_resistance, color = showtrend and trend == -1 and trend[1] == -1 ? color.red : na)
majs = plot(major_support, color = showtrend and trend == 1 and trend[1] == 1 ? color.lime : na)
minr = plot(minor_resistance, color = showtarget and trend == 1 and strategy.position_size > 0 ? color.yellow : na, style = plot.style_circles)
mins = plot(minor_support, color = showtarget and trend == -1 and strategy.position_size < 0 ? color.yellow : na, style = plot.style_circles)

fill(majs, mins, color = showtrend and trend == 1 and trend[1] == 1 ? color.lime : na, transp = 85)
fill(majr, minr, color = showtrend and trend == -1 and trend[1] == -1 ? color.red : na, transp = 85)


Mais.