A estratégia é chamada
Especificamente, o indicador Momentum é usado para julgar a aceleração ou desaceleração dos movimentos de preços e mudanças nas tendências.
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.
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.
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.
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.
Utilize os indicadores SuperTrend para determinar os canais de avanço dos preços para capturar os pontos de avanço.
A verificação mútua de dois tipos de indicadores pode reduzir os falsos sinais e melhorar a precisão das entradas.
A combinação da lógica de saída dos dois indicadores permite o acompanhamento da tendência para evitar uma saída prematura.
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.
A definição incorreta dos parâmetros do SuperTrend pode levar a um desenho incorreto do canal e a sinais falsos.
A verificação mútua dos dois indicadores pode perder algumas oportunidades.
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:
Utilize a análise de avanço para encontrar os parâmetros ideais.
Adicionar módulo de otimização de parâmetros para otimização de parâmetros em tempo real.
Ajustar a lógica de combinação dos dois indicadores e considerar compreensivamente.
Adicionar módulo de otimização de parâmetros adaptativos para ajuste em tempo real de acordo com as condições do mercado
Adicionar modelo de aprendizagem de máquina para ajudar a julgar a precisão dos sinais de indicador
Expandir mais indicadores para formar um conjunto de indicadores e utilizar o mecanismo de votação para gerar sinais de entrada
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
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