
A estratégia combina o indicador de espiral e a média móvel para identificar a direção e a intensidade da tendência de preços, para gerar sinais potenciais de alta e baixa. Quando a linha de indicador de espiral positiva quebra a linha de indicador de espiral negativa, o ponto de interseção é marcado no gráfico, gerando um sinal de alta se o preço de fechamento estiver acima da média móvel; e quando a linha de indicador de espiral negativa quebra a linha de indicador de espiral positiva, gerando um sinal de baixa se o preço de fechamento estiver abaixo da média móvel.
Indicador de espiral: inclui a linha de indicador de espiral positiva ((VI+) e a linha de indicador de espiral negativa ((VI-)). Ele é usado para identificar a direção e a intensidade da tendência de preços.
Média móvel: A média móvel de sua escolha (SMA, EMA, SMMA, WMA ou VWMA) é usada para suavizar os dados de preços, e a linha de suavização obtida é chamada de linha de suavização de borracha.
Determine os sinais de fazer mais e fazer menos: quando a linha VI+ atravessa a linha VI, marque o ponto de cruzamento, gerando um sinal de fazer mais se o preço de fechamento for superior à linha de nivelamento; quando a linha VI atravessa a linha VI+, gerando um sinal de fechamento se o preço de fechamento for inferior à linha de nivelamento.
Combinando os benefícios da identificação de tendências e do filtro de deslizamento, é possível capturar tendências em mercados em tendência e evitar sinais errôneos em mercados em turbulência.
O indicador de espiral é eficaz para identificar a direção e a intensidade da tendência. A média móvel pode filtrar parte do ruído.
A lógica da estratégia é simples, clara, fácil de entender e de implementar.
Parâmetros personalizáveis para adaptar-se a diferentes cenários de mercado.
Em mercados consolidados e sem uma clara tendência, pode ocorrer um erro de sinal e um SERIAL de parada.
A configuração inadequada dos parâmetros também pode afetar o desempenho da estratégia. Por exemplo, a configuração de comprimento de média móvel muito curta é um filtro de má eficácia, e a excesso de comprimento é um atraso na identificação de mudanças de tendência.
Não ser capaz de tomar medidas preventivas em casos de emergência, como por exemplo, mudanças drásticas na conjuntura após um evento financeiro importante.
Pode ser introduzido em combinação com outros indicadores, como o indicador de volume de negócios para determinar a confiabilidade da tendência.
Parâmetros de otimização definidos para equilibrar a tendência de seguimento e filtragem de ruído da média móvel.
Aumentar as estratégias de stop loss para controlar os prejuízos.
Otimizar automaticamente os parâmetros usando métodos como aprendizado de máquina.
Ajustar posições em combinação com o módulo de gestão de risco.
Esta estratégia, através de uma combinação simples e eficaz de indicadores de espiral e médias móveis, alcança um excelente efeito de captura de tendências. Ao mesmo tempo em que identifica a direção da tendência, tem uma certa capacidade de filtragem de ruído, o que reduz os sinais errados.
/*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