HistoricVolatility
HistoricVolatility[N](price) i ProBuilder returnerar annualiserad historisk volatilitet, den realiserade variabiliteten i logaritmiska prisförändringar under de senaste N barerna.
Syntax
HistoricVolatility[N](price)Parametrar
| Namn | Typ | Standard | Beskrivning |
|---|---|---|---|
N | heltal | ingen | Antal barer i mätfönstret, vanligen 10, 20 eller 100. |
price | priskälla | close | Mätt serie, till exempel close, open, high, eller low. |
Formel
r = LOG(price / price[1]) // logarithmic bar-to-bar return
HistoricVolatility = dispersion of r over N bars, annualized, in percentBerä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)
// 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, bullishFlaggar 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)
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)
// 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
ENDIFBlockerar 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äsning | Betydelse |
|---|---|
| Låg och fallande | Lugn regim, intervallen komprimeras. Breakout-tradare bevakar expansion, optionssäljare ser billig rörelse. |
| Stigande | Rörelsen tar fart, ofta kring nyheter, breakouts eller trendaccelerationer. |
| Hög och förhöjd | Turbulent 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.
HistoricVolatilityrapporterar 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å
Nvärden gör skattningen hoppig och dominerad av enstaka barer. Stabiliteten förbättras märkbart från omkring 20 barer och uppåt.
Relaterade instruktioner
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.