Supertrend BarUpDn Estratégia de Fusão

Autora:ChaoZhang, Data: 2024-01-31 14:43:06
Tags:

img

Resumo

A estratégia Supertrend BarUpDn Fusion é uma estratégia que funde o indicador Supertrend e o indicador BarUpDn.

Princípio da estratégia

A estratégia utiliza principalmente dois indicadores:

  1. Indicador de Supertendência: Este indicador determina a direção da tendência com base no Intervalo Verdadeiro Médio e em um fator.

  2. Indicador BarUpDn: Este indicador avalia se a barra atual é uma barra alta (fechar mais do que abrir) ou uma barra baixa (abrir mais do que fechar).

A principal lógica da estratégia é a seguinte:

  1. Vá longo quando a Supertrend é longa e a BarUpDn é alta.

  2. Vai curto quando a Supertrend está curta e a BarUpDn está baixa.

  3. Fechar posições oportunamente quando a Supertrend mudar de direcção.

Através desta fusão, a estratégia pode utilizar tanto a capacidade de julgamento de tendências da Supertrend quanto a capacidade de julgamento de curto prazo da BarUpDn para alcançar um melhor calendário de entrada.

Análise das vantagens

As principais vantagens desta estratégia são:

  1. Melhoria da precisão através da fusão de múltiplos indicadores. Utilizando tanto a avaliação da tendência da Supertrend quanto a avaliação de curto prazo da BarUpDn pode melhorar a precisão do tempo de entrada.

  2. A redução rápida das perdas quando o indicador principal Supertrend muda de direção pode evitar a ampliação das perdas.

  3. A estratégia utiliza apenas uma combinação de dois indicadores comuns, tornando-a muito simples e fácil de usar.

  4. A própria Supertrend tem parâmetros ajustáveis para se adaptar a diferentes produtos e prazos.

Análise de riscos

Há também alguns riscos com esta estratégia:

  1. O julgamento incorreto de uma fusão inadequada pode causar um julgamento incorreto.

  2. O ajuste incorreto dos parâmetros afeta o desempenho.

  3. As reversões de curto prazo podem causar pequenas perdas.

Orientações de otimização

A estratégia pode ser otimizada a partir dos seguintes aspectos:

  1. Adicionar estratégias de stop loss como stop loss em movimento, stop loss de tempo, stop loss de ruptura, etc. para controlar ainda mais os riscos.

  2. Otimizar os parâmetros do Supertrend para encontrar as melhores combinações de parâmetros para diferentes produtos e prazos, por exemplo através de aprendizagem automática.

  3. Adicionar mais fusão de indicadores para criar um mecanismo de votação e melhorar a estabilidade da avaliação.

  4. Incorporar mais fatores de mercado, como mudança de volume, mudança de spread, etc., para julgar a confiabilidade do sinal e filtrar sinais enganosos.

Resumo

A Supertrend BarUpDn Fusion Strategy funde a avaliação de tendências e a avaliação de curto prazo combinando indicadores simples, melhorando a precisão do tempo de entrada mantendo a simplicidade e facilidade de uso.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend and BarUpDn Indicator Fusion", overlay=true)

// Supertrend indicator
atrLength = input(10, title="ATR Length")
factor = input(3.0, title="Factor")
[supertrend, direction] = ta.supertrend(factor, atrLength)
lastBar = 0

// BarUpDn indicator
barUpDn = close > open and open > close[1] ? 1 : close < open and open < close[1] ? -1 : 0

if (barUpDn == 1)
    lastBar := 1
else if barUpDn == -1
    lastBar := -1


// Determine long or short position
longCondition = (direction > 0 and barUpDn > 0) or (direction > 0 and lastBar == 1)
shortCondition = (direction < 0 and barUpDn < 0) or (direction < 0 and lastBar == -1)

// Enter long or short position
if (longCondition)
    strategy.entry("Long", strategy.long)
    lastBar := 1
else if (shortCondition)
    strategy.entry("Short", strategy.short)
    lastBar := -1

if (direction < 0 and barUpDn > 0)
    strategy.entry("Long", strategy.long)

// Exit long or short position
if (direction > 0 and barUpDn < 0)
    strategy.entry("Short", strategy.short)

// Exit long or short position
// if (direction < 0 and barUpDn > 0 or direction > 0 and barUpDn < 0)
//   strategy.close_all()


Mais.