Indicador Momentum e estratégia de negociação combinada SuperTrend


Data de criação: 2023-12-27 16:37:58 última modificação: 2023-12-27 16:37:58
cópia: 0 Cliques: 914
1
focar em
1621
Seguidores

Indicador Momentum e estratégia de negociação combinada SuperTrend

Uma visão geral da estratégia

Esta estratégia é chamada de estratégia de negociação de combinação de indicadores de dinâmica com indicadores de SuperTrend. A principal idéia da estratégia é combinar indicadores de dinâmica com indicadores de SuperTrend, aproveitando os benefícios dos dois indicadores para obter entradas e saídas mais precisas.

Especificamente, os indicadores de dinâmica são usados para determinar a aceleração ou desaceleração do movimento dos preços, para determinar a mudança de tendência. O SuperTrend é usado para determinar se os preços quebraram o canal de alta ou baixa, para determinar a mudança de tendência. A combinação dos dois pode capturar com mais precisão os pontos de mudança da tendência.

II. Detalhes da estratégia

  1. Seção de indicadores de potência

Calcule o valor de N dias de movimento do preço e calcule o valor de 1 dias de movimento. Quando o movimento de N dias > 0 e o movimento de 1 dias > 0, faça um sinal de mais; Quando o movimento de N dias < 0 e o movimento de 1 dias < 0, faça um sinal de vazio.

  1. Seção de indicadores da SuperTrend

Calcule o valor do ATR do preço e trace uma linha de canal de alta e uma linha de canal de baixa de acordo com o ATR. Faça um sinal de alto quando o preço atravessa o canal de alta a partir da parte inferior e um sinal de baixo quando o preço atravessa o canal de baixa a partir da parte superior.

  1. entry logic

A operação de duplicação e duplicação do sinal de multiplicação do indicador de dinâmica com o sinal de multiplicação do SuperTrend ocorre simultaneamente como sinal de entrada final; a operação de duplicação e duplicação do sinal de tomada de vazio do indicador de dinâmica com o sinal de tomada de vazio do SuperTrend ocorre simultaneamente como sinal de entrada final.

Terceiro, análise de estratégia.

  1. Utilize os indicadores de dinâmica para determinar a aceleração ou desaceleração do movimento dos preços e capturar os pontos de reversão da tendência.

  2. O indicador de SuperTrend é usado para determinar os canais de ruptura e capturar os pontos de ruptura.

  3. Os dois indicadores são mutuamente verificáveis, o que reduz os falsos sinais e aumenta a precisão das entradas.

  4. A lógica de saída, combinada com os dois indicadores, permite o rastreamento de tendências e a eliminação de saídas prematuras.

Quatro, análise de risco estratégico

  1. A configuração inadequada dos parâmetros do indicador de N dias de dinâmica pode causar a perda do ponto de viragem da tendência.

  2. Os parâmetros do SuperTrend estão mal definidos, o canal é desenhado com imprecisões e pode gerar falsos sinais.

  3. Os dois indicadores são mutuamente verificáveis e podem ter perdido algumas oportunidades.

  4. Para isso, é necessário ajustar o conjunto de parâmetros para encontrar o par de parâmetros mais adequado e maximizar o potencial da estratégia.

A solução é:

  1. A análise walk-forward é usada para encontrar o melhor parâmetro.

  2. Adição de módulos de otimização de parâmetros, otimização de parâmetros em tempo real.

  3. Ajustar a lógica de combinação dos dois indicadores, considerando integralmente.

Cinco, estratégias de otimização

  1. Aumentar o módulo de otimização de adaptação de parâmetros, permitindo que os parâmetros sejam ajustados em tempo real de acordo com o ambiente de mercado

  2. Adição de modelos de aprendizagem de máquina para auxiliar na avaliação da precisão dos sinais de indicadores

  3. Expandir mais indicadores, compor um conjunto de indicadores, usar o mecanismo de votação para gerar sinais de entrada

  4. Modelos de aprendizagem profunda substituem os indicadores tradicionais para determinar o tempo de entrada e saída com métodos baseados em dados

VI. Conclusão

Esta estratégia combina os benefícios dos indicadores de dinâmica e dos indicadores de SuperTrend, aumentando a precisão da entrada por meio da dupla verificação e usando os indicadores para determinar o tempo de saída. Em comparação com o uso de indicadores isolados, é possível reduzir os falsos sinais e obter uma maior taxa de vitória.

Código-fonte da estratégia
/*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