
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.
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.
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.
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.
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.
O indicador de SuperTrend é usado para determinar os canais de ruptura e capturar os pontos de ruptura.
Os dois indicadores são mutuamente verificáveis, o que reduz os falsos sinais e aumenta a precisão das entradas.
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.
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.
Os parâmetros do SuperTrend estão mal definidos, o canal é desenhado com imprecisões e pode gerar falsos sinais.
Os dois indicadores são mutuamente verificáveis e podem ter perdido algumas oportunidades.
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 é:
A análise walk-forward é usada para encontrar o melhor parâmetro.
Adição de módulos de otimização de parâmetros, otimização de parâmetros em tempo real.
Ajustar a lógica de combinação dos dois indicadores, considerando integralmente.
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
Adição de modelos de aprendizagem de máquina para auxiliar na avaliação da precisão dos sinais de indicadores
Expandir mais indicadores, compor um conjunto de indicadores, usar o mecanismo de votação para gerar sinais de entrada
Modelos de aprendizagem profunda substituem os indicadores tradicionais para determinar o tempo de entrada e saída com métodos baseados em dados
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.
/*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