
Esta estratégia é um sistema de negociação de acompanhamento de tendências baseado no cruzamento do indicador de tendências de volume de transação (PVT) com a sua média móvel indexada (EMA). A estratégia identifica mudanças na tendência do mercado, monitorando a interseção do indicador de PVT com a sua EMA, para capturar potenciais oportunidades de negociação.
O núcleo da estratégia é o uso do indicador PVT, que acompanha a tendência do mercado combinando a mudança de preço com o volume de transação. Concretamente, o percentual de mudança de preço do dia multiplicado pela acumulação do volume de transação do dia é adicionado ao valor PVT. Em seguida, calcula-se o 20 ciclos de EMA do PVT como uma linha de referência.
A estratégia de cruzamento de tendências PVT-EMA é um sistema de negociação completo que combina análise de preços, volume de transações e tendências. Embora haja algum risco de atraso e falsos sinais, com otimização e gerenciamento de risco adequados, a estratégia pode se tornar uma ferramenta de negociação confiável. É recomendado que os comerciantes façam um bom feedback antes de usar no mercado real e ajustar os parâmetros de configuração de acordo com as características específicas do mercado.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-25 08:00:00
period: 1d
basePeriod: 1d
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/
// © PakunFX
//@version=5
strategy(title="PVT Crossover Strategy", shorttitle="PVT Strategy", overlay=false, calc_on_every_tick=true)
// PVTの計算
var cumVol = 0.
cumVol += nz(volume)
if barstate.islast and cumVol == 0
runtime.error("No volume is provided by the data vendor.")
src = close
pvt = ta.cum(ta.change(src) / src[1] * volume)
// EMAの計算(PVTをソースに使用)
emaLength = input.int(20, minval=1, title="EMA Length")
emaPVT = ta.ema(pvt, emaLength)
// プロットをオフにする
plot(emaPVT, title="EMA of PVT", color=#f37f20, display=display.none)
// クロスオーバー戦略
longCondition = ta.crossover(pvt, emaPVT)
shortCondition = ta.crossunder(pvt, emaPVT)
// シグナル表示もオフにする
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", display=display.none)
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", display=display.none)
// 戦略エントリー
if (longCondition)
strategy.entry("Buy", strategy.long)
if (shortCondition)
strategy.entry("Sell", strategy.short)