
Trata-se de uma estratégia de negociação de retorno ao valor médio baseada na média ponderada por volume de transação (VWAP) e no canal de diferenciação padrão. A estratégia busca oportunidades de negociação identificando o grau de desvio do preço do VWAP, fazendo uma negociação reversa quando o preço quebra o limite do canal de diferenciação padrão e fechando a posição quando o preço retorna ao VWAP. Esta abordagem aproveita ao máximo as características de retorno ao valor médio do mercado, combinando princípios de análise técnica e estatística.
O núcleo da estratégia é estabelecer um intervalo de negociação através da computação do VWAP e do diferencial padrão das flutuações de preços. As implementações concretas incluem:
Trata-se de uma estratégia neutra, baseada em princípios estatísticos, que captura desvios e reversões de preços através do VWAP e do canal de desvio padrão. A estratégia tem características objetivas e sistemáticas, mas precisa prestar atenção ao controle de risco e otimização de parâmetros na aplicação prática. A estabilidade e a confiabilidade da estratégia podem ser ainda melhoradas com a adição de filtros de tendência e o aperfeiçoamento do mecanismo de controle de vento.
/*backtest
start: 2024-12-03 00:00:00
end: 2024-12-10 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jklonoskitrader
//@version=5
strategy("ETHUSD VWAP Fade Strategy", overlay=true)
// Input for standard deviation multiplier
std_multiplier = input.float(2.0, title="Standard Deviation Multiplier")
// Calculate cumulative VWAP
cumulative_pv = ta.cum(close * volume) // Cumulative price * volume
cumulative_vol = ta.cum(volume) // Cumulative volume
vwap = cumulative_pv / cumulative_vol // VWAP calculation
// Calculate standard deviation of the closing price
length = input.int(20, title="Standard Deviation Length")
std_dev = ta.stdev(close, length)
upper_band = vwap + std_multiplier * std_dev
lower_band = vwap - std_multiplier * std_dev
// Plot VWAP and its bands
plot(vwap, color=color.blue, linewidth=2, title="VWAP")
plot(upper_band, color=color.red, linewidth=1, title="Upper Band")
plot(lower_band, color=color.green, linewidth=1, title="Lower Band")
// Strategy conditions
go_long = ta.crossunder(close, lower_band)
go_short = ta.crossover(close, upper_band)
// Execute trades
if (go_long)
strategy.entry("Long", strategy.long)
if (go_short)
strategy.entry("Short", strategy.short)
// Exit strategy
if (strategy.position_size > 0 and close > vwap)
strategy.close("Long")
if (strategy.position_size < 0 and close < vwap)
strategy.close("Short")