← Мақалаларға оралу
July 10, 2026
5 мин оқу

GARCH(1,1): Криптовалюта Волатильдігін Болжау

#volatility
#GARCH
#risk
#forecasting
#crypto
#algorithmic-trading

BTC-нің күнделікті кірістілігінің графигін ашыңыз — кездейсоқ серуен туралы оқулықтар сізді ешқашан дайындамаған нәрсені байқайсыз: тыныштық пен хаос топтасып келеді. 6% төмендеу күні сирек жалғыз болады. Ол 4-8% ауытқулары бар апта ішінде орналасады, содан кейін нарық тыныстап, келесі дауылға дейін бір ай бойы тыныш 1% сессияларымен жүреді. Кірістіліктің өзі болжауға келмейтіндей көрінеді — ертең өседі ме, түседі ме, сенімді айту мүмкін емес — бірақ оның шамасы терең болжамды. Бүгінгі толқу ертеңгі толқу туралы көп нәрсе айтады.

Трейдер қолданатын дерлік әрбір тәуекел құралы бұл шындыққа сай келмейді деп үнсіз болжайды. Black-Scholes опционды тұрақты бір σ\sigma арқылы бағалайды. Статикалық Value-at-Risk саны бір волатильділік бағасын қалыпты квантильге көбейтеді. Тұрақты 3% стоп-лосс тыныш сейсенбі мен FOMC хабарламасы немесе ірі биржаның пег үзілуі айналасындағы сағаттарды бірдей тәуекел деп қарастырады. Осылардың әрқайсысы дәл сол бір жолмен бұзылады: уақыт бойы өзгеретін шаманы тұрақтыға дейін қысқартады, содан кейін сол тұрақты шама қозғалғанда таңғалады.

Бұл мақала — криптовалюта үшін волатильділікті модельдеу бойынша төрт бөлімнен тұратын серияның бірінші бөлімі. Ол негізін салады: GARCH(1,1) моделі, оның криптовалюта кірістіліктеріне неге сонша сай келетіні, arch кітапханасымен максималды ықтималдық әдісі арқылы оны қалай адал бағалау керектігі және шартты дисперсия болжамын бірден пайдалы екі нәрсеге — нарықпен бірге "тыныс алатын" позиция көлемі мен стоп ені — қалай айналдыру керектігі. 2-бөлім асимметрия мен ауыр құйрықтарды қосады, 3-бөлім көпайнымалыға өтеді, ал 4-бөлім толық волатильділікке бағытталған бэктестті құрастырады. Біз мұнда қолданбаны әдейі қарапайым ұстаймыз; адал, walk-forward тексерілген стратегия 4-бөлімнің тақырыбы.

Криптовалюта Кірістіліктерінің Стилизацияланған Фактілері

Ештеңе модельдемес бұрын, нені қайта жаңғыртуға тырысатынымызды нақтылаған жөн. Эмпирикалық қаржылық кірістіліктер — акциялар, валюта нарығы, әсіресе криптовалюта — ондаған жылдар бойы құжатталған сенімді статистикалық заңдылықтардың шағын жиынын бөліседі. Оларды әдетте стилизацияланған фактілер деп атайды, және солардың үшеуі бұдан кейінгінің бәрін басқарады.

1. Волатильділіктің кластерленуі. Үлкен қозғалыстар (кез келген таңбамен) үлкен қозғалыстармен, ал кіші қозғалыстар кіші қозғалыстармен жалғасуға бейім. Мандельброт мұны 1963 жылы мақта бағаларында байқаған. Формальды түрде, rtr_t кірістіліктері серияда дерлік корреляцияланбаған болса да, квадраттталған кірістіліктер rt2r_t^2 (іске асырылған дисперсияның прокси көрсеткіші) күшті, баяу ыдырайтын оң автокорреляция көрсетеді.

2. Ауыр құйрықтар (лептокуртоз). Кірістіліктердің шартсыз таралуы гаусс таралуымен салыстырғанда шеткі мәндерде әлдеқайда көп массаға ие. Қалыпты таралудың куртозы 3 болса, BTC-нің күнделікті лог-кірістіліктері әдетте 8-10-нан жоғары орналасады, ал жоғары жиіліктегі криптовалюта кірістіліктері одан да нашар болуы мүмкін. Қалыпты модель бойынша шамамен миллион жылда бір рет болуы керек алты сигмалық күндер онжылдықта бірнеше рет кездеседі.

3. Кірістіліктерде сызықтық автокорреляция жоқ, квадраттталған кірістіліктерде күшті автокорреляция бар. Бұл — нағыз волатильділік процесі мен тривиальды трендті ажырататын "саусақ ізі". rtr_t-ны өз лагтарына регрессиялап көрсеңіз, пайдалануға жарамайтын ештеңе таппайсыз. rt2r_t^2-ны лагтарына регрессиялап көрсеңіз, анық, тұрақты сигнал табасыз. Бұл дәл дисперсия моделі қамтуы тиіс құрылым — және дәл тұрақты-σ\sigma моделі тастап кететін нәрсе.

Осы үшеуін бірнеше жолда көзбен көруге болады. Мұнда арнайы деректер көзі қажет емес; өндірісте ccxt-ты қолданыңыз, бірақ жаңғыртылатын мысал үшін yfinance де жеткілікті.

import numpy as np
import pandas as pd
import yfinance as yf
from statsmodels.graphics.tsaplots import plot_acf
from statsmodels.stats.diagnostic import acorr_ljungbox
from scipy import stats

px = yf.download("BTC-USD", start="2021-01-01", end="2025-12-31")["Close"]
ret = np.log(px / px.shift(1)).dropna()          # log returns
ret = ret.rename("btc")

print(f"Observations:     {len(ret)}")
print(f"Ann. volatility:  {ret.std() * np.sqrt(365):.2%}")
print(f"Skewness:         {stats.skew(ret):.2f}")
print(f"Excess kurtosis:  {stats.kurtosis(ret):.2f}")   # 0 == Gaussian

lb_ret  = acorr_ljungbox(ret,        lags=[10], return_df=True)
lb_ret2 = acorr_ljungbox(ret ** 2,   lags=[10], return_df=True)
print("\nLjung-Box p-value, returns   (lag 10):", float(lb_ret["lb_pvalue"].iloc[0]))
print("Ljung-Box p-value, squared   (lag 10):", float(lb_ret2["lb_pvalue"].iloc[0]))

Әдеттегі көрсеткіш (иллюстративті — сіздің терезеңіз өзгеше болады): 3-тен әлдеқайда жоғары артық куртоз, шикі кірістіліктер бойынша Ljung-Box p-мәні "автокорреляция жоқ" деген болжамды теріске шығармайды, ал квадраттталған кірістіліктер бойынша p-мәні дерлік нөлге тең. Осы соңғы қарама-қайшылық — бүкіл ойынның мәні. Күнделікті горизонтта кірістіліктердің таңбасында сауда жасайтын ештеңе жоқ, бірақ олардың дисперсиясында көп құрылым бар, және сол құрылым болжамды.

Криптовалютаның тәулігіне 24 сағат жұмыс істейтіні туралы бір ескерту. Акциялардан айырмашылығы, түнгі алшақтық та, демалыс күні жабылу да жоқ, сондықтан "күн" таза 24 сағаттық бар болып табылады, ал жылдандыру коэффициенті 252\sqrt{252} емес, 365\sqrt{365}. Волатильділіктің кластерленуі күн ішіндегі масштабтарда да сақталады, бұл сағаттық барларда GARCH іске қосқанда маңызды — қаржыландыру мөлшерлемесінің ауысулары мен ликвидация каскадтары күндік модель тегістеп жіберетін өткір, кластерленген дисперсия жарылыстарын енгізеді.

ARCH-тан GARCH-қа Дейін

Енді мәселе анық қойылды: соңғы өткенге тәуелді, тұрақты болмайтын дисперсияны модельдеу керек. Мұны дұрыс жасаған алғашқы модель — Энглдің ARCH-і (Autoregressive Conditional Heteroskedasticity, 1982), ол оған 2003 жылы Нобель сыйлығын алып берді.

Кірістілікті шартты орта мен соққы қосындысы ретінде жазайық:

rt=μt+εt,εt=σtzt,zti.i.d. (0,1)r_t = \mu_t + \varepsilon_t, \qquad \varepsilon_t = \sigma_t z_t, \qquad z_t \sim \text{i.i.d. } (0, 1)

Мұндағы σt2\sigma_t^2шартты дисперсия, яғни t1t-1 уақытына дейін белгілі барлық нәрсе есепке алынған кездегі rtr_t-ның дисперсиясы, ал ztz_t — стандартталған инновация (ең қарапайым жағдайда — стандартты қалыпты). "Шартты" сөзі бар жұмысты атқарады: шартсыз дисперсия тұрақты болуы мүмкін, бірақ кешегіге қатысты алғанда ол қозғалады.

Энглдің ARCH(qq) моделі бүгінгі дисперсияны соңғы qq квадратталған соққының өлшенген қосындысы етіп жасайды:

σt2=ω+i=1qαiεti2\sigma_t^2 = \omega + \sum_{i=1}^{q} \alpha_i \, \varepsilon_{t-i}^2

мұндағы ω>0\omega > 0 және αi0\alpha_i \ge 0 дисперсияны оң сақтау үшін. Бұл кластерленуді тікелей қамтиды: үлкен соққы εt12\varepsilon_{t-1}^2 σt2\sigma_t^2-ны жоғары көтереді, бұл келесі үлкен соққы мүмкіндігін арттырады, бұл дисперсияны жоғары деңгейде ұстайды. Мәселе — эмпирикалық ыдырауда. Нақты нарықтардағы волатильділіктің тұрақтылығы көптеген лагтарға созылады, сондықтан оны сай ету үшін ARCH моделіне үлкен qq керек — жиі 8, 10 немесе одан да көп — бұл асыра үйретуге бейім ұзын, тұрақсыз αi\alpha_i векторын бағалауды білдіреді.

Боллерслевтің 1986 жылғы түйсігі — бір параметрмен барлық сол тұрақтылықты сіңіретін мүше қосу болды. GARCH(1,1) — Generalized ARCH — рекурсиясы:

σt2=ω+αεt12+βσt12\sigma_t^2 = \omega + \alpha \, \varepsilon_{t-1}^2 + \beta \, \sigma_{t-1}^2

Үш параметр, үш анық түсіндірме:

  • ω>0\omega > 0базалық деңгей немесе еден. Дисперсияның ұзақ мерзімді деңгейін бекітетін тұрақты. Дисперсия ешқашан ω\omega қолдайтын деңгейден төмен түспейді.
  • α0\alpha \ge 0 — жаңалыққа реакция. Дисперсияның кешегі тосын оқиғаға εt12\varepsilon_{t-1}^2 қаншалықты қатты жауап беретіні. Үлкен α\alpha дегеніміз шартты дисперсия секіргіш және соққыға сезімтал.
  • β0\beta \ge 0тұрақтылық немесе есте сақтау. Кешегі дисперсияның қаншасы бүгінге өтеді. Үлкен β\beta дегеніміз волатильділік тегіс және баяу солады — тыныштық тыныш қалады, дауыл дауылды болып қалады.

Талғампаздық рекурсияда жатыр. σt12\sigma_{t-1}^2-ның өзінде βσt22\beta \sigma_{t-2}^2 мүшесі болғандықтан, кері бағытта жайып көрсетсек, GARCH(1,1) — өткен квадратталған соққыларға геометриялық түрде ыдырайтын салмақтар αβk\alpha \beta^{k} қойылған ARCH(\infty) екенін көрсетеді:

σt2=ω1β+αk=0βkεt1k2\sigma_t^2 = \frac{\omega}{1-\beta} + \alpha \sum_{k=0}^{\infty} \beta^{k}\, \varepsilon_{t-1-k}^2

Сонымен, бір ғана β\beta өткен соққылардың шексіз, экспоненциалды өлшенген есін сатып алады. Дәл осы себепті бар болғаны GARCH(1,1) — үш параметр — он параметрлі ARCH модельдерінен жиі озып кетеді, және дәл осы себепті ол қолданбалы волатильділікті модельдеудің негізгі құралына айналды. Ол, шындығында, RiskMetrics EWMA дисперсия бағалаушысының жақын туысы — бұл ω=0\omega = 0, α+β=1\alpha + \beta = 1 болатын, β\beta 0.94-ке бекітілген ерекше жағдай. GARCH деректерге α\alpha, β\beta және шынайы орташа қайтарылу деңгейін таңдауға мүмкіндік беру арқылы оны жалпылайды.

Қасиеттер: Стационарлық, Ұзақ Мерзімді Дисперсия және Жартылай Ыдырау Кезеңі

GARCH(1,1) рекурсиясының туындауға тұрарлық бірнеше қасиеті бар, өйткені олар моделді жай ғана сай еткен емес, оны түсінуге мүмкіндік береді.

Шартсыз (ұзақ мерзімді) дисперсия. Процесс ковариациялық-стационарлы деп есептейік, сонда шартсыз дисперсия σˉ2=E[εt2]=E[σt2]\bar{\sigma}^2 = \mathbb{E}[\varepsilon_t^2] = \mathbb{E}[\sigma_t^2] бар және уақыт бойы тұрақты болады. Рекурсияның екі жағының математикалық күтуін алайық. E[εt12]=E[σt12]=σˉ2\mathbb{E}[\varepsilon_{t-1}^2] = \mathbb{E}[\sigma_{t-1}^2] = \bar{\sigma}^2 болғандықтан:

σˉ2=ω+ασˉ2+βσˉ2        σˉ2=ω1αβ\bar{\sigma}^2 = \omega + \alpha\, \bar{\sigma}^2 + \beta\, \bar{\sigma}^2 \;\;\Longrightarrow\;\; \bar{\sigma}^2 = \frac{\omega}{1 - \alpha - \beta}

Бұл — волатильділіктің қайтарылатын деңгейі. Ол тек α+β<1\alpha + \beta < 1 болғанда ғана бар болады және оң болады.

Стационарлық шарты. Дәл сол теңсіздік,

α+β<1,\alpha + \beta < 1,

GARCH(1,1) үшін ковариациялық-стационарлық шарты болып табылады. α+β\alpha + \beta шамасы дисперсия процесінің тұрақтылығы — бұл дисперсия соққысының σˉ2\bar{\sigma}^2-ге қалай ыдырайтынын анықтайтын AR(1) коэффициенті. Егер α+β1\alpha + \beta \ge 1 болса, шартсыз дисперсия шексіз (немесе анықталмаған) болады және соққылар ешқашан толық жойылмайды.

Орташа қайтарылуды нақты көруге болады. Дисперсия ауытқуын σt2σˉ2\sigma_t^2 - \bar{\sigma}^2 деп анықтайық. Рекурсияда шағын алгебра (ω=σˉ2(1αβ)\omega = \bar{\sigma}^2(1 - \alpha - \beta) алмастыруымен) күту бойынша мынаны береді:

Et[σt+k2]σˉ2=(α+β)k(σt+12σˉ2)\mathbb{E}_t[\sigma_{t+k}^2] - \bar{\sigma}^2 = (\alpha + \beta)^{k}\,\bigl(\sigma_{t+1}^2 - \bar{\sigma}^2\bigr)

Ағымдағы дисперсия мен оның ұзақ мерзімді деңгейі арасындағы алшақтық әр қадамда (α+β)(\alpha + \beta) коэффициентіне қысқарады. Бұл дәл кейінірек қолданатын көп қадамды болжам.

Волатильділіктің жартылай ыдырау кезеңі. Дисперсия соққысы қалыпты жағдайға жартылай оралуы үшін қанша уақыт керек? (α+β)h=1/2(\alpha+\beta)^{h} = 1/2 теп шешейік:

h1/2=ln0.5ln(α+β)h_{1/2} = \frac{\ln 0.5}{\ln(\alpha + \beta)}

α+β=0.95\alpha + \beta = 0.95 болғанда жартылай ыдырау кезеңі шамамен 13.5 күн; 0.980.98 үшін — шамамен 34 күн; 0.990.99 үшін — шамамен 69 күн. Бұл жалғыз сан жиі шикі параметрлерден гөрі түсінікті болады — ол сіздің барларыңыздың бірліктерінде волатильділіктің қаншалықты "жабысқақ" екенін көрсетеді.

Криптовалютадағы IGARCH-қа жақын мәселе. Міне, криптовалютаға тән қиындық. BTC немесе ETH кірістіліктеріне GARCH(1,1) сай еткенде, α+β\alpha + \beta дерлік әрдайым 1-ге өте жақын болатынын табасыз — 0.98, 0.99, кейде тіпті 0.995 мәндері әдеттегі жайт. Бұл — IGARCH-қа (Integrated GARCH) жақын режим. Оның нақты салдары бар:

  • Жартылай ыдырау кезеңі өте үлкен болады (апталар мен айлар), сондықтан модель волатильділікті өте тұрақты және орташаға сирек қайтатын деп қарастырады.
  • σˉ2=ω/(1αβ)\bar{\sigma}^2 = \omega/(1-\alpha-\beta) бағасы өте сезімтал болады: α+β\alpha+\beta-ның 0.99-дан 0.995-ке шамалы өзгеруі болжамды ұзақ мерзімді дисперсияны екі есе арттырады. Осы режимде сенімділік интервалынсыз ұзақ мерзімді волатильділіктің нүктелік бағасына ешқашан сенбеңіз.
  • Көп қадамды болжамдар сонша баяу орташаға оралады, бірнеше аптадан аз практикалық горизонттар үшін GARCH дерлік дисперсиядағы кездейсоқ серуен сияқты әрекет етеді (бұл EWMA-ның болжамы).

Жақын интеграциялану нағыз ма, әлде құрылымдық үзілістердің артефакті ме (модель бір ұзақ тұрақты эпизод ретінде оқитын волатильділік деңгейінің тұрақты ауысуы) — бұл нақты пікірталас. Бұл — барлық тарихқа бір рет сай ету орнына домалайтын терезелерде қайта сай ету қажеттілігінің тағы бір себебі, бұған кемшіліктер бөлімінде қайта ораламыз. Режим құрылымын нақты ауыстырушы модель жақсы өңдейді — қараңыз жасырын Марков модельдерімен режимді анықтау, ол GARCH-ты алмастырушы емес, оны толықтырушы.

Максималды Ықтималдық Әдісімен Бағалау

GARCH параметрлері максималды ықтималдық әдісімен бағаланады. Логика тікелей: θ=(μ,ω,α,β)\theta = (\mu, \omega, \alpha, \beta) берілгенде, рекурсия шартты дисперсиялардың толық жолын σt2(θ)\sigma_t^2(\theta) береді, ал инновациялар ztz_t үшін болжамды таралу арқылы байқалған кірістіліктердің қаншалықты ықтимал екенін жаза аламыз. Содан кейін ықтималдықты максимизациялайтын θ\theta-ны таңдаймыз.

Гаусс инновацияларын болжайық ztN(0,1)z_t \sim \mathcal{N}(0,1), сонда rtFt1N(μ,σt2)r_t \mid \mathcal{F}_{t-1} \sim \mathcal{N}(\mu, \sigma_t^2). Бір бақылаудың шартты тығыздығы:

f(rtFt1)=12πσt2exp ⁣((rtμ)22σt2).f(r_t \mid \mathcal{F}_{t-1}) = \frac{1}{\sqrt{2\pi\sigma_t^2}}\exp\!\left(-\frac{(r_t - \mu)^2}{2\sigma_t^2}\right).

Модель шартты түрде жазылғандықтан, біріккен ықтималдық бір қадамдық тығыздықтардың көбейтіндісіне жіктеледі, ал лог-ықтималдық — қарапайым қосынды:

(θ)=12t=1T[ln(2π)+lnσt2(θ)+(rtμ)2σt2(θ)].\ell(\theta) = -\frac{1}{2}\sum_{t=1}^{T}\left[\ln(2\pi) + \ln \sigma_t^2(\theta) + \frac{(r_t - \mu)^2}{\sigma_t^2(\theta)}\right].

Байқауға тұрарлық екі құрылымдық факт бар. Біріншіден, σt2\sigma_t^2 айыппұл ретінде де (lnσt2\ln \sigma_t^2 — модель жоғары дисперсияны мәлімдегені үшін жазаланады) және стандартталған қалдықта да ((rtμ)2/σt2(r_t-\mu)^2/\sigma_t^2 — модель тосыннан таңғалғаны үшін жазаланады) пайда болады. Оптимум осы екеуін теңестіреді, дәл осы дисперсияны бақылап отыруды қамтамасыз етеді. Екіншіден, рекурсияға σ12\sigma_1^2 бастамасы қажет; әдеттегі таңдау — кірістіліктердің таңдамалы дисперсиясы, ал бірнеше мың бақылаумен бастама шамалы маңызды.

Максимизациялаушыға жабық форма жоқ, сондықтан біз сандық түрде оптимизациялаймыз (arch аналитикалық немесе сандық градиенттермен квази-Ньютон әдісін қолданады). Ықтималдық беті GARCH(1,1) үшін әдетте жақсы мінез көрсетеді, бірақ практикада екі нәрсе мазалайды: оңдылық шектеулері (ω,α,β0\omega,\alpha,\beta \ge 0) және α+β1\alpha+\beta \to 1 болғандағы шекараға жақын мінез, мұнда оптимизатор баяу жылжуы мүмкін. Екеуін де жақсы кітапхана өзі шешеді — және сіз соны қолдануыңыз керек. GARCH MLE-ін қолмен жасау жақсы оқу жаттығуы, бірақ өндіріс үшін нашар таңдау.

arch Кітапханасы

Kevin Sheppard жазған arch пакеті — Python-дағы стандартты құрал. Барлық сай ету төрт жолда орындалады.

from arch import arch_model

r = ret * 100.0

model  = arch_model(r, mean="Constant", vol="Garch", p=1, q=1, dist="normal")
res    = model.fit(disp="off")
print(res.summary())

Аргумент атаулары туралы бір сөз, өйткені олар жиі шатасу көзі болады. arch-та p — лагталған дисперсиялар саны (β\beta мүшелері, GARCH реті), ал q — лагталған квадратталған қалдықтар саны (α\alpha мүшелері, ARCH реті). Сонымен, p=1, q=1 — бізің шығарған GARCH(1,1) моделіміз. (Боллерслевтің бастапқы белгілеуінде ол GARCH(p,qp,q) деп жазылады, мұнда pp ARCH реті үшін — екі белгілеу орны ауысады. Өз жадыңызға емес, кітапхананың құжатына сеніңіз.)

Қорытындыны оқысақ, коэффициенттер кестесі шамамен былай көрінеді (BTC күнделікті кірістіліктер үшін иллюстративті мәндер, нақты эксперимент емес):

                     Volatility Model
==========================================================
                 coef    std err      t      P>|t|
----------------------------------------------------------
omega          0.4821     0.201    2.40    0.016
alpha[1]       0.0912     0.021    4.34    0.000
beta[1]        0.8994     0.024   37.5     0.000
==========================================================

Оны қалай оқу керек:

  • alpha[1] + beta[1] = 0.0912 + 0.8994 = 0.9906. Тұрақтылық 1-ден шамалы төмен — дәл ескертілгендей IGARCH-қа жақын режим. Жартылай ыдырау кезеңі ln(0.5)/ln(0.9906)73\approx \ln(0.5)/\ln(0.9906) \approx 73 күн.
  • omega = 0.4821, сондықтан ұзақ мерзімді дисперсия0.4821/(10.9906)=51.30.4821 / (1 - 0.9906) = 51.3 пайыз-квадрат бірліктерінде, яғни ұзақ мерзімді күндік волатильділік 51.37.2%\sqrt{51.3} \approx 7.2\%, немесе шамамен 7.2%×365138%7.2\%\times\sqrt{365}\approx 138\% жылдық көрсеткіште. Бұл BTC үшін ақылға қонымды сан.
  • alpha мен beta екеуі де күшті мәнді. alpha-ның beta-ға қарағанда кіші болуы әдеттегі жайт: криптовалюта дисперсиясы негізінен тұрақтылықтан (естен) тұрады, жаңа соққыларға қарапайым бірақ нақты реакциямен.

×100 Масштабтау Тұзағы

Бұл arch-тан мағынасыз нәтиже алудың ең жиі жолы, сондықтан ол өз бөлімшесіне лайық. Оптимизатор көретін сандар O(1)O(1)-ден O(100)O(100)-ге дейін болғанда жақсы жұмыс істейді. Күнделікті лог-кірістіліктер O(0.01)O(0.01) болады, сондықтан олардың квадраттары O(0.0001)O(0.0001) болады, ал ω\omega шамамен 10610^{-6} маңында болуы керек — сандық градиенттер дәлдігін жоғалтатын және сай ету дыбыссыз жинақталмай қалуы немесе қоқыс стандартты қателерді қайтаруы мүмкін диапазонда.

Шешім — жоғарыда көрсетілгендей, 100-ге көбейтілген кірістіліктерге (яғни пайызбен) сай ету. Ұмытып кетсеңіз, arch тіпті DataScaleWarning шығарады. Модельден оқитын барлық нәрсе пайыз немесе пайыз-квадрат бірліктерінде болады, сондықтан сіз бірізді түрде масштабты кері шешуіңіз керек:

sigma_pct     = np.sqrt(res.forecast(horizon=1).variance.iloc[-1, 0])
sigma_decimal = sigma_pct / 100.0
print(f"1-day-ahead conditional vol: {sigma_decimal:.2%}")

Масштабталған және масштабталмаған шамаларды араластыру — мысалы, ондық санды күтетін позиция көлемін есептеу формуласына пайыздық волатильділікті беру — дәл 100 есе қателер тудырады, оларды байқау қиын, өйткені код қалыпты жұмыс істей береді. Бір конвенцияны таңдаңыз (мен arch-тың шекарасында ғана масштабтап, сыртта бәрін ондық түрде ұстаймын) және оны ешқашан бұзбаңыз.

Шартты Дисперсияны Болжау

Сай етілген модель тек болжай алғанда ғана пайдалы. GARCH кез келген горизонтта таза, аналитикалық болжамдар береді.

Бір қадам алдын ала. TT уақытында (үлгінің соңында) біз εT\varepsilon_T мен σT2\sigma_T^2-ны білеміз, сондықтан келесі дисперсия детерминистикалық:

σT+12=ω+αεT2+βσT2.\sigma_{T+1}^2 = \omega + \alpha\,\varepsilon_T^2 + \beta\,\sigma_T^2.

Күту қажет емес — оң жақтағының бәрі бақыланған.

Көп қадамды алдын ала. h2h \ge 2 үшін біз аралық соққыларды әлі білмейміз, сондықтан шартты күтулерді аламыз. ET[εT+k2]=ET[σT+k2]\mathbb{E}_T[\varepsilon_{T+k}^2] = \mathbb{E}_T[\sigma_{T+k}^2] қолданып (өйткені E[z2]=1\mathbb{E}[z^2]=1), рекурсия болжанған дисперсиядағы қарапайым AR(1)-ге дейін қысқарады:

ET[σT+h2]=ω+(α+β)ET[σT+h12].\mathbb{E}_T[\sigma_{T+h}^2] = \omega + (\alpha + \beta)\,\mathbb{E}_T[\sigma_{T+h-1}^2].

Бұны бір қадамдық болжамнан бастап итерациялау бұрын шығарған орташаға қайтарылу нәтижесін толық жазылған жабық форманы береді:

ET[σT+h2]=σˉ2+(α+β)h1(σT+12σˉ2),σˉ2=ω1αβ.\mathbb{E}_T[\sigma_{T+h}^2] = \bar{\sigma}^2 + (\alpha+\beta)^{\,h-1}\bigl(\sigma_{T+1}^2 - \bar{\sigma}^2\bigr), \qquad \bar{\sigma}^2 = \frac{\omega}{1-\alpha-\beta}.

Мұны мұқият оқыңыз, себебі бұл әрбір GARCH болжамының геометриясы. Дисперсияның мерзімдік құрылымы бүгінгі шартты дисперсиядан σT+12\sigma_{T+1}^2 басталып, ұзақ мерзімді деңгейге σˉ2\bar{\sigma}^2 геометриялық түрде ыдырайды. Егер бүгін орташадан тыныш болса, болжам қисығы σˉ2\bar\sigma^2-ге қарай көтеріледі; егер бүгін дағдарыс болса, ол оған қарай түседі. Осы ыдыраудың жылдамдығын толығымен (α+β)(\alpha+\beta) анықтайды — ал IGARCH-қа жақын криптовалюта режимінде, α+β0.99\alpha+\beta \approx 0.99 болғанда, ыдырау сонша баяу, бірнеше апталық горизонттарда болжам бүгінгі деңгейден дерлік ауыспайды. Мұны меңгеру керек: қысқа ұстау кезеңдері үшін криптовалюта GARCH болжамы негізінен "ертең бүгінгідей көрінеді, тек өте баяу қайта оралады" дегенді білдіреді.

Ұстау горизонтына жинақтау. Трейдерлер сирек бір болашақ күннің дисперсиясына мән береді. Егер сіз позицияны HH күн ұстасаңыз және кірістіліктер шартты түрде корреляцияланбаған болса (басынан бергі стилизацияланған факт), жинақталған HH-күндік кірістіліктің дисперсиясы бір күндік болжамды дисперсиялардың қосындысы болады:

σT2(H)=h=1HET[σT+h2],σT(H)=σT2(H).\sigma_{T}^{2}(H) = \sum_{h=1}^{H} \mathbb{E}_T[\sigma_{T+h}^2], \qquad \sigma_T(H) = \sqrt{\sigma_T^2(H)}.

Бұл — сіз шынымен қарсы көлем таңдайтын сан — ұстау кезеңіндегі P&L-дің волатильділігі. Бұл дисперсия тұрақты болғанда ғана дұрыс болатын қарапайым HσT+1\sqrt{H}\,\sigma_{T+1} масштабтауы емес екенін ескеріңіз. Бүгінгі дисперсия σˉ2\bar\sigma^2-ден жоғары болғанда, орташаға қайтарылатын болжам нағыз HH-күндік волатильділікті квадрат түбір ережесінен төмен етеді; бүгін тыныш болғанда — жоғары. Мұны дұрыс алу — мерзімдік құрылымды құрметтейтін стоп пен құрметтемейтін стоптың арасындағы айырмашылық.

Кодта:

H = 10
fc = res.forecast(horizon=H, reindex=False)

var_path_pct2 = fc.variance.iloc[-1].values        # [E_T sigma^2_{T+1}, ..., T+H]
var_path      = var_path_pct2 / (100.0 ** 2)       # back to decimal variance

daily_vol   = np.sqrt(var_path)
print("Forecast daily vol path:", np.round(daily_vol * 100, 2), "%")

H_day_var = var_path.sum()
H_day_vol = np.sqrt(H_day_var)
print(f"{H}-day holding-period vol: {H_day_vol:.2%}")

naive = np.sqrt(var_path[0] * H)
print(f"Naive sqrt(H) * sigma_1:   {naive:.2%}")

Ұзағырақ горизонттар үшін GARCH сонымен қатар симуляциялық болжамдарды (method="simulation") қолдайды, олар инновация таралуын алға қарай тарата отырып, тек оның дисперсиясын емес, толық болжамды тығыздықты береді — бұл инновациялар гаусстық болмағанда пайдалы, ал 2-бөлімде Student-t және қисайған таралуларға көшкенде дәл солай болады. Жоғарыдағы дисперсиядан сызықтық шамалар үшін аналитикалық жол дәл және тегін.

Диагностика: Модель Шынымен Жұмыс Істеді Ме?

Моделді сай ету оны тексеруге тең емес. GARCH-тың бүкіл мәні — шартты гетероскедастиктілікті, яғни волатильділіктің кластерленуін сіңіру, сонда қалғаны (шамамен) тәуелсіз және бірдей таралған болады. Дұрыс тексеру — стандартталған қалдықтарға қарау

z^t=rtμ^σ^t\hat{z}_t = \frac{r_t - \hat\mu}{\hat\sigma_t}

және сұрау: кластерлену жоғалды ма? Модель дисперсия динамикасын қамтыса, z^t\hat z_t бірлік дисперсияға ие болуы керек, және маңыздысы, олардың квадраттары z^t2\hat z_t^2 ешбір қалдық автокорреляция көрсетпеуі керек. Біз үш тест жүргіземіз.

1. Стандартталған қалдықтарда Ljung-Box. z^t\hat z_t деңгейінде сызықтық автокорреляция қалмағанын тексереді (бұл шынымен орта модельді тексереді, дисперсия моделін емес). Теріске шығармауы керек.

2. Квадратталған стандартталған қалдықтарда Ljung-Box. Бұл маңызды тест. Егер z^t2\hat z_t^2 әлі де мәнді автокорреляцияға ие болса, дисперсия моделі кластерленуді жоя алмады — GARCH(1,1) қамтымаған құрылым бар, сізге жоғары рет, асимметриялық нұсқа немесе басқа инновация таралуы қажет болуы мүмкін. Теріске шығармауы керек.

3. ARCH-LM тесті (Энглдің Лагранж-мультипликатор тесті). z^t2\hat z_t^2-ны өз лагтарына регрессиялап, бірлескен мәнділікті тексереді. Бұл негізінен 2-тесттің формальды нұсқасы және тікелей "қалдық ARCH эффектісі бар ма?" деп сұрайды. Мәнсіз нәтиже шартты гетероскедастиктіліктің моделденіп жойылғанын растайды.

from statsmodels.stats.diagnostic import acorr_ljungbox
from arch.unitroot.cointegration import engle_granger  # (unrelated; shown for import clarity)

z  = res.std_resid.dropna()          # standardized residuals
z2 = z ** 2

lb_z  = acorr_ljungbox(z,  lags=[10, 20], return_df=True)
lb_z2 = acorr_ljungbox(z2, lags=[10, 20], return_df=True)
print("Ljung-Box on standardized residuals:\n", lb_z, "\n")
print("Ljung-Box on SQUARED standardized residuals:\n", lb_z2, "\n")

lm = res.arch_lm_test(lags=10, standardized=True)
print(lm)

print(f"\nStd-resid excess kurtosis: {stats.kurtosis(z):.2f}")

Жақсы нәтиже қалай көрінеді: z^t2\hat z_t^2 бойынша Ljung-Box p-мәндері (шикі квадратталған кірістіліктердегі) нөлге жақыннан 0.05-тен жоғары ыңғайлы деңгейге секіреді, ал ARCH-LM тесті теріске шығармайды. Бұл — модельдің екінші момент бойынша жұмысын жасағанының дәлелі.

Жетілмеген нәтиже қалай көрінеді — және криптовалютада қарапайым гаусстық GARCH(1,1)-ден не күту керек — кластерлену тесттері өтеді, бірақ стандартталған қалдықтардың куртозы әлі де жоғары (мысалы, 0-нің орнына 4-6). GARCH кластерленуді жояды, бірақ бір ауыр құйрықты шартсыз таралу қалады, себебі гаусстық инновациялар құйрықтарды қайта жаңғырта алмайды. Ол қалдық ауыр құйрықтылығы мұнда түзетілуі керек ақау емес; бұл 2-бөлімнің — криптовалютадағы асимметриялық GARCH және левередж эффекті — тақырыбы, онда Student-t және қисайған-t инновациялары мен GJR/EGARCH асимметрия мүшесі дәл осыны шешеді.

Қолдану: Волатильділікке Масштабталған Көлем мен Стоптар

Енді бізде ертеңгі (және келесі HH күндегі) волатильділіктің болжамы бар. Онымен не істейміз? Ең қарапайым, ең құнды екі қолдану — позиция көлемі мен стоп орналастыру. Екеуін де мұнда әдейі негізгі деңгейде ұстаймыз — барлық практикалық механизмі бар толық волатильділікке бағыттау стратегиясы 4-бөлім.

Волатильділікке Бағытталған Позиция Көлемі

Идея — уақыт бойы шамамен тұрақты тәуекел үлесі бар позицияны ұстау, тұрақты номинал бар позицияны емес. Егер сіз әрдайым бірдей долларлық көлем орналастырсаңыз, тәуекеліңіз жоғары волатильділік режимдерінде ісінеді, ал тыныш режимдерде қурап кетеді — сіз қалайтынға қарама-қарсы. Волатильділікке бағыттау мұны аударады: P&L-дің тұрақты мақсатты волатильділігіне мақсаттаныңыз, ал болжам көлемді анықтасын.

Мақсатты жылдық волатильділік σtarget\sigma_{\text{target}} үшін (айталық, 20%) және болжамды жылдық волатильділік σ^t\hat\sigma_t үшін, позиция салмағы:

wt=σtargetσ^t.w_t = \frac{\sigma_{\text{target}}}{\hat{\sigma}_t}.

Болжамды волатильділік жоғары болғанда, сіз азайтасыз; ол төмен болғанда — арттырасыз. Бүкіл механизм осы. σ^t\hat\sigma_t болжам болғандықтан — t+1t+1 уақытындағы кірістілік іске асырылмас бұрын tt уақытында белгілі — сіз уақыт таңдауға қатысты дисциплиналанған болсаңыз, алдын ала қарау мәселесі жоқ (бұл туралы кейінірек, кемшіліктер бөлімінде толығырақ).

def vol_target_weight(sigma_forecast_annual, sigma_target_annual=0.20,
                      w_max=3.0):
    """Volatility-scaled position weight. Inputs/outputs in decimals.
    w_max caps leverage so a tiny forecast vol can't demand insane size."""
    w = sigma_target_annual / sigma_forecast_annual
    return float(np.clip(w, 0.0, w_max))

sigma_1d   = np.sqrt(res.forecast(horizon=1).variance.iloc[-1, 0]) / 100.0
sigma_ann  = sigma_1d * np.sqrt(365)
w          = vol_target_weight(sigma_ann, sigma_target_annual=0.20)
print(f"Forecast annual vol: {sigma_ann:.1%}  ->  position weight: {w:.2f}x")

Бұл дұрыс капитал бөлу ережелерінің туыс құралы. Волатильділікке бағыттау "тәуекел волатильділікпен қалай масштабталуы керек" деген сұраққа жауап береді, ал Kelly критерийі "тәуекел басымдықпен қалай масштабталуы керек" деген сұраққа жауап береді — және екеуі толық көлем қою жүйесінде көбейтіледі: көлем \propto басымдық / дисперсия. Kelly-дің дисперсия мүшесі дәл сіз есептеген GARCH болжамы екенін ескеріңіз, дәл осы себепті тірі волатильділік моделі статикалық тарихи бағадан гөрі Kelly көлемін елеулі түрде жетілдіреді. Егер сіздің басымдық бағаңыздың өзінде сандық белгісіздік болса, конформальды болжам көлемді сәйкестендіру үшін кеңейту немесе қысқарту үшін таралусыз әдіс береді, және ол волатильділікке бағыттаумен таза ұштасады.

w_max шегі міндетті. IGARCH-қа жақын режимде тыныш кезең болжамды волатильділікті айтарлықтай төмен түсіруі мүмкін, ал σtarget/σ^t\sigma_{\text{target}}/\hat\sigma_t қағаз жүзінде дұрыс, бірақ тыныштық бұзылғанда апатты болатын левередж талап етеді — ал волатильділіктің кластерленуіне сай, ол ерте ме, кеш пе бұзылады, көбіне кенеттен. Левереджді шектеу — сіздің болжамыңыз кепілдік емес, шартты орта екенін, және қате болудың төлемі асимметриялы екенін мойындаудың дөрекі бірақ тиімді жолы. Ол асимметрия — жарылған шот симметриялы жеңіспен қалпына келтірілмейді — дәл шығын мен пайда асимметриясы сізді дисперсия ғана ережесі ұсынғаннан жүйелі түрде сақтықпен қарауға мәжбүрлейді.

Волатильділікке Масштабталған Стоптар

Тұрақты пайыздық стоп та бекітілген позиция көлемімен бірдей ауруға ие: 3% стоп тыныш нарықта секіргіш ажыратқыш, ал қатты нарықта дөңгелектеу қатесі. Ол сізді жоғары волатильділік режимдерінде әдеттегі шуылдан жақсы позициялардан шығарып тастайды, ал ауысулар кезінде тым көп бере береді. Шешім — стоп қашықтығын болжамды волатильділік бірліктерінде орнату.

стоп қашықтығыt=kσ^t(H)\text{стоп қашықтығы}_t = k \cdot \hat\sigma_t^{(H)}

мұндағы σ^t(H)\hat\sigma_t^{(H)} — сіздің болжамды ұстау горизонтыңыз HH бойынша болжамды волатильділік (болжау бөлімінен жинақталған шама), ал kk — көбейткіш, әдетте 1.5-тен 3-ке дейін, стоп қалыпты ауытқудан тыс, бірақ нағыз қолайсыз қозғалыстың ішінде орналасатындай таңдалады.

def vol_scaled_stop(entry_price, side, sigma_H, k=2.0):
    """
    entry_price : fill price
    side        : +1 long, -1 short
    sigma_H     : forecast volatility over the holding horizon (decimal)
    k           : stop width in vol units
    Returns the stop price.
    """
    stop_frac = k * sigma_H
    return entry_price * (1.0 - side * stop_frac)

var_path = res.forecast(horizon=10, reindex=False).variance.iloc[-1].values / (100.0 ** 2)
sigma_H  = np.sqrt(var_path.sum())

entry = float(px.iloc[-1])
stop  = vol_scaled_stop(entry, side=+1, sigma_H=sigma_H, k=2.0)
print(f"Entry {entry:,.0f}  |  10-day vol {sigma_H:.2%}  |  2-sigma stop {stop:,.0f}")

σ^t(H)\hat\sigma_t^{(H)} жалпақ тарихи санның орнына орташаға қайтарылатын мерзімдік құрылым болжамын қолданатындықтан, стоп қозғалмалы режимдерге қарай автоматты түрде кеңейеді және волатильділік бәсеңдеген сайын тарылады — мерзімдік құрылым сіз үшін бейімделуді жасайды. Бұл көлем мен стопты бірге тамақтандыратын дәл сол болжам, бұл ерекшелік: жоғары волатильділік режимінде сіз бір мезгілде азырақ ұстайсыз және позицияға көбірек орын бересіз, ал екі эффект қосылып, айтарлықтай төмен құйрық тәуекеліне әкеледі. Көлем мен стоп — бір волатильділік көзқарасының екі проекциясы, екі тәуелсіз тетік емес.

Бұл — 1-бөлімде біз қолдануды жеткізетін шектің шамасы. Нақты стратегия тұрақты қайта теңгеруден туындайтын операциялық шығындарды, болжам есептелетін уақыт пен сауда орналастырылатын уақыттың арасындағы уақыт таңдауын, айналымды бақылауды, және — бәрінен маңыздысы — адал үлгіден тыс бағалауды өңдеуі керек. Мұның бәрі — 4-бөлім: волатильділікке бағыттау GARCH стратегиясы, онда біз бүкіл жүйені құрып, walk-forward тестінен өткіземіз.

Кемшіліктер

GARCH сай ету оңай және өзін-өзі алдау оңай. Сәтсіздік режимдері тұрақты.

Кірістіліктерді масштабтау. Жоғарыда қамтылды, бірақ бұл ең маңызды бірінші қате, сондықтан қайталауға тұрарлық: arch-ты кірістіліктер × 100-де сай етіңіз, және әрбір шығысты кері масштабтаңыз (дисперсияны 1002100^2-ге, волатильділікті 100100-ге). Мұндағы дыбыссыз 100 еселі қате кейінгі әрбір көлем мен стоп есептеуін улайды.

Сай ету кезіндегі алдын ала қарау. Жасырын өлтіруші. Егер сіз моделді бүкіл тарихқа сай етіп, содан кейін сол тарих бойынша "болжамдарды" есептесеңіз, әрбір болжам жасырын түрде болашақты көрген — параметрлер болжам күнінен кейінгі деректерді пайдаланып бағаланған. Үлгі ішіндегі сай ету керемет көрінеді, ал тірі көрсеткіш оған мүлдем ұқсамайды. Бэктест жасалған әрбір болжам сол сәтте қолжетімді деректерде ғана сай етілген модельден келуі керек: кеңейетін немесе домалайтын терезеде қайта сай етіп, бір қадам болжап, алға жылжыңыз. Бұл — келісім жасауға болмайтын нәрсе, және бұл walk-forward оптимизациясының бүкіл тақырыбы. Үлгі ішіндегі GARCH пен дұрыс walk-forward арасындағы алшақтық — демо мен тірі нарықтармен байланыста тірі қалатын жүйенің арасындағы алшақтық — қараңыз, сондай-ақ бэктест-тірі паритеті.

Болжам уақыты. Байланысты, бірақ бөлек. t+1t+1 күнінің болжамы tt күнінің (немесе сіздің барыңыз жабылатын кезде) жабылуында қолжетімді ақпараттан есептелуі керек, және позиция сіз шынымен ала алатын бағада орындалуы керек. Болжамды t+1t+1 күнінің жабылуын қолданып есептеп, содан кейін t+1t+1 күнінің ашылуында "сауда жасау" — нәтижелерді дыбыссыз шамадан тыс арттыратын алдын ала қарау.

Жоғары реттерді асыра үйрету. GARCH(1,1) дерлік әрдайым жеткілікті. Үлгі ішіндегі лог-ықтималдықты сәл жоғарылататын болғандықтан GARCH(2,2) немесе GARCH(3,1) сай ету азғыруы әдетте шуды сай ету болып табылады; қосымша параметрлер сирек үлгіден тыс болжамдарды жақсартады және жиі оптимизаторды шекара маңында тұрақсыз етеді. Ықшам модельді таңдаңыз, ал реттерді салыстыруға тура келсе, оларды үлгі ішіндегі AIC бойынша емес, walk-forward бөлудегі үлгіден тыс болжам шығыны бойынша салыстырыңыз. Қалдық диагностика әлі де мәселе көрсетсе, шешім әдетте жақсырақ инновация таралуы немесе асимметрия мүшесі (2-бөлім) болады, жоғары рет емес.

Тұрақтылық ретінде оқылатын құрылымдық үзілістер. Атап өтілгендей, волатильділік деңгейінің тұрақты ауысуы (жаңа нарық режимі, нарық микроқұрылымының өзгеруі) GARCH арқылы жалған жоғары тұрақтылық ретінде сіңірілуі мүмкін, α+β\alpha+\beta-ны 1-ге қарай итереді. Егер сіздің ұзақ мерзімді волатильділік бағаңыз терезелер арасында тұрақсыз көрінсе, IGARCH-қа жақын нүктелік бағаға сенгеннен гөрі үзілістен күдіктеніңіз. Домалайтын қайта сай ету және, орынды жерде, нақты режим моделі осыдан сақтайды.

Волатильділік болжамдарын кірістілік болжамдары деп қарастыру. GARCH қозғалыстардың бағытын емес, шамасын болжайды. Ол ертеңгі ауытқудың қаншалықты үлкен болатынын айтады, қай бағытта екенін емес. Дәл осы себепті оның табиғи орны — сигнал жасау емес, тәуекел басқару — көлем, стоп, VaR. Жақсы дисперсия болжамын басымдық деп шатастырмаңыз.

Бұдан Кейін Не Болады

GARCH(1,1) — негіз, және ол әдейі толық емес. Серия оны үш бағытта дамытады:

  • Асимметрия мен ауыр құйрықтар — нағыз криптовалюта волатильділігі жоғары қозғалыстарға қарағанда төмен қозғалыстарға көбірек жауап береді (левередж эффектісі), ал гаусстық инновациялар құйрықтарды қайта жаңғырта алмайды. GJR-GARCH, EGARCH және Student-t / қисайған-t инновациялары — 2-бөлім.
  • Көпайнымалы волатильділік — криптовалюта активтері арасындағы корреляциялардың өзі уақыт бойы өзгереді және дағдарыстарда секіреді. Бүкіл ковариация матрицасын динамикалық түрде модельдеу — 3-бөлім: DCC-GARCH, ол ковариация динамикалық болғанда Markowitz орта-дисперсия мен CVaR негізіндегі бөлумен тікелей байланысады.
  • Толық стратегия — көлем, стоп, шығындар, айналым және адал walk-forward бағалау — 4-бөлімде бірге жиналады.

Және GARCH шеттері біріккен тәуекелді қайда тамақтандырады: мұндағы бір айнымалы шартты дисперсия моделі — портфельдің VaR/CVaR үшін GARCH-EVT-копула құбырының нақ бірінші сатысы. Бір активке арналған GARCH сай етуден стандартталған қалдықтар алғаннан кейін, сіз оларды түрлендіріп, копуламен жабыстырасыз — шеттер GARCH, тәуелділік — копула. Сол құрылым, соның ішінде құйрық тәуелділігі мен EVT құйрық өңдеуі, бірлескен криптовалюта тәуекеліне арналған копула модельдерінде терең қамтылған; бұл мақала сол астында жатқан бір айнымалы қозғалтқыш.

Қорытынды

  • Криптовалюта кірістіліктері волатильділіктің кластерленуін, ауыр құйрықтарды, кірістілік автокорреляциясының жоқтығын, бірақ квадраттталған кірістілік автокорреляциясының күштілігін көрсетеді. Тұрақты волатильділікті болжайтын кез келген құрал — бір σ\sigma бар Black-Scholes, статикалық VaR, тұрақты пайыздық стоптар — осы фактілерге қайшы дұрыс белгіленбеген.
  • GARCH(1,1), σt2=ω+αεt12+βσt12\sigma_t^2 = \omega + \alpha\varepsilon_{t-1}^2 + \beta\sigma_{t-1}^2, уақыт бойы өзгеретін шартты дисперсияны үш параметрмен модельдейді: базалық деңгей ω\omega, соққы реакциясы α\alpha, тұрақтылық β\beta. Ол — геометриялық ыдырайтын естің ARCH(\infty) моделі, дәл осы себепті ол жоғары ретті ARCH-тан озады.
  • Стационарлық α+β<1\alpha+\beta<1 талап етеді; ұзақ мерзімді дисперсия ω/(1αβ)\omega/(1-\alpha-\beta), тұрақтылық — α+β\alpha+\beta, ал волатильділіктің жартылай ыдырау кезеңі — ln0.5/ln(α+β)\ln 0.5 / \ln(\alpha+\beta). Криптовалюта IGARCH-қа жақын режимде орналасады (α+β0.99\alpha+\beta\approx 0.99): өте тұрақты, орташаға баяу қайтарылатын, ұзақ мерзімді-дисперсия бағасы нәзік.
  • Максималды ықтималдық әдісімен бағалаңыз. Гаусс лог-ықтималдығы — бір қадамдық тығыздықтардың қосындысы; оны arch_model(r*100, vol="Garch", p=1, q=1) арқылы сай етіңіз. ×100 масштабтауды есте сақтап, әрбір шығысты бірізді түрде кері масштабтаңыз.
  • Болжамдар (α+β)h1(\alpha+\beta)^{h-1} жылдамдығымен ұзақ мерзімді дисперсияға қарай геометриялық түрде орташаға оралады. Ұстау-горизонтының волатильділігін алу үшін күндік дисперсия болжамдарын жинақтаңыз — қарапайым H\sqrt{H} ережесін емес.
  • Квадратталған стандартталған қалдықтардағы Ljung-Box және ARCH-LM тестімен тексеріңіз. Осыларды өтеу кластерленудің моделденіп жойылғанын растайды; қалатын қалдық ауыр құйрықтар 2-бөлімнің себебі.
  • Оны волатильділікке бағытталған көлемге (wt=σtarget/σ^tw_t = \sigma_{\text{target}}/\hat\sigma_t, шектелген) және волатильділікке масштабталған стоптарға (kσ^t(H)k\cdot\hat\sigma_t^{(H)}) қолданыңыз. Бір болжам екеуін де тамақтандырады, сондықтан жоғары волатильділік режимдері бір мезгілде кіші көлем және кең стоптарды алады.
  • Маңызды кемшіліктер: кірістіліктерді масштабтау, сай ету кезіндегі алдын ала қарау (тек өткен деректерде сай етіп, әрдайым walk-forward жасаңыз), болжам уақыты, реттерді асыра үйрету, және дисперсия болжамын бағыт болжамымен ешқашан шатастырмау.

Сілтемелер:

  • Engle, R. F. (1982). Autoregressive Conditional Heteroscedasticity with Estimates of the Variance of United Kingdom Inflation. Econometrica, 50(4), 987-1007. DOI
  • Bollerslev, T. (1986). Generalized Autoregressive Conditional Heteroskedasticity. Journal of Econometrics, 31(3), 307-327. DOI
  • Mandelbrot, B. (1963). The Variation of Certain Speculative Prices. The Journal of Business, 36(4), 394-419. DOI
  • Nelson, D. B. (1991). Conditional Heteroskedasticity in Asset Returns: A New Approach. Econometrica, 59(2), 347-370. DOI
  • Katsiampa, P. (2017). Volatility estimation for Bitcoin: A comparison of GARCH models. Economics Letters, 158, 3-6. DOI
  • Chu, J., Chan, S., Nadarajah, S., & Osterrieder, J. (2017). GARCH Modelling of Cryptocurrencies. Journal of Risk and Financial Management, 10(4), 17. DOI
  • Sheppard, K. (2023). arch: Autoregressive Conditional Heteroskedasticity (ARCH) and other tools for financial econometrics in Python. GitHub.
blog.disclaimer

MarketMaker.cc Team

Сандық зерттеулер және стратегия

Telegram-да талқылау
Newsletter

Нарықтан бір қадам алда болыңыз

AI сауда талдаулары, нарық аналитикасы және платформа жаңалықтары үшін біздің ақпараттық бюллетеньге жазылыңыз.

Біз сіздің жекелігіңізді құрметтейміз. Кез келген уақытта жазылымнан шығуға болады.