← Maqolalarga qaytish
July 10, 2026
5 daqiqa o'qish

GARCH(1,1): Kripto o'zgaruvchanligini bashorat qilish

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

BTC kunlik daromadlari grafigini oching va tasodifiy sayr haqidagi darsliklar sizni hech qachon tayyorlamagan bir narsani sezasiz: tinchlik va tartibsizlik klasterlar bo'lib keladi. 6% pasaygan kun kamdan-kam yolg'iz bo'ladi. U 4-8% tebranishlar bilan bir haftaning ichida joylashadi, keyin bozor nafas oladi va navbatdagi bo'rondan oldin uyquchan 1% seansli bir oy davomida siljiydi. Daromadlarning o'zi deyarli bashorat qilib bo'lmaydigandek ko'rinadi — ertaga o'sadimi yoki tushadimi, buni ishonchli aytolmaysiz — lekin ularning kattaligi chuqur bashoratlanadigan. Bugungi notinchlik ertangi haqida ko'p narsani aytadi.

Treyder murojaat qiladigan deyarli har bir risk vositasi bu haqiqat emas deb sokin taxmin qiladi. Black-Scholes optsionni yagona doimiy σ\sigma bilan baholaydi. Statik Value-at-Risk raqami bitta o'zgaruvchanlik bahosini normal kvantilga ko'paytiradi. Qat'iy 3% stop-loss o'lik yon harakatli seshanbani va FOMC nashri yoki yirik birjaning de-peg atrofidagi soatlarni bir xil riskni ko'targandek muomala qiladi. Bularning har biri aynan bir xil tarzda buziladi: u vaqt bo'yicha o'zgaruvchan miqdorni doimiyga qisqartiradi, keyin esa doimiy o'zgarib chiqqanda hayron qoladi.

Ushbu maqola kripto uchun o'zgaruvchanlikni modellashtirish bo'yicha to'rt qismli seriyaning 1-qismi. U poydevorni quradi: GARCH(1,1) modeli, u nima uchun kripto daromadlariga shunchalik yaxshi mos keladi, uni arch kutubxonasi bilan maksimal ehtimollik orqali qanday halol baholash va shartli-dispersiya bashoratini darhol foydali ikkita narsaga — bozor bilan birga nafas oladigan pozitsiya hajmi va stop kengligiga qanday aylantirish. 2-qism asimmetriya va og'ir dumlarni qo'shadi, 3-qism ko'p o'lchovli bo'ladi, 4-qism esa to'liq o'zgaruvchanlikka yo'naltirilgan backtestni yig'adi. Bu yerda ilovani ataylab sodda tutamiz; halol, walk-forward bilan tekshirilgan strategiya 4-qismning mavzusi.

Kripto daromadlarining stilizatsiyalangan faktlari

Biror narsani modellashtirishdan oldin, nimani takrorlashga urinayotganimizni aniq belgilash foydali. Empirik moliyaviy daromadlar — aktsiyalar, FX va ayniqsa kripto — o'nlab yillar davomida hujjatlashtirilgan kuchli statistik muntazamliklarning kichik to'plamini baham ko'radi. Ular odatda stilizatsiyalangan faktlar deb ataladi va ulardan uchtasi keyingi hamma narsani boshqaradi.

1. O'zgaruvchanlik klasterlanishi. Katta harakatlar odatda katta harakatlardan (istalgan belgidagi) keyin, kichik harakatlar esa kichik harakatlardan keyin keladi. Mandelbrot buni 1963 yilda paxta narxlarida sezgan. Rasmiy jihatdan, rtr_t daromadlari deyarli ketma-ket korrelyatsiyalanmagan bo'lsa-da, kvadratlangan daromadlar rt2r_t^2 (amalga oshgan dispersiya uchun proksi) kuchli, sekin so'nadigan musbat avtokorrelyatsiyani ko'rsatadi.

2. Semiz dumlar (leptokurtoz). Daromadlarning shartsiz taqsimoti chekkalarida Gauss taqsimotidan ancha ko'proq massaga ega. Normal taqsimotning kurtozi 3 bo'lgan joyda, BTC kunlik log-daromadlari muntazam ravishda 8-10 dan yuqori turadi, yuqori chastotali kripto daromadlari esa yomonroq bo'lishi mumkin. Normal model taxminan bir million yilda bir marta sodir bo'lishi kerak deyilgan olti-sigma kunlari, o'n yilda bir necha marta paydo bo'ladi.

3. Daromadlarda chiziqli avtokorrelyatsiya yo'q, kvadratlangan daromadlarda kuchli avtokorrelyatsiya. Bu haqiqiy o'zgaruvchanlik jarayonini oddiy trenddan ajratadigan barmoq izi. Agar siz rtr_t ni uning o'z lag'lariga regressiya qilsangiz, foydalanish mumkin bo'lgan hech narsa olmaysiz. Agar siz rt2r_t^2 ni uning lag'lariga regressiya qilsangiz, aniq, davomli signalni topasiz. Bu aynan dispersiya modeli qamrab olishi kerak bo'lgan tuzilma — va aynan doimiy-σ\sigma modeli tashlab yuboradigan narsa.

Uchchalasini ham bir necha qatorda ko'zdan kechirishimiz mumkin. Bu yerda hech narsa maxsus ma'lumot manbasini talab qilmaydi; produkshnda ccxt dan foydalaning, lekin takrorlanadigan snippet uchun yfinance yetarli.

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]))

Odatiy o'qish (illyustrativ — sizning oynangiz farq qiladi): ortiqcha kurtoz 3 dan ancha yuqori, xom daromadlardagi Ljung-Box p-qiymati "avtokorrelyatsiya yo'q" ni rad eta olmaydi, kvadratlangan daromadlardagi p-qiymati esa amalda nolga teng. O'sha oxirgi qarama-qarshilik butun o'yin. Kunlik gorizontda daromadlar belgisida savdo qiladigan hech narsa yo'q, lekin ularning dispersiyasida juda ko'p tuzilma bor va o'sha tuzilma bashoratlanadi.

Kriptoning 24/7 tabiati haqida eslatma. Aktsiyalardan farqli o'laroq, tunlik uzilish va dam olish kunlarining yopilishi yo'q, shuning uchun "kun" toza 24 soatlik bar bo'ladi va yillikka aylantirish koeffitsienti 252\sqrt{252} emas, balki 365\sqrt{365}. O'zgaruvchanlik klasterlanishi kun ichidagi masshtablarda ham saqlanib qoladi, bu esa siz GARCH ni soatlik barlarda ishlatsangiz muhim — moliyalashtirish stavkasi o'zgarishlari va likvidatsiya kaskadlari kunlik model silliqlashtiradigan keskin, klasterlangan dispersiya portlashlarini kiritadi.

ARCH dan GARCH ga

Muammo endi keskin qo'yildi: doimiy bo'lmagan, balki yaqin o'tmishga bog'liq bo'lgan dispersiyani modellashtiring. Buni to'g'ri bajargan birinchi model Engle'ning ARCH (Autoregressive Conditional Heteroskedasticity, 1982) modeli bo'lib, u 2003 yilda unga Nobel mukofotini olib berdi.

Daromadni shartli o'rtacha ortiga zarba qo'shilishi sifatida yozing:

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)

Bu yerda σt2\sigma_t^2shartli dispersiya — t1t-1 vaqtigacha ma'lum bo'lgan hamma narsa berilgan holda rtr_t ning dispersiyasi — va ztz_t standartlashtirilgan innovatsiya (eng oddiy holatda standart normal). "Shartli" so'zi butun ishni bajaradi: shartsiz ravishda dispersiya doimiy bo'lishi mumkin, lekin kechagi kunga bog'liq holda u harakatlanadi.

Engle'ning ARCH(qq) modeli bugungi dispersiyani oxirgi qq ta kvadratlangan zarbaning tortilgan yig'indisiga aylantiradi:

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

dispersiyani musbat saqlash uchun ω>0\omega > 0 va αi0\alpha_i \ge 0 bilan. Bu klasterlanishni bevosita qamrab oladi: katta zarba εt12\varepsilon_{t-1}^2 σt2\sigma_t^2 ni yuqoriga suradi, bu esa boshqa katta zarba imkoniyatini oshiradi, bu esa dispersiyani ko'tarilgan holatda ushlab turadi. Muammo empirik so'nishda. Haqiqiy bozorlardagi o'zgaruvchanlik davomiyligi ko'plab lag'larga cho'ziladi, shuning uchun uni moslashtirish uchun ARCH modeliga katta qq kerak — ko'pincha 8, 10 yoki undan ko'p — va bu overfittingga moyil bo'lgan uzun, beqaror αi\alpha_i vektorini baholashni anglatadi.

Bollerslev'ning 1986 yildagi tushunchasi barcha o'sha davomiylikni bitta parametr bilan yutadigan atamani qo'shish edi. GARCH(1,1) — Generalized ARCH — rekursiyasi:

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

Uch parametr, uch aniq talqin:

  • ω>0\omega > 0bazaviy daraja yoki pol. Dispersiyaning uzoq muddatli darajasini mahkamlaydigan doimiy. Dispersiya hech qachon ω\omega qo'llab-quvvatlaydigan darajadan pastga tushmaydi.
  • α0\alpha \ge 0 — yangilikka reaktsiya. Dispersiya kechagi ajablanish εt12\varepsilon_{t-1}^2 ga qanchalik shiddat bilan javob beradi. Katta α\alpha shartli dispersiya sakrovchan va zarbaga sezgir ekanligini anglatadi.
  • β0\beta \ge 0davomiylik yoki xotira. Kechagi dispersiyaning qanchasi bugunga o'tadi. Katta β\beta o'zgaruvchanlik silliq va sekin so'nishini anglatadi — tinchlik tinch qoladi, bo'ronlar bo'ronli qoladi.

Nafislik rekursiyada. σt12\sigma_{t-1}^2 ning o'zi βσt22\beta \sigma_{t-2}^2 atamasini o'z ichiga olganligi sababli, orqaga qarab kengaytirish GARCH(1,1) o'tmishdagi kvadratlangan zarbalarga geometrik tarzda so'nadigan αβk\alpha \beta^{k} og'irliklari bilan ARCH(\infty) ekanligini ko'rsatadi:

σ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

Shunday qilib, yagona β\beta sizga o'tmishdagi zarbalarning cheksiz, eksponensial tarzda tortilgan xotirasini beradi. Aynan shu sababli oddiy GARCH(1,1) — uch parametr — muntazam ravishda o'nta parametrli ARCH modellaridan ustun keladi va nima uchun u amaliy o'zgaruvchanlikni modellashtirishning asosiy vositasiga aylandi. Aslida, u RiskMetrics EWMA dispersiya baholovchisining yaqin qarindoshi bo'lib, u ω=0\omega = 0, α+β=1\alpha + \beta = 1, β\beta esa 0.94 da qat'iy belgilangan maxsus holat. GARCH uni α\alpha, β\beta va haqiqiy o'rtachaga qaytish darajasini ma'lumotlar tanlashiga ruxsat berish orqali umumlashtiradi.

Xususiyatlar: Statsionarlik, uzoq muddatli dispersiya va yarim yemirilish davri

GARCH(1,1) rekursiyasining bir necha xususiyatlarini keltirib chiqarish o'rinli, chunki ular sizga modelni ko'r-ko'rona moslashtirishdan ko'ra, u haqida fikr yuritishga imkon beradigan narsalar.

Shartsiz (uzoq muddatli) dispersiya. Jarayon kovariatsion-statsionar deb faraz qiling, shunda shartsiz dispersiya σˉ2=E[εt2]=E[σt2]\bar{\sigma}^2 = \mathbb{E}[\varepsilon_t^2] = \mathbb{E}[\sigma_t^2] mavjud va vaqt bo'yicha doimiy. Rekursiyaning ikkala tomonining matematik kutilmasini oling. E[εt12]=E[σt12]=σˉ2\mathbb{E}[\varepsilon_{t-1}^2] = \mathbb{E}[\sigma_{t-1}^2] = \bar{\sigma}^2 bo'lganligi sababli:

σˉ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}

Bu o'zgaruvchanlik o'rtachaga qaytadigan daraja. U faqat α+β<1\alpha + \beta < 1 bo'lganda mavjud — va faqat musbat.

Statsionarlik sharti. O'sha bir tengsizlik,

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

GARCH(1,1) uchun kovariatsion-statsionarlik sharti. α+β\alpha + \beta miqdori dispersiya jarayonining davomiyligi: bu dispersiya zarbasi σˉ2\bar{\sigma}^2 ga qanday so'nishini boshqaradigan AR(1) koeffitsienti. Agar α+β1\alpha + \beta \ge 1 bo'lsa, shartsiz dispersiya cheksiz (yoki aniqlanmagan) bo'ladi va zarbalar hech qachon to'liq o'lmaydi.

Biz o'rtachaga qaytishni aniq ko'rishimiz mumkin. Dispersiya og'ishini σt2σˉ2\sigma_t^2 - \bar{\sigma}^2 deb aniqlang. Rekursiya ustidagi biroz algebra (ω=σˉ2(1αβ)\omega = \bar{\sigma}^2(1 - \alpha - \beta) ni almashtirish) kutilma bo'yicha beradi:

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)

Joriy dispersiya va uning uzoq muddatli darajasi orasidagi bo'shliq har qadamda (α+β)(\alpha + \beta) koeffitsientiga kamayadi. Bu aynan biz keyinroq foydalanadigan ko'p qadamli bashorat.

O'zgaruvchanlikning yarim yemirilish davri. Dispersiya zarbasining normaga yarim yo'l so'nishi qancha vaqt oladi? (α+β)h=1/2(\alpha+\beta)^{h} = 1/2 ni qo'ying va yeching:

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

α+β=0.95\alpha + \beta = 0.95 uchun yarim yemirilish davri taxminan 13.5 kun; 0.980.98 uchun taxminan 34 kun; 0.990.99 uchun taxminan 69 kun. Bu yagona raqam ko'pincha xom parametrlarga qaraganda intuitivroq — u sizga o'zgaruvchanlik qanchalik yopishqoq ekanligini barlaringiz birliklarida aytadi.

Kriptodagi IGARCH ga yaqin muammo. Mana kriptoga xos nozik jihat. GARCH(1,1) ni BTC yoki ETH daromadlariga moslashtirganingizda, deyarli har doim α+β\alpha + \beta 1 ga juda yaqin ekanligini topasiz — 0.98, 0.99, ba'zan 0.995 qiymatlar odatiy. Bu IGARCH (Integrated GARCH) ga yaqin rejim. Uning haqiqiy oqibatlari bor:

  • Yarim yemirilish davri ulkanlashadi (haftalar-oylar), shuning uchun model o'zgaruvchanlikni juda davomli va deyarli o'rtachaga qaytmaydigan deb muomala qiladi.
  • σˉ2=ω/(1αβ)\bar{\sigma}^2 = \omega/(1-\alpha-\beta) bahosi o'ta sezgir bo'lib qoladi: α+β\alpha+\beta ning 0.99 dan 0.995 gacha kichik o'zgarishi nazarda tutilgan uzoq muddatli dispersiyani ikki barobar oshiradi. Bu rejimda uzoq muddatli o'zgaruvchanlikning nuqta bahosiga ishonch oralig'isiz hech qachon ishonmang.
  • Ko'p qadamli bashoratlar shunchalik sekin o'rtachaga qaytadiki, bir necha haftadan kam amaliy gorizontlar uchun GARCH deyarli dispersiyadagi tasodifiy sayr kabi (bu EWMA taxmin qiladigan narsa) o'zini tutadi.

Integratsiyaga yaqinlik haqiqiymi yoki tuzilmaviy uzilishlarning artefaktimi (o'zgaruvchanlik darajasining doimiy siljishi model tomonidan bitta uzun davomli epizod sifatida o'qilishi) — bu haqiqiy bahs. Bu bir marta butun tarixga moslashtirish o'rniga aylanuvchi oynalarda qayta moslashtirishning yana bir sababi bo'lib, biz bu nuqtaga tuzoqlarda qaytamiz. Rejim tuzilmasi ayniqsa aniq almashinuvchi model bilan yaxshiroq boshqariladi — yashirin Markov modellari bilan rejimni aniqlash ga qarang, u GARCH ga o'rinbosar emas, balki uni to'ldiruvchi.

Maksimal ehtimollik bilan baholash

GARCH parametrlari maksimal ehtimollik bilan baholanadi. Mantiq to'g'ridan-to'g'ri: θ=(μ,ω,α,β)\theta = (\mu, \omega, \alpha, \beta) berilgan holda, rekursiya shartli dispersiyalarning to'liq yo'lini σt2(θ)\sigma_t^2(\theta) hosil qiladi va innovatsiyalar ztz_t uchun faraz qilingan taqsimot ostida kuzatilgan daromadlar qanchalik ehtimolli ekanligini yozib olishimiz mumkin. Keyin biz θ\theta ni o'sha ehtimollikni maksimallashtirish uchun tanlaymiz.

Gauss innovatsiyalarini ztN(0,1)z_t \sim \mathcal{N}(0,1) deb faraz qiling, shunda rtFt1N(μ,σt2)r_t \mid \mathcal{F}_{t-1} \sim \mathcal{N}(\mu, \sigma_t^2). Bitta kuzatuvning shartli zichligi

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).

Model shartli tarzda yozilganligi sababli, birgalikdagi ehtimollik bir qadam oldinga zichliklar ko'paytmasiga bo'linadi va log-ehtimollik oddiy yig'indi:

(θ)=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].

Sezish kerak bo'lgan ikkita tuzilmaviy fakt. Birinchidan, σt2\sigma_t^2 ham jarima (lnσt2\ln \sigma_t^2 — model yuqori dispersiyani da'vo qilgani uchun jazolanadi), ham standartlashtirilgan qoldiqda ((rtμ)2/σt2(r_t-\mu)^2/\sigma_t^2 — model ajablangani uchun jazolanadi) paydo bo'ladi. Optimum ikkalasini muvozanatlashtiradi, bu esa dispersiyaning kuzatishini ta'minlaydi. Ikkinchidan, rekursiyaga urug' σ12\sigma_1^2 kerak; odatiy tanlov daromadlarning namuna dispersiyasi va bir necha ming kuzatuv bilan urug' deyarli ahamiyatga ega emas.

Maksimallashtiruvchi uchun yopiq shakl yo'q, shuning uchun biz sonli optimallashtiramiz (arch analitik yoki sonli gradientli kvazi-Nyuton usulini ishlatadi). Ehtimollik yuzasi GARCH(1,1) uchun odatda yaxshi tutadi, lekin amalda ikkita narsa tishlaydi: musbatlik cheklovlari (ω,α,β0\omega,\alpha,\beta \ge 0) va α+β1\alpha+\beta \to 1 bo'lganda chegaraga yaqin xatti-harakat, u yerda optimizatorning sekin sudralishi mumkin. Ikkalasi ham yaxshi kutubxona tomonidan siz uchun boshqariladi — va siz undan foydalanishingiz kerak. GARCH MLE ni qo'lda yozish yaxshi o'quv mashqi, lekin yomon produkshn tanlovi.

arch kutubxonasi

Kevin Sheppard'ning arch paketi Python'da standart vosita. Butun moslash to'rt qatordan iborat.

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())

Argument nomlari haqida bir og'iz so'z, chunki ular tez-tez chalkashlik manbai. arch da p — lagli dispersiyalar soni (β\beta atamalari, GARCH tartibi) va q — lagli kvadratlangan qoldiqlar soni (α\alpha atamalari, ARCH tartibi). Shunday qilib, p=1, q=1 biz keltirib chiqargan GARCH(1,1). (Bollerslev'ning asl belgilashi uni ARCH tartibi uchun pp bilan GARCH(p,qp,q) deb yozadi — ikki konventsiya transponirlangan. Xotirangizga emas, kutubxonaning o'z hujjatlariga ishoning.)

Xulosani o'qib, koeffitsientlar jadvali taxminan bunday ko'rinadi (BTC kunlik daromadlari uchun illyustrativ qiymatlar, haqiqiy tajriba emas):

                     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
==========================================================

Uni qanday o'qish kerak:

  • alpha[1] + beta[1] = 0.0912 + 0.8994 = 0.9906. Davomiylik 1 dan bir oz past — IGARCH ga yaqin rejim, aynan ogohlantirilganidek. Yarim yemirilish davri ln(0.5)/ln(0.9906)73\approx \ln(0.5)/\ln(0.9906) \approx 73 kun.
  • omega = 0.4821, shuning uchun uzoq muddatli dispersiya 0.4821/(10.9906)=51.30.4821 / (1 - 0.9906) = 51.3 foiz-kvadrat birliklarida, ya'ni uzoq muddatli kunlik o'zgaruvchanlik 51.37.2%\sqrt{51.3} \approx 7.2\%, yoki taxminan 7.2%×365138%7.2\%\times\sqrt{365}\approx 138\% yillik. Bu ishonarli BTC raqami.
  • Ham alpha, ham beta kuchli ahamiyatli. alpha ning beta ga nisbatan kichik bo'lishi odatiy: kripto dispersiyasi asosan davomiylik (xotira) bo'lib, yangi zarbalarga o'rtacha, lekin haqiqiy reaktsiya bilan.

×100 masshtablash tuzog'i

Bu arch dan bema'nilik olishning eng keng tarqalgan yo'li, shuning uchun u o'z kichik bo'limini oqlaydi. Optimizator ko'rgan raqamlar O(1)O(1) dan O(100)O(100) gacha bo'lganda eng yaxshi ishlaydi. Kunlik log-daromadlar O(0.01)O(0.01), shuning uchun ularning kvadratlari O(0.0001)O(0.0001) va ω\omega taxminan 10610^{-6} atrofida bo'lishi kerak — sonli gradientlar aniqligini yo'qotadigan va moslash sokin ravishda yaqinlasha olmaydigan yoki keraksiz standart xatolarni qaytaradigan diapazonda.

Yechim — 100 ga masshtablangan daromadlarga (ya'ni foizda) moslash, yuqoridagidek. Agar unutsangiz, arch hatto DataScaleWarning chiqaradi. Keyin modeldan o'qigan hamma narsa foiz yoki foiz-kvadrat birliklarida bo'ladi va siz uni izchil masshtabsizlantirishingiz kerak:

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%}")

Masshtablangan va masshtablanmagan miqdorlarni aralashtirish — masalan, o'nlik kutilgan pozitsiya hajmi formulasiga foiz o'zgaruvchanligini berish — aynan 100x xatolarni keltirib chiqaradi, ularni sezish oson emas, chunki kod muammosiz ishlaydi. Konventsiya tanlang (men moslash tashqarisida hamma narsani o'nlik saqlayman va faqat arch chegarasida masshtablayman) va uni hech qachon buzmang.

Shartli dispersiyani bashorat qilish

Moslashtirilgan model faqat bashorat qilsagina foydali. GARCH istalgan gorizontda toza, analitik bashoratlar beradi.

Bir qadam oldinga. TT vaqtida (namunaning oxiri) biz εT\varepsilon_T va σT2\sigma_T^2 ni bilamiz, shuning uchun keyingi dispersiya deterministik:

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

Kutilma kerak emas — o'ngdagi hamma narsa kuzatilgan.

Ko'p qadam oldinga. h2h \ge 2 uchun biz oraliq zarbalarni hali bilmaymiz, shuning uchun shartli kutilmalarni olamiz. ET[εT+k2]=ET[σT+k2]\mathbb{E}_T[\varepsilon_{T+k}^2] = \mathbb{E}_T[\sigma_{T+k}^2] (chunki E[z2]=1\mathbb{E}[z^2]=1) dan foydalanib, rekursiya bashorat qilingan dispersiyada oddiy AR(1) ga qisqaradi:

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

Buni bir qadamli bashoratdan takrorlash yopiq shaklni beradi, bu esa biz avval keltirib chiqargan o'rtachaga qaytish natijasining aniq yozilgani:

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}.

Buni diqqat bilan o'qing, chunki bu har bir GARCH bashoratining geometriyasi. Dispersiyaning muddat tuzilmasi bugungi shartli dispersiya σT+12\sigma_{T+1}^2 dan boshlanadi va uzoq muddatli daraja σˉ2\bar{\sigma}^2 ga geometrik tarzda so'nadi. Agar bugun o'rtachadan tinchroq bo'lsa, bashorat egri chizig'i σˉ2\bar\sigma^2 ga ko'tariladi; agar bugun inqiroz bo'lsa, u unga tushadi. O'sha so'nish tezligi butunlay (α+β)(\alpha+\beta) tomonidan belgilanadi — va α+β0.99\alpha+\beta \approx 0.99 bo'lgan IGARCH ga yaqin kripto rejimida so'nish shunchalik sekinki, bir necha haftadan kam gorizontlar uchun bashorat bugungi darajadan deyarli qimirlamaydi. Buni ichlashtirishga arziydi: qisqa ushlab turish davrlari uchun kripto GARCH bashorati asosan "ertaga bugungiga o'xshaydi, faqat juda sekin qaytadi".

Ushlab turish gorizontiga jamlash. Treyderlar kamdan-kam bitta kelajak kunining dispersiyasi haqida qayg'uradilar. Agar siz pozitsiyani HH kun ushlab tursangiz va daromadlar shartli ravishda korrelyatsiyalanmagan bo'lsa (boshdan olingan stilizatsiyalangan fakt), jami HH-kunlik daromadning dispersiyasi bir kunlik bashorat dispersiyalari yig'indisi:

σ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)}.

Bu siz aslida qarshi hajm belgilaydigan raqam — ushlab turish davringizdagi P&L o'zgaruvchanligi. E'tibor bering, bu qat'iy ravishda dispersiya doimiy bo'lsagina to'g'ri bo'lgan sodda HσT+1\sqrt{H}\,\sigma_{T+1} masshtablash emas. Bugungi dispersiya σˉ2\bar\sigma^2 dan yuqori bo'lsa, o'rtachaga qaytadigan bashorat haqiqiy HH-kunlik o'zgaruvchanlikni kvadrat-ildiz qoidasidan pastroq qiladi; bugun tinch bo'lsa, u yuqoriroq. Buni to'g'ri qilish muddat tuzilmasini hurmat qiladigan stop va uni hurmat qilmaydigan stop orasidagi farq.

Kodda:

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%}")

Uzoqroq gorizontlar uchun GARCH simulyatsiya bashoratlarini ham qo'llab-quvvatlaydi (method="simulation"), ular innovatsiya taqsimotini oldinga tarqatadi va sizga faqat uning dispersiyasini emas, balki to'liq bashorat zichligini beradi — bu innovatsiyalar Gauss bo'lmaganda foydali, 2-qismda Student-t va qiya taqsimotlarga o'tganimizda shunday bo'ladi. Yuqoridagi dispersiyada-chiziqli miqdorlar uchun analitik yo'l aniq va bepul.

Diagnostika: Model haqiqatan ham ishladimi?

Modelni moslashtirish uni tekshirish bilan bir xil emas. GARCH ning butun mohiyati shartli geteroskedastiklikni — o'zgaruvchanlik klasterlanishini — yutish, shunda qoladigan narsa (deyarli) i.i.d. bo'lishi. Shuning uchun to'g'ri tekshiruv standartlashtirilgan qoldiqlarga

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

qarash va so'rash: klasterlanish ketdimi? Agar model dispersiya dinamikasini qamrab olgan bo'lsa, z^t\hat z_t birlik dispersiyaga ega bo'lishi va, muhimi, ularning kvadratlari z^t2\hat z_t^2 qolgan avtokorrelyatsiyani ko'rsatmasligi kerak. Biz uch test o'tkazamiz.

1. Standartlashtirilgan qoldiqlarda Ljung-Box. z^t\hat z_t darajasida chiziqli avtokorrelyatsiya qolmaganligini tekshiradi (bu aslida dispersiya modelini emas, o'rtacha modelni sinaydi). Rad etmasligi kerak.

2. Kvadratlangan standartlashtirilgan qoldiqlarda Ljung-Box. Bu muhimi. Agar z^t2\hat z_t^2 hali ham ahamiyatli avtokorrelyatsiyaga ega bo'lsa, dispersiya modeli klasterlanishni olib tashlay olmadi — GARCH(1,1) qamrab olmagan tuzilma bor va sizga yuqoriroq tartib, asimmetrik variant yoki boshqa innovatsiya taqsimoti kerak bo'lishi mumkin. Rad etmasligi kerak.

3. ARCH-LM testi (Engle'ning Lagranj-multiplikatori testi). z^t2\hat z_t^2 ni uning o'z lag'lariga regressiya qiling va birgalikdagi ahamiyatlilikni sinang. Bu aslida 2-testning rasmiy versiyasi va bevosita "qolgan ARCH effekti bormi?" deb so'raydi. Ahamiyatsiz natija shartli geteroskedastiklik modellashtirib olib tashlanganini tasdiqlaydi.

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}")

Yaxshi natija qanday ko'rinadi: z^t2\hat z_t^2 dagi Ljung-Box p-qiymatlari nolga yaqindan (xom kvadratlangan daromadlarda) 0.05 dan bemalol yuqoriga sakraydi va ARCH-LM testi rad eta olmaydi. Bu sizning modelingiz ikkinchi moment ustida o'z ishini bajarganligining dalili.

Nomukammal natija qanday ko'rinadi — va oddiy Gauss GARCH(1,1) bilan kriptoda nimani kutish kerak — bu klasterlanish testlari o'tadi, lekin standartlashtirilgan-qoldiq kurtozi hali ham ko'tarilgan (aytaylik, 0 emas, 4-6). GARCH klasterlanishni olib tashlaydi, lekin bitta semiz-dumli shartsiz taqsimot qoladi, chunki Gauss innovatsiyalari dumlarni takrorlay olmaydi. Bu qoldiq semiz-dumlilik bu yerda tuzatiladigan xato emas; u 2-qism, asimmetrik GARCH va kriptodagi leverage effekti uchun motivatsiya, u yerda Student-t va qiya-t innovatsiyalari hamda GJR/EGARCH asimmetriya atamasi aynan shuni hal qiladi.

Ilova: O'zgaruvchanlikka masshtablangan hajmlash va stoplar

Endi bizda ertangi (va keyingi HH kunning) o'zgaruvchanligining bashorati bor. Biz u bilan nima qilamiz? Ikki eng oddiy, eng yuqori qiymatli foydalanish — pozitsiya hajmlash va stop joylashtirish. Ikkalasini ham bu yerda ataylab asosiy tutamiz — barcha amaliy mexanizmi bilan to'liq o'zgaruvchanlikka yo'naltirilgan strategiya 4-qism.

O'zgaruvchanlikka yo'naltirilgan pozitsiya hajmlash

G'oya — notsionali doimiy bo'lgan pozitsiyani emas, balki risk hissasi vaqt bo'yicha taxminan doimiy bo'lgan pozitsiyani ushlab turish. Agar siz doim bir xil dollarli hajm joylashtirsangiz, sizning riskingiz yuqori-o'zgaruvchanlik rejimlarida shishadi va tinch rejimlarda qisqaradi — siz xohlagan narsaning aksi. O'zgaruvchanlikka yo'naltirish buni teskari qiladi: P&L ning qat'iy maqsadli o'zgaruvchanligiga intiling va bashorat hajmni diktatsiya qilsin.

Maqsadli yillik o'zgaruvchanlik σtarget\sigma_{\text{target}} (aytaylik, 20%) va bashorat qilingan yillik o'zgaruvchanlik σ^t\hat\sigma_t uchun pozitsiya og'irligi

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

Bashorat o'zgaruvchanligi yuqori bo'lganda, siz pastga masshtablaysiz; u past bo'lganda, siz yuqoriga masshtablaysiz. Bu butun mexanizm. σ^t\hat\sigma_t bashorat bo'lgani sababli — t+1t+1 dagi daromad amalga oshishidan oldin tt da ma'lum — vaqtni belgilashda intizomli bo'lsangiz, oldinga qarash yo'q (bu haqda tuzoqlarda ko'proq).

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")

Bu to'g'ri kapital-taqsimlash qoidalarining birinchi qarindoshi. O'zgaruvchanlikka yo'naltirish "risk o'zgaruvchanlik bilan qanchalik masshtablanishi kerak" ga javob beradi, Kelly mezoni esa "risk ustunlik bilan qanchalik masshtablanishi kerak" ga javob beradi — va ikkalasi to'liq hajmlash stekida birga ko'payadi: hajm \propto ustunlik / dispersiya. E'tibor bering, Kelly'ning dispersiya atamasi aynan siz hozirgina hisoblagan GARCH bashorati, aynan shu sababli jonli o'zgaruvchanlik modeli Kelly hajmlashini statik tarixiy bahodan sezilarli darajada o'tkirlashtiradi. Agar sizning ustunlik bahoyingizning o'zi miqdorlangan noaniqlikni ko'tarsa, konformal bashorat hajmni mos ravishda kengaytirish yoki qisqartirish uchun taqsimotdan mustaqil usul beradi va u o'zgaruvchanlikka yo'naltirish bilan toza birlashadi.

w_max cheklovi ixtiyoriy emas. IGARCH ga yaqin rejimda tinch davr bashorat o'zgaruvchanligini ancha pastga surishi mumkin va σtarget/σ^t\sigma_{\text{target}}/\hat\sigma_t qog'ozda yaxshi, lekin tinchlik buzilganda halokatli bo'lgan leverage'ni talab qiladi — bu, o'zgaruvchanlik klasterlanishiga ko'ra, oxir-oqibat, ko'pincha keskin sodir bo'ladi. Leverage'ni cheklash sizning bashoratingiz kafolat emas, shartli o'rtacha ekanligini va noto'g'ri bo'lish oqibati asimmetrik ekanligini qo'pol-lekin-samarali tan olish. O'sha asimmetriya — portlab ketgan hisob simmetrik yutuq bilan tiklanmaydi — aynan sizni faqat-dispersiya qoidasi taklif qilganidan tizimli ravishda ehtiyotkorroq qilishi kerak bo'lgan zarar-foyda asimmetriyasi.

O'zgaruvchanlikka masshtablangan stoplar

Qat'iy-foizli stop qat'iy pozitsiya hajmi bilan bir xil kasallikka ega: 3% stop tinch bozorda o'ta sezgir tirgak va shiddatli bozorda yaxlitlash xatosi. U yuqori-o'zgaruvchanlik rejimlarida oddiy shovqin bilan yaxshi pozitsiyalardan chiqarib yuboradi va o'tishlar davomida juda ko'p narsani qaytaradi. Yechim — stop masofasini bashorat o'zgaruvchanligi birliklarida belgilash.

stop distancet=kσ^t(H)\text{stop distance}_t = k \cdot \hat\sigma_t^{(H)}

bu yerda σ^t(H)\hat\sigma_t^{(H)} — sizning kutilgan ushlab turish gorizontingiz HH bo'yicha bashorat o'zgaruvchanligi (bashorat bo'limidagi jamlangan miqdor) va kk — ko'paytma — odatda 1.5 dan 3 gacha — stop normal tebranishdan tashqarida, lekin haqiqiy noqulay harakat ichida turishi uchun tanlanadi.

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)} tekis tarixiy raqam o'rniga o'rtachaga qaytadigan muddat-tuzilma bashoratidan foydalanganligi sababli, stop notinch rejimlarga kirishda avtomatik ravishda kengayadi va o'zgaruvchanlik pasayganda torayadi — muddat tuzilmasi moslashishni siz uchun bajaradi. Bu ham hajmni, ham stopni ta'minlaydigan bir xil bashorat, bu esa xususiyat: yuqori-o'zgaruvchanlik rejimida siz bir vaqtning o'zida kamroq ushlaysiz va pozitsiyaga ko'proq joy berasiz, ikki effekt esa sezilarli darajada pastroq dum riskiga qo'shiladi. Hajmlash va stoplar bitta o'zgaruvchanlik ko'rinishining ikki proeksiyasi, ikki mustaqil tugma emas.

Biz 1-qismda ilovani shu qadar olib boramiz. Haqiqiy strategiya doimiy qayta muvozanatlashdan kelib chiqadigan tranzaktsiya xarajatlarini, bashorat qachon hisoblanishi va savdo qachon joylashtirilishi vaqtini, aylanma nazoratini va — eng muhimi — halol namunadan tashqari baholashni boshqarishi kerak. Bularning barchasi 4-qism: o'zgaruvchanlikka yo'naltirilgan GARCH strategiyasi, u yerda biz butun narsani quramiz va walk-forward sinovdan o'tkazamiz.

Tuzoqlar

GARCH ni moslash oson va o'zingizni aldashingiz oson. Nosozlik rejimlari izchil.

Daromad masshtablashi. Yuqorida yoritilgan, lekin bu birinchi raqamli xato, shuning uchun uni takrorlashga arziydi: arch ni daromadlar × 100 ga moslang va har bir chiqishni masshtabsizlantiring (dispersiyani 1002100^2 ga, o'zgaruvchanlikni 100100 ga). Bu yerdagi sokin 100x xatosi har bir keyingi hajmlash va stop hisobini zaharlaydi.

Moslashda oldinga qarash. Nozik qotil. Agar siz modelni butun tarixga moslasangiz va keyin o'sha bir tarix bo'yicha "bashoratlar" ni hisoblasangiz, har bir bashorat yashirin ravishda kelajakni ko'rgan — parametrlar bashorat sanasidan keyingi ma'lumotlardan foydalanib baholangan. Namuna ichidagi moslash ajoyib ko'rinadi va jonli natija unga umuman o'xshamaydi. Har bir backtest qilingan bashorat faqat o'sha paytda mavjud bo'lgan ma'lumotlarga moslashtirilgan modeldan kelishi kerak: kengayuvchi yoki aylanuvchi oynada qayta moslang, bir qadam bashorat qiling, oldinga aylantiring. Bu muhokama qilib bo'lmaydigan va u butunlay walk-forward optimallashtirish mavzusi. Namuna ichidagi GARCH va to'g'ri walk-forward'i orasidagi bo'shliq demo va jonli bozorlar bilan aloqada omon qoladigan tizim orasidagi bo'shliq — shuningdek backtest-jonli parallellik ga qarang.

Bashorat vaqtini belgilash. Bog'liq, lekin farqli. t+1t+1 kun uchun bashorat tt kunning yopilishida (yoki barlaringiz qachon yopilsa) mavjud bo'lgan ma'lumotdan hisoblanishi kerak va pozitsiya siz aslida ololadigan narxda bajarilishi kerak. t+1t+1 kunning yopilishidan foydalanib bashoratni hisoblash va keyin t+1t+1 kunning ochilishida "savdo qilish" har bir natijani sokin ravishda shishiradigan oldinga qarash.

Yuqori tartiblarni overfitting. GARCH(1,1) deyarli har doim yetarli. Namuna ichidagi log-ehtimollikni bir oz oshirgani uchun GARCH(2,2) yoki GARCH(3,1) ni moslash vasvasasi odatda shovqin-moslash; qo'shimcha parametrlar kamdan-kam namunadan tashqari bashoratlarni yaxshilaydi va ko'pincha optimizatorni chegaraga yaqin beqaror qiladi. Kam parametrli modelni afzal ko'ring va agar tartiblarni solishtirishingiz kerak bo'lsa, ularni namuna ichidagi AIC bo'yicha emas, balki walk-forward bo'linmasida namunadan tashqari bashorat yo'qotishi bo'yicha solishtiring. Qoldiq diagnostikasi hali ham muammoni ko'rsatganda, yechim odatda yuqoriroq tartib emas, balki yaxshiroq innovatsiya taqsimoti yoki asimmetriya atamasi (2-qism).

Tuzilmaviy uzilishlar davomiylik sifatida o'qildi. Ta'kidlanganidek, o'zgaruvchanlik darajasining doimiy siljishi (yangi bozor rejimi, bozor mikrostrukturasidagi o'zgarish) GARCH tomonidan soxta yuqori davomiylik sifatida yutilishi mumkin, α+β\alpha+\beta ni 1 ga suradi. Agar uzoq muddatli o'zgaruvchanlik bahoyingiz oynalar bo'ylab beqaror ko'rinsa, IGARCH ga yaqin nuqta bahosiga ishonish o'rniga uzilishga shubha qiling. Aylanuvchi qayta moslashlar va, o'rinli bo'lganda, aniq rejim modeli bundan himoya qiladi.

O'zgaruvchanlik bashoratlarini daromad bashoratlari sifatida muomala qilish. GARCH harakatlarning yo'nalishini emas, kattaligini bashorat qiladi. U sizga ertangi tebranish qanchalik katta bo'lishi mumkinligini aytadi, qaysi tomon ekanligini emas. Aynan shuning uchun uning tabiiy uyi signal generatsiyasi emas, balki risk boshqaruvi — hajmlash, stoplar, VaR. Yaxshi dispersiya bashoratini ustunlik bilan chalkashtirmang.

Bu keyin qayerga boradi

GARCH(1,1) — poydevor va u ataylab to'liq emas. Seriya uni uch yo'nalishda quradi:

  • Asimmetriya va og'ir dumlar — haqiqiy kripto o'zgaruvchanligi yuqori harakatlarga qaraganda pastga harakatlarga ko'proq javob beradi (leverage effekti) va Gauss innovatsiyalari dumlarni takrorlay olmaydi. GJR-GARCH, EGARCH va Student-t / qiya-t innovatsiyalari 2-qism.
  • Ko'p o'lchovli o'zgaruvchanlik — kripto aktivlar orasidagi korrelyatsiyalarning o'zi vaqt bo'yicha o'zgaruvchan va qulashlarda keskin oshadi. Butun kovariatsiya matritsasini dinamik modellashtirish 3-qism: DCC-GARCH, u kovariatsiya dinamik bo'lgach, bevosita Markowitz o'rtacha-dispersiya va CVaR ga asoslangan taqsimlash ga ulanadi.
  • To'liq strategiya — hajmlash, stoplar, xarajatlar, aylanma va halol walk-forward baholash 4-qism da birlashadi.

Va GARCH marginallari birgalikdagi riskni ta'minlaydigan joyda: bu yerdagi bir o'lchovli shartli-dispersiya modeli aynan portfel VaR/CVaR uchun GARCH-EVT-copula quvurining birinchi bosqichi. Aktivga-mos GARCH moslashidan standartlashtirilgan qoldiqlarga ega bo'lgach, siz ularni o'zgartirasiz va copula bilan birga yopishtirasiz — marginallar GARCH, bog'liqlik esa copula. O'sha qurilma, jumladan dum bog'liqligi va EVT dum ishlovi, birgalikdagi kripto risk uchun copula modellari da chuqur yoritilgan; bu maqola uning ostida turgan bir o'lchovli dvigatel.

Xulosa

  • Kripto daromadlari o'zgaruvchanlik klasterlanishi, semiz dumlar va daromad avtokorrelyatsiyasi yo'q, lekin kuchli kvadratlangan-daromad avtokorrelyatsiyasini namoyish etadi. Doimiy o'zgaruvchanlikni taxmin qiladigan har qanday vosita — yagona σ\sigma bilan Black-Scholes, statik VaR, qat'iy-foizli stoplar — bu faktlarga qarshi noto'g'ri belgilangan.
  • GARCH(1,1), σt2=ω+αεt12+βσt12\sigma_t^2 = \omega + \alpha\varepsilon_{t-1}^2 + \beta\sigma_{t-1}^2, vaqt bo'yicha o'zgaruvchan shartli dispersiyani uch parametr bilan modellaydi: bazaviy ω\omega, zarba reaktsiyasi α\alpha va davomiylik β\beta. Bu geometrik tarzda so'nadigan xotirali ARCH(\infty), aynan shuning uchun u yuqori-tartibli ARCH dan ustun keladi.
  • Statsionarlik α+β<1\alpha+\beta<1 ni talab qiladi; uzoq muddatli dispersiya ω/(1αβ)\omega/(1-\alpha-\beta), davomiylik α+β\alpha+\beta va o'zgaruvchanlikning yarim yemirilish davri ln0.5/ln(α+β)\ln 0.5 / \ln(\alpha+\beta). Kripto IGARCH ga yaqin rejimda (α+β0.99\alpha+\beta\approx 0.99) turadi: juda davomli, o'rtachaga sekin qaytadigan va mo'rt uzoq-muddatli-dispersiya bahosi bilan.
  • Maksimal ehtimollik bilan baholang. Gauss log-ehtimolligi bir qadamli zichliklar yig'indisi; uni arch_model(r*100, vol="Garch", p=1, q=1) bilan moslang. ×100 masshtablashni eslang va har bir chiqishni izchil masshtabsizlantiring.
  • Bashoratlar uzoq muddatli dispersiyaga (α+β)h1(\alpha+\beta)^{h-1} tezlikda geometrik tarzda o'rtachaga qaytadi. Kunlik dispersiya bashoratlarini ushlab turish-gorizonti o'zgaruvchanligini olish uchun jamlang — sodda H\sqrt{H} qoidasi emas.
  • Tekshiring kvadratlangan standartlashtirilgan qoldiqlarda Ljung-Box va ARCH-LM testi bilan. Bularni o'tish klasterlanish modellashtirib olib tashlanganini tasdiqlaydi; qoladigan qoldiq semiz dumlar 2-qismni asoslaydi.
  • Uni qo'llang o'zgaruvchanlikka yo'naltirilgan hajmlash (wt=σtarget/σ^tw_t = \sigma_{\text{target}}/\hat\sigma_t, cheklangan) va o'zgaruvchanlikka masshtablangan stoplarga (kσ^t(H)k\cdot\hat\sigma_t^{(H)}). Bitta bashorat ikkalasini boshqaradi, shuning uchun yuqori-o'zgaruvchanlik rejimlari bir vaqtning o'zida kichikroq hajm va kengroq stoplar oladi.
  • Muhim tuzoqlar: daromad masshtablashi, moslashda oldinga qarash (faqat o'tmish ma'lumotlarga moslang, doim walk-forward), bashorat vaqtini belgilash, ortiqcha-tartiblash va dispersiya bashoratini yo'nalish bashorati bilan hech qachon aralashtirmaslik.

Manbalar:

  • 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

Miqdoriy tadqiqotlar va strategiya

Telegramda muhokama qilish
Newsletter

Bozordan bir qadam oldinda bo'ling

Sun'iy intellekt savdo tahlillari, bozor tahlili va platforma yangiliklari uchun bizning xabarnomaga obuna bo'ling.

Biz sizning maxfiyligingizni hurmat qilamiz. Istalgan vaqtda obunadan chiqishingiz mumkin.