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

HistoricVolatility

HistoricVolatility[N](price) i ProBuilder returnerar annualiserad historisk volatilitet, den realiserade variabiliteten i logaritmiska prisförändringar under de senaste N barerna.

Syntax

probuilder
HistoricVolatility[N](price)

Parametrar

NamnTypStandardBeskrivning
NheltalingenAntal barer i mätfönstret, vanligen 10, 20 eller 100.
pricepriskällacloseMätt serie, till exempel close, open, high, eller low.

Formel

kod
r = LOG(price / price[1])          // logarithmic bar-to-bar return
HistoricVolatility = dispersion of r over N bars, annualized, in percent

Beräkningen tar seriens förändringar från bar till bar, tillämpar den naturliga (napierska) logaritmen för att stabilisera deras varians, mäter deras spridning över N-barsfönstret, och skalar resultatet till en annualiserad procentsats.

Så fungerar det

Historisk, eller realiserad, volatilitet besvarar en enkel fråga: hur variabel har det här instrumentets avkastning faktiskt varit under den senaste tiden. Logaritmisk avkastning används istället för råa differenser eftersom den gör upp- och nedrörelser symmetriska och jämförbara över olika prisnivåer. Deras spridning över fönstret extrapoleras sedan till en årlig siffra så att värden från olika tidsramar delar en gemensam enhet, procent per år.

Resultatet är bakåtblickande och faktiskt, beräknat helt från observerade priser. Det skiljer det från implicit volatilitet, som härleds ur optionspremier och speglar marknadens förväntan om framtida rörelse. De två avviker ofta från varandra, och skillnaden mellan dem handlas i sig på optionsmarknaderna.

Inom strategier fungerar historisk volatilitet som ett regimmått. Att jämföra det aktuella värdet med sitt eget långsiktiga medelvärde klassificerar marknaden som lugn eller turbulent, vilket kan grinda entries, skala position size eller växla mellan strategivarianter.

Exempel

Exempel 1, Volatilitetsregim med riktningsbias (Indikator)

probuilder
// 10-period historical volatility of the close
i1 = HistoricVolatility[10](close)

// Long-term average of the volatility itself
i2 = average[100](i1)

// Short-term price average for direction
i3 = average[10](close)

// Signals: elevated volatility plus price position give the bias
IF (i1 > i2 AND Close < i3) THEN
  bearish = -1
  bullish = 0
ELSIF (i1 > i2 AND Close > i3) THEN
  bearish = 0
  bullish = 1
ELSE
  bearish = 0
  bullish = 0
ENDIF

RETURN bearish, bullish

Flaggar för bullish eller bearish förhållanden endast när volatiliteten över 10 perioder överstiger sitt 100-periodsgenomsnitt, och använder sedan pris mot ett kort genomsnitt för riktning. Stillsamma marknader ger ingen signal.

Exempel 2, Screener för kompression med låg volatilitet (ProScreener)

probuilder
hv    = HistoricVolatility[20](close)
hvAvg = Average[100](hv)
// Current volatility well below its own long-term norm
SCREENER[hv < hvAvg * 0.5](hv AS "Hist Vol 20")

Returnerar instrument vars realiserade volatilitet över 20 barer är mindre än hälften av sitt medelvärde över 100 barer, ett kompressionsvillkor som ofta föregår range-expansion.

Exempel 3, Volatilitetsgrind för ett breakout-system (ProBacktest)

probuilder
// Trade breakouts only while realized volatility is not extreme
hv     = HistoricVolatility[20](close)
hvCap  = Average[100](hv) * 2
level  = Highest[20](high)[1]

IF NOT LongOnMarket THEN
  IF hv < hvCap AND close > level THEN
    BUY 1 CONTRACT AT MARKET
  ENDIF
ELSE
  IF close < Average[20](close) THEN
    SELL AT MARKET
  ENDIF
ENDIF

Blockerar nya breakout-entries närhelst volatiliteten över 20 barer överstiger två gånger sitt långsiktiga medelvärde, vilket undviker entries i oordnade förhållanden.

Tolkning

AvläsningBetydelse
Låg och fallandeLugn regim, intervallen komprimeras. Breakout-tradare bevakar expansion, optionssäljare ser billig rörelse.
StigandeRörelsen tar fart, ofta kring nyheter, breakouts eller trendaccelerationer.
Hög och förhöjdTurbulent regim, bredare stoppar och mindre positioner är typiska justeringar.

Volatilitet är riktningsneutral: både en krasch och en vertikal rally höjer den. Den klustrar också, volatila perioder tenderar att följa på volatila perioder, och den återgår till medelvärdet över längre horisonter, extremvärden i båda riktningarna tenderar att normaliseras. Att jämföra det aktuella värdet med instrumentets egen historik är mer informativt än någon fast tröskel, eftersom normala nivåer skiljer sig kraftigt mellan marknader.

Vanliga fel och fallgropar

  • Att blanda ihop historisk med implicit volatilitet. HistoricVolatility rapporterar vad som redan har hänt i prisserien. Optionsbaserade förväntningar på framtida rörelse är en annan storhet och kan avvika avsevärt.
  • Att läsa in riktning i värdet. Hög volatilitet betyder inte fallande priser, även om de två ofta sammanfaller på aktiemarknaden. Måttet är symmetriskt med avseende på riktning.
  • Fasta tröskelvärden över olika instrument. Annualiserade 20 procent är lugnt för en kryptovaluta och extremt för en obligationsfuture. Normalisera mot instrumentets egen volatilitetshistorik, som i exemplen.
  • Fönstret för kort. Mycket små N värden gör skattningen hoppig och dominerad av enstaka barer. Stabiliteten förbättras märkbart från omkring 20 barer och uppåt.
  • Volatility, relaterat inbyggt volatilitetsmått.
  • STD, standardavvikelse för en serie över N barer.
  • AverageTrueRange, range-baserad volatilitet i prisenheter.
  • BollingerBandWidth, bandbredd som proxy för volatilitet.
  • TR, true range för en enskild bar.
  • LOG, naturlig logaritm som används på prisförändringarna.
  • Average, används för att bygga baslinjer för volatilitet av volatilitet.
  • MassIndex, indikator för range-expansion.