Estratégia de negociação combinada de Momentum e SuperTrend

Autora:ChaoZhang, Data: 2023-12-27 16:37:58
Tags:

img

1. Visão geral da estratégia

A estratégia é chamada Momentum e SuperTrend Combination Trading Strategy. A ideia principal desta estratégia é combinar o indicador Momentum com o indicador SuperTrend para aproveitar ambos os indicadores para entradas e saídas mais precisas.

Especificamente, o indicador Momentum é usado para julgar a aceleração ou desaceleração dos movimentos de preços e mudanças nas tendências.

2. Princípio de estratégia detalhada

  1. Parte do indicador de ímpeto

    Calcule o valor de momento de N dias do preço e calcule o momento de 1 dia do valor de momento.

  2. Parte do indicador SuperTrend

    Calcule o valor ATR do preço e desenhe a linha do canal ascendente e a linha do canal descendente com base no ATR. Quando o preço atravessa o canal ascendente da parte inferior, é um sinal longo e quando o preço atravessa o canal descendente da parte superior, é um sinal curto.

  3. Lógica de entrada

    Tomar a operação AND do sinal longo do indicador de momento e do sinal longo da SuperTrend para gerar o sinal de entrada longo final quando ambos ocorrem ao mesmo tempo; Tomar a operação AND do sinal curto do indicador de momento e do sinal curto da SuperTrend para gerar o sinal de entrada curto final quando ambos ocorrem ao mesmo tempo.

3. Análise de vantagens

  1. Usar indicadores de momento para determinar a aceleração ou desaceleração dos movimentos de preços para capturar pontos de inversão da tendência.

  2. Utilize os indicadores SuperTrend para determinar os canais de avanço dos preços para capturar os pontos de avanço.

  3. A verificação mútua de dois tipos de indicadores pode reduzir os falsos sinais e melhorar a precisão das entradas.

  4. A combinação da lógica de saída dos dois indicadores permite o acompanhamento da tendência para evitar uma saída prematura.

4. Análise de riscos

  1. A definição incorreta dos parâmetros do indicador de ímpeto de N-day pode deixar de observar os pontos de reversão da tendência.

  2. A definição incorreta dos parâmetros do SuperTrend pode levar a um desenho incorreto do canal e a sinais falsos.

  3. A verificação mútua dos dois indicadores pode perder algumas oportunidades.

  4. A combinação de parâmetros deve ser ajustada para encontrar o par de parâmetros ideal para maximizar o potencial da estratégia.

Soluções correspondentes:

  1. Utilize a análise de avanço para encontrar os parâmetros ideais.

  2. Adicionar módulo de otimização de parâmetros para otimização de parâmetros em tempo real.

  3. Ajustar a lógica de combinação dos dois indicadores e considerar compreensivamente.

5. Orientações de otimização

  1. Adicionar módulo de otimização de parâmetros adaptativos para ajuste em tempo real de acordo com as condições do mercado

  2. Adicionar modelo de aprendizagem de máquina para ajudar a julgar a precisão dos sinais de indicador

  3. Expandir mais indicadores para formar um conjunto de indicadores e utilizar o mecanismo de votação para gerar sinais de entrada

  4. Utilização de modelos de aprendizagem profunda em vez de indicadores tradicionais para julgamentos baseados em dados sobre o tempo de entrada e saída

6. Resumo

Esta estratégia combina os pontos fortes dos indicadores de Momentum e SuperTrend através de dupla verificação para melhorar a precisão das Entradas, e usa indicadores para julgar o momento das Saídas. Em comparação com o uso único de indicadores, ele pode reduzir sinais falsos e alcançar taxas de vitória mais altas. Através da otimização de parâmetros, aprendizado de máquina e outras tecnologias de extensão, ainda há espaço para melhoria da eficácia da estratégia e merece pesquisa e aplicação aprofundadas.


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

//@version=4
strategy("Momentum + SuperTrend Strategy", overlay=true)

// Momentum Strategy
length = input(12)
price = close
momentum(seria, length) =>
    mom = seria - seria[length]
    mom
mom0 = momentum(price, length)
mom1 = momentum(mom0, 1)
momLongCondition = mom0 > 0 and mom1 > 0
momShortCondition = mom0 < 0 and mom1 < 0

// SuperTrend Strategy
Periods = input(10)
Multiplier = input(3.0)
changeATR = input(true)
src = input(hl2)
atr2 = sma(tr, Periods)
atr = changeATR ? atr(Periods) : atr2
up = src - (Multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? max(up, up1) : up
dn = src + (Multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
buySignal = trend == 1 and trend[1] == -1
sellSignal = trend == -1 and trend[1] == 1

// Combined Entry Conditions
longCondition = momLongCondition and buySignal
shortCondition = momShortCondition and sellSignal

// Strategy Entries
if (longCondition)
    strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="MomLE")
else
    strategy.cancel("MomLE")

if (shortCondition)
    strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="MomSE")
else
    strategy.cancel("MomSE")

// Plot SuperTrend on the chart
upPlot = plot(trend == 1 ? up : na, title="SuperTrend Up", color=color.green, linewidth=2)
dnPlot = plot(trend == -1 ? dn : na, title="SuperTrend Down", color=color.red, linewidth=2)

// Highlight the SuperTrend region
fill(upPlot, dnPlot, color = trend == 1 ? color.new(color.green, 90) : color.new(color.red, 90), title="SuperTrend Highlight")

// Plot SuperTrend Buy/Sell signals on the chart
plotshape(series=buySignal, title="SuperTrend Buy Signal", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sellSignal, title="SuperTrend Sell Signal", color=color.red, style=shape.triangledown, size=size.small)
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © naveen1119

Mais.