Esta estratégia combina o indicador de vórtice e as linhas de média móvel para identificar a direção e a força das tendências de preços, a fim de gerar sinais longos e curtos potenciais. Quando a linha de vórtice positivo (VI +) cruza acima da linha de vórtice negativo (VI-), cada cruzamento é destacado no gráfico. Se o preço de fechamento estiver acima da linha de média móvel, um sinal longo é gerado.
Indicador Vortex: Consiste de duas linhas - Vortex Positivo (VI+) e Vortex Negativo (VI-).
Média Móvel (MA): usa um método de média móvel escolhido (SMA, EMA, SMMA, WMA ou VWMA) para suavizar os dados de preço.
Determine sinais longos e curtos: quando VI+ cruza acima de VI-, cada cruzamento é destacado. Se o fechamento estiver acima da linha de suavização, um sinal longo é gerado. Quando VI- cruza acima de VI+, se o fechamento estiver abaixo da linha de suavização, um sinal curto é gerado.
Combina a identificação de tendências e a suavização para capturar tendências em mercados em tendência, evitando falsos sinais em mercados agitados.
O indicador de vórtice identifica eficazmente a direção e a força da tendência.
Uma lógica estratégica simples e clara, fácil de compreender e implementar.
Parâmetros personalizáveis, adaptados a diferentes ambientes de mercado.
Pode gerar falsos sinais e acelerações em mercados de gama ou sem tendência.
As configurações de parâmetros inadequadas podem afetar o desempenho da estratégia.
Incapaz de proteger contra oscilações extremas dos preços decorrentes de grandes acontecimentos imprevistos.
Incorporar outros indicadores como o volume para determinar a confiabilidade da tendência.
Otimizar os parâmetros para equilibrar o seguimento da tendência e a filtragem do ruído das médias móveis.
Adicionar stop loss às perdas de controlo.
Utilize o aprendizado de máquina para otimização automatizada de parâmetros.
Incorporar módulos de gestão de riscos para ajustar o dimensionamento das posições.
Esta estratégia combina efetivamente o indicador de vórtice e as médias móveis para capturar tendências. Ele identifica a direção da tendência, enquanto tem alguma capacidade de filtragem de ruído para reduzir sinais falsos. A lógica é simples e flexível de usar, funcionando bem em mercados de tendências.
/*backtest start: 2023-02-01 00:00:00 end: 2024-02-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © DraftVenture //@version=5 strategy("Vortex + Moving Average Strategy", overlay=true) //Vortex settings period_ = input.int(14, title="Vortex Length", minval=2) VMP = math.sum( math.abs( high - low[1]), period_ ) VMM = math.sum( math.abs( low - high[1]), period_ ) STR = math.sum( ta.atr(1), period_ ) VIP = VMP / STR VIM = VMM / STR plot(VIP, title="VI +", color=color.white) plot(VIM, title="VI -", color=color.white) len = input.int(9, minval=1, title="MA Length") src = input(close, title="Source") offset = input.int(title="Offset", defval=0, minval=-500, maxval=500) out = ta.sma(src, len) plot(out, color=color.blue, title="MA", offset=offset) ma(source, length, type) => switch type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing") smoothingLength = input.int(title = "Length", defval = 5, minval = 1, maxval = 100, group="Smoothing") smoothingLine = ma(out, smoothingLength, typeMA) plot(smoothingLine, title="Smoothing Line", color=#f37f20, offset=offset, display=display.none) // Determine long and short conditions longCondition = ta.crossover(VIP, VIM) and close > smoothingLine shortCondition = ta.crossunder(VIP, VIM) and close < smoothingLine crossCondition = ta.crossunder(VIP, VIM) or ta.crossunder(VIM, VIP) // Strategy entry and exit logic if longCondition strategy.entry("Long", strategy.long) if shortCondition strategy.entry("Short", strategy.short) bgcolor(crossCondition ? color.new(color.white, 80) : na) // Strategy by KP