A estratégia do Índice de Volume Positivo compara o volume de ontem e de hoje. Ele calcula a mudança de preço nos dias em que o volume se expande para formar o índice de volume positivo, e o compara com sua média móvel para gerar sinais de negociação. A estratégia segue o princípio de mercado de expansão simultânea de volume e preço.
A estratégia primeiro calcula a mudança diária de preço xROC. Em seguida, compara o volume de hoje com o volume de ontem.[1] Se o volume de hoje for maior, o índice de volume positivo nRes hoje é o índice de ontem nRes[1] mais xROC. Se o volume de hoje for menor ou igual a ontem, o índice de hoje permanece o mesmo que o de ontem nRes[1].
Após o cálculo do índice de volume nRes positivo, ele é comparado à sua média móvel nResEMA de N dias. Se nRes for maior que nResEMA, é um sinal longo. Se nRes for menor que nResEMA, é um sinal curto.
A estratégia segue a relação entre o índice de volume positivo e sua média móvel para gerar sinais de negociação.
As vantagens desta estratégia incluem:
Captura a dinâmica do mercado através da observação da variação do volume.
A elevação do índice sugere um potencial mercado de alta.
A lógica é simples para implementação e backtesting.
A frequência de negociação pode ser controlada ajustando o parâmetro da média móvel.
Os principais riscos desta estratégia são:
A expansão do volume não significa necessariamente uma expansão do preço.
A redução de perdas deve ser estabelecida para controlar as perdas.
Sinais de variações dos preços do índice e da média móvel com atraso.
O volume anormal ou a otimização excessiva podem levar a sinais falsos.
A estratégia pode ser otimizada nos seguintes aspectos:
Teste adicionando outros indicadores técnicos como MACD, KDJ para filtragem de sinal.
Otimizar o parâmetro da média móvel para obter o melhor equilíbrio.
Adicionar mecanismos de stop loss como trailing stop para controlar riscos.
Considerar saídas parciais de posição para reduzir gradualmente os riscos.
Otimizar os parâmetros de produtos específicos para melhorar a robustez.
A estratégia de índice de volume positivo projeta negócios com base na mudança de volume, com alguma capacidade de seguir o mercado. Mas deve-se notar a divergência entre volume e preço. Ao otimizar parâmetros, definir stop loss, adicionar indicadores, etc., a estratégia pode ser melhorada para controlar riscos e melhorar o desempenho. É adequado para explorar a relação preço-volume e ajudar no timing do mercado.
/*backtest start: 2023-08-18 00:00:00 end: 2023-09-17 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 11/10/2017 // The theory behind the indexes is as follows: On days of increasing volume, // you can expect prices to increase, and on days of decreasing volume, you can // expect prices to decrease. This goes with the idea of the market being in-gear // and out-of-gear. Both PVI and NVI work in similar fashions: Both are a running // cumulative of values, which means you either keep adding or subtracting price // rate of change each day to the previous day`s sum. In the case of PVI, if today`s // volume is less than yesterday`s, don`t add anything; if today`s volume is greater, // then add today`s price rate of change. For NVI, add today`s price rate of change // only if today`s volume is less than yesterday`s. // // You can change long to short in the Input Settings // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="Positive Volume Index", shorttitle="Positive Volume Index") EMA_Len = input(255, minval=1) reverse = input(false, title="Trade reverse") xROC = roc(close, 1) nRes = iff(volume > volume[1], nz(nRes[1], 0) + xROC, nz(nRes[1], 0)) nResEMA = ema(nRes, EMA_Len) pos = iff(nRes > nResEMA, 1, iff(nRes < nResEMA, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(nRes, color=red, title="PVI") plot(nResEMA, color=blue, title="EMA")