Bli medlem idag
Indikatorer/probuilder · probacktest · proorder · proscreener

PositiveVolumeIndex

PositiveVolumeIndex i ProBuilder uppdateras endast vid stigande volym och följer prisrörelser som drivs av massans aktivitet. Syntax, formel, exempel, tolkning.

Syntax

probuilder
PositiveVolumeIndex(price)

Parametrar

NamnTypStandardBeskrivning
pricepriskällacloseSerien vars procentuella förändring ackumuleras på barer med stigande volym. Vanligtvis close.

Formel

kod
if volume > volume[1]:
    PVI = PVI[1] + ((price - price[1]) / price[1]) * PVI[1]
if volume <= volume[1]:
    PVI = PVI[1]

Endast barer med högre volym än föregående bar förändrar indexet. På alla andra barer förs värdet vidare oförändrat.

Så fungerar det

Positive Volume Index delar upp marknadsaktiviteten efter volymregim. När dagens volym överstiger gårdagens rör sig indexet med samma procentsats som priset. När volymen är platt eller fallande fryser indexet. Resultatet är ett prisspår som uteslutande är byggt av barer med högt deltagande.

Det klassiska resonemanget är att dagar med stigande volym domineras av den breda allmänheten, medan lugnare dagar speglar bättre informerad positionering. Enligt den tolkningen visar PVI vad massan gör. Dess motsvarighet, Negative Volume Index, tillämpar samma logik på dagar med fallande volym. De två används ofta tillsammans, genom att jämföra varje index med sitt eget långa glidande medelvärde, vanligen omkring ett år av barer, för att klassificera marknadsregimen.

Eftersom indexet ackumulerar procentuella förändringar från ett arbiträrt startvärde har dess absoluta nivå ingen innebörd. Analysen jämför linjen med dess egen historik, vanligtvis via ett långt glidande medelvärde eller dess tidigare värden.

Exempel

Exempel 1, PVI-baserade målzoner (Indikator)

probuilder
// If PVI is not falling, project a level below recent lows, otherwise above recent highs
i1 = PositiveVolumeIndex(close)
IF(i1 > i1[1] OR i1 = i1[1]) THEN
  result = lowest[5](low) - range
ELSE
  result = highest[5](high) + range
ENDIF
RETURN result

Läser ett icke-fallande PVI som att massans deltagande håller i sig, och projicerar en referensnivå under 5-barslägsta, förskjuten med barens range. Ett fallande PVI vänder projektionen till över 5-barshögsta.

Exempel 2, PVI jämfört med sitt långa medelvärde (Indikator)

probuilder
// Classic regime read: PVI above its long-run average
pvi = PositiveVolumeIndex(close)
pviavg = Average[255](pvi)
RETURN pvi AS "PVI", pviavg AS "PVI average"

Ritar indexet mot ett 255-bars medelvärde, ungefär ett handelsår på dagsdata. Den traditionella tolkningen behandlar PVI över detta medelvärde som en bullish regim.

Exempel 3, Screener för bullish PVI-regim (ProScreener)

probuilder
// Instruments whose PVI just crossed above its long average
pvi = PositiveVolumeIndex(close)
pviavg = Average[255](pvi)
signal = pvi CROSSES OVER pviavg
SCREENER[signal]((pvi - pviavg) AS "PVI spread")

Returnerar instrument där indexet just har rört sig över sitt ettårsmedelvärde, det vanliga bullish regimskiftet i PVI-analys.

Tolkning

MönsterAvläsning
PVI över sitt långa glidande medelvärdeHistoriskt förknippat med förhållanden i en bullmarknad.
PVI under sitt långa glidande medelvärdeSvagare deltagande från massan, mer försiktig regim.
PVI platt under många barerVolymen har inte expanderat, ingen ny information från detta index.
PVI stiger medan priset fallerBarer med hög volym köps, potentiell ackumulation.

PVI är ett långsamt regimverktyg snarare än en entrytrigger. Det kombineras ofta med Negative Volume Index, där samstämmighet mellan de två, båda över sina medelvärden, läses som den starkaste bullish-konfigurationen.

Vanliga fel och fallgropar

  • Den absoluta nivån är meningslös. Indexet ackumuleras från ett arbiträrt startvärde i början av den inlästa historiken. Jämför det endast med sitt eget medelvärde eller sina tidigare värden, aldrig mellan instrument eller mot fasta tal.
  • Långa platta sträckor är normalt. Indexet rör sig endast när volymen ökar från bar till bar. I faser med fallande volym kan det förbli helt platt under längre perioder, vilket bryter logik som förutsätter kontinuerlig förändring.
  • Volymdata krävs. Utan verklig volym är testet för stigande volym opålitligt, så resultat på syntetiska eller uppskattade volymflöden bör behandlas med försiktighet.
  • Historiklängden förändrar linjen. Ackumuleringen startar vid den första inlästa baren, så backtest med olika DEFPARAM förinläsningsinställningar eller diagramhistoriker ger förskjutna PVI-linjer. Signaler baserade på korsningar av dess eget medelvärde tolererar detta, signaler på fasta nivåer gör det inte.
  • Volume, volymen per bar som driver uppdateringsvillkoret.
  • OBV, ackumulerad teckenbestämd volym, ett alternativt mått på volymflöde.
  • PVT, pris- och volymtrend, procentviktat ackumulerat flöde.
  • MoneyFlow, begränsat mått på köp- och säljtryck.
  • MoneyFlowIndex, volymviktad RSI på en skala från 0 till 100.
  • AccumDistr, ackumulations- och distributionslinjen.
  • EaseOfMovement, relaterar prisförändring till den volym som krävdes för att skapa den.
  • VolumeROC, förändringstakten för volymen själv.