
A estratégia é um sistema de negociação de acompanhamento de tendências baseado no indicador Volatility Rate Stop (VStop) e na Média Móvel Exponencial (EMA). A estratégia combina a filosofia de negociação de Stan Weinstein para otimizar a gestão de dinheiro por meio de níveis de stop-loss ajustados dinamicamente, ao mesmo tempo em que usa a EMA para confirmar a direção da tendência. Essa combinação fornece aos investidores e swing traders uma estrutura de negociação que lhes permite capturar tendências enquanto gerenciam riscos de forma eficaz.
A lógica central da estratégia é baseada em dois indicadores técnicos principais:
Stop de volatilidade (VStop): Um indicador de stop dinâmico baseado em ATR (Average True Range) que ajusta de forma adaptativa a posição de stop de acordo com a volatilidade do mercado. Quando o preço está em tendência de alta, a linha de stop loss sobe conforme o preço sobe; quando a tendência se inverte, a linha de stop loss muda de direção e é recalculada.
Média Móvel Exponencial (MME): atua como uma ferramenta de confirmação de tendência e ajuda a filtrar sinais falsos. O preço precisa estar acima da EMA antes de considerar abrir uma posição, o que garante que a direção da negociação seja consistente com a tendência principal.
A lógica de geração do sinal de negociação é a seguinte:
Esta estratégia cria uma estrutura completa de negociação de acompanhamento de tendências combinando stop loss de volatilidade e sistema de média móvel. As principais vantagens da estratégia estão na sua adaptabilidade e capacidade de gestão de riscos, mas também é necessário prestar atenção ao impacto do ambiente de mercado no desempenho da estratégia. Por meio de otimização e melhoria contínuas, espera-se que a estratégia mantenha um desempenho estável em diferentes ambientes de mercado. É recomendável que os traders testem completamente as configurações de parâmetros e ajustem as estratégias com base em sua própria tolerância ao risco antes de usá-las em negociações reais.
/*backtest
start: 2024-12-17 00:00:00
end: 2025-01-16 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy("VStop + EMA Strategy", overlay=true)
// VStop Parameters
length = input.int(20, "VStop Length", minval=2)
multiplier = input.float(2.0, "VStop Multiplier", minval=0.25, step=0.25)
// EMA Parameters
emaLength = input.int(30, "EMA Length", minval=1)
// VStop Calculation
volStop(src, atrlen, atrfactor) =>
if not na(src)
var max = src
var min = src
var uptrend = true
var float stop = na
atrM = nz(ta.atr(atrlen) * atrfactor, ta.tr)
max := math.max(max, src)
min := math.min(min, src)
stop := nz(uptrend ? math.max(stop, max - atrM) : math.min(stop, min + atrM), src)
uptrend := src - stop >= 0.0
if uptrend != uptrend[1] and not barstate.isfirst
max := src
min := src
stop := uptrend ? max - atrM : min + atrM
[stop, uptrend]
// Calculate VStop
[vStop, isUptrend] = volStop(close, length, multiplier)
// Plot VStop
plot(vStop, "Volatility Stop", style=plot.style_cross, color=isUptrend ? color.teal : color.red)
// Calculate 30 EMA
emaValue = ta.ema(close, emaLength)
plot(emaValue, "EMA", color=color.blue)
// Entry and Exit Conditions
longCondition = isUptrend and close > emaValue
exitCondition = close <= emaValue
// Strategy Execution
if longCondition and not strategy.opentrades
strategy.entry("Long", strategy.long)
if exitCondition and strategy.opentrades
strategy.close("Long")
// Display Strategy Info
bgcolor(isUptrend ? color.new(color.teal, 90) : color.new(color.red, 90), title="Trend Background")