Assimetrik va Og'ir Dumli GARCH: EGARCH, GJR va Student-t
Ushbu seriyaning 1-qismida biz GARCH(1,1) modelini noldan qurdik: volatillik klasterlanishi intuitsiyasi, shartli dispersiya rekursiyasi, maksimal ehtimollik baholash, prognozlash va arch kutubxonasi yordamida standart qoldiq diagnostikasi. Agar buni o'qimagan bo'lsangiz, o'shandan boshlang — bu maqola siz oddiy GARCH(1,1) modelini allaqachon moslashtira va talqin qila olishingizni faraz qiladi va asoslarni qaytadan chiqarmaydi.
Oddiy GARCH(1,1) yaxshi bazaviy model, lekin yomon yakuniy javob. Uning ikkita tuzilmaviy kamchiligi bor — backtestda e'tiborsiz qoldirish arzon, lekin real kapital bilan e'tiborsiz qoldirish qimmatga tushadi. Birinchidan, u simmetrik: model kunga xuddi kundagidek reaksiya beradi, chunki shok dispersiya rekursiyasiga faqat kvadrati orqali kiradi, . Kvadratga ko'tarish ishorani yo'qotadi. Ikkinchidan, u Gauss innovatsiyalarini faraz qiladi: hatto GARCH volatillik klasterlanishini yutib olgandan keyin ham, BTC va ETH ning standartlashtirilgan qoldiqlari ko'zga ko'rinarli darajada og'ir dumli, va Gauss ehtimolligi dumni tizimli ravishda arzonlashtiradi. GARCH(1,1)-Normal 99% VaR 1% dan ancha ko'proq buziladi.
Ushbu maqola ikkala kamchilikni ham tuzatadi. Biz GJR-GARCH va EGARCH bilan assimetriya qo'shamiz, hamda Student- va Hansenning skewed- innovatsiyalari bilan og'ir dumlar qo'shamiz. So'ngra haqiqatan ham foyda keltiradigan ishni qilamiz: moslashtirilgan shartli taqsimotni bir qadamli Value-at-Risk va Expected Shortfall prognoziga aylantiramiz, va bu prognozni Kupiec va Christoffersen testlari bilan halol backtest qilamiz. Hech qachon risk-test qilinmagan volatillik modeli — bu bezakdan boshqa narsa emas.
Leverage Effekti va Nima Uchun Kripto Chalkashroq
Aksiyalar bozorida assimetriyaning nomi va tarixi bor. Leverage effekti (Black, 1976): kompaniya aksiyasi tushganda, uning qarz/kapital nisbati oshadi, kapital mexanik ravishda xavfliroq bo'lib qoladi, va volatillik oshadi. Yomon yangilik kelajakdagi volatillikni bir xil hajmdagi yaxshi yangilikdan ko'ra ko'proq oshiradi. Empirik jihatdan bu aksiyalar volatilligi adabiyotidagi eng barqaror stilizatsiyalangan faktlardan biri.
Kriptoda korporativ ma'noda na kapital, na balans hisobotidagi leverage mavjud, ammo leverage-effektga o'xshash assimetriya baribir ko'p hollarda ko'rinadi — bu buxgalteriya emas, majburiy deleveraging tomonidan boshqariladi. BTC keskin tushganda, ortiqcha garovga qo'yilgan kreditlar likvidatsiya qilinadi, perpetual-fyucherslardagi long pozitsiyalar majburan yopiladi, funding o'zgaradi, va kaskad volatillikni oziqlantiradi. Demak, mexanizm farq qiladi, lekin ishora ko'pincha aksiyalar bilan mos keladi: pastga harakatlar volatillikni ko'proq keskinlashtiradi.
Muhim ogohlantirish: kripto chalkashroq, va assimetriyani qonun emas, balki empirik savol sifatida ko'rish kerak. Keskin yuqoriga harakatlar — short squeeze'lar, leverage bilan qizigan melt-up, ETF tasdiqlanishi bo'shlig'i — real volatillikni ham keskinlashtirishi mumkin. Aktiv va tanlov oynasiga qarab, baholangan assimetriya kuchli, kuchsiz yoki ba'zan "noto'g'ri" ishorali bo'lishi mumkin. Ushbu maqola talab qiladigan intizom: assimetrik modelni moslashtiring, assimetriya parametri statistik jihatdan ahamiyatli va kutilgan yo'nalishda ekanligini tekshiring, va qo'shimcha parametrni faqat u o'z o'rnini oqlaganda saqlab qoling. Aksiyalar tarixini avtomatik ko'chirib olmang; buni tekshiring.
Modellashdan Oldin Assimetriyani Tekshirish
Yuqoridagi ta'kid "assimetriyani empirik deb qarash" edi — shuning uchun assimetrik modelni moslashtirishdan oldin, assimetriya umuman mavjudmi yoki yo'qmi, buni tekshiruvchi arzon rasmiy test o'tkazing. Engle-Ng ishora-noto'g'rilik testlari (1993) aynan shuni qiladi. Avval simmetrik GARCH(1,1) ni moslashtiring, uning kvadratlangan standartlashtirilgan qoldiqlarini oling, va ularni oldingi shokning ishorasi va hajmi ko'rsatkichlariga regressiya qiling:
bu yerda va . Mantiq: agar simmetrik model allaqachon hamma narsani qamrab olgan bo'lsa, kechagi shokning ishorasi va hajmi bugungi kvadratlangan qoldiqni bashorat qilmasligi kerak, ya'ni . Alohida -testlar sign-bias (), negative-size-bias () va positive-size-bias () testlari deb ataladi; barcha uchtasi bo'yicha birgalikdagi -test esa omnibus test hisoblanadi. Ahamiyatli yoki — manfiy shoklar simmetrik model tomonidan tizimli ravishda noto'g'ri baholanganini bildiradi — bu GJR yoki EGARCH yordam berishining belgisi.
import statsmodels.api as sm
def sign_bias_test(symmetric_res):
"""Engle-Ng sign-bias tests on a fitted symmetric GARCH result."""
z = symmetric_res.std_resid.dropna()
z2 = (z ** 2).values[1:]
eps_lag = z.values[:-1] # standardized shock proxy
neg = (eps_lag < 0).astype(float)
X = np.column_stack([
np.ones_like(eps_lag), # intercept
neg, # sign bias
neg * eps_lag, # negative size bias
(1 - neg) * eps_lag, # positive size bias
])
ols = sm.OLS(z2, X).fit()
names = ["const", "sign_bias", "neg_size_bias", "pos_size_bias"]
for nm, coef, t, p in zip(names, ols.params, ols.tvalues, ols.pvalues):
print(f"{nm:16s} coef={coef:+.4f} t={t:+.2f} p={p:.3f}")
print(f"Joint F p-value: {ols.f_pvalue:.4f}")
return ols
sign_bias_test(models["GARCH-N"])
Agar birgalikdagi -test ahamiyatsiz bo'lsa, sizda simmetrik qolish va ikkita parametrni tejash uchun empirik asos bor. Agar u ahamiyatli bo'lsa — BTC/ETH uchun keng tarqalgan natija — GJR/EGARCH ga o'ting, bilib turibsizki, siz haqiqiy xususiyatni modellamoqdasiz, shovqinni quvmayapsiz. Bu maqola talab qilgan empirik intizom: aksiyalar leverage tarixini avtomatik qabul qilmang, uni tekshiring.
GJR-GARCH: Chegara Hadi Orqali Assimetriya
Glosten-Jagannathan-Runkle modeli (1993) — ba'zan TGARCH yoki threshold GARCH deb ataladi — GARCH(1,1) ga kiritilishi mumkin bo'lgan eng kichik o'zgartirish bo'lib, yomon va yaxshi yangiliklarga turlicha ta'sir qilish imkonini beradi. 1-qismdagi simmetrik shartli-dispersiya rekursiyasini eslang:
GJR bitta chegara hadi qo'shadi: faqat manfiy shokdan keyin yoqiladigan qo'shimcha dispersiya dozasi.
bu yerda ko'rsatkich
Rekursiyani holatlar bo'yicha o'qing. Musbat shokdan keyin (), ko'rsatkich nolga teng va kvadratlangan shokning keyingi davr dispersiyasiga ta'siri shunchaki . Manfiy shokdan keyin, ko'rsatkich birga teng va ta'sir ga teng. Parametr — bitta sonda butun assimetriya tarixi:
- : manfiy shoklar bir xil hajmdagi musbat shoklardan ko'ra volatillikni ko'proq oshiradi. Bu leverage effekti, va ko'p hollarda BTC/ETH da aynan shuni topish kutiladi.
- : model simmetrik GARCH(1,1) ga qaytib qulaydi. bo'yicha likelihood-ratio yoki -test shunday qilib assimetriya umuman mavjudmi degan savolni bevosita tekshiradi.
- : musbat shoklar volatillikni ko'proq oshiradi — vaqti-vaqti bilan uchraydigan kripto melt-up rejimi. Kamdan-kam, lekin buni oldindan istisno qilmang.
Musbatlik va Statsionarlik
hali ham additiv tarzda qurilgani sababli, har bir had manfiy bo'lmasligi kerak. Yetarli musbatlik shartlari:
E'tibor bering, ning o'zi manfiy bo'lishi mumkin, faqat shart bajarilsa bo'ldi, shunda yomon xabardan keyingi ta'sir hech qachon manfiy bo'lmaydi.
Kovariatsion statsionarlik uchun, innovatsiyalar nol atrofida simmetrik taqsimot bilan standartlashtirilgan deb faraz qilamiz, shunda va ko'rsatkich o'rtacha hissa qo'shadi. Statsionarlik sharti quyidagicha bo'ladi:
Shartsiz (uzoq muddatli) dispersiya esa:
Bu 1-qismdagi natijasining GJR analogi, qo'shimcha hadi leverage yarim-hayotining o'rtacha hissasini hisobga oladi. Agar sizning innovatsiya taqsimotingiz qiyshiq bo'lsa (Hansenning skew-, quyida), o'rniga bo'lishining haqiqiy ehtimoli qo'yiladi, lekin — bu hisobot qilingan persistensiya uchun standart mos yozuv.
EGARCH: Log-Dispersiyani Modellash, Musbatlik Cheklovlarisiz
GJR sizni dispersiya-musbatlik qamalida ushlab turadi: har bir parametr kombinatsiyasi tengsizlik cheklovlariga qarshi tekshirilishi kerak, bu optimizatsiya davomida bezovta qiluvchi va aylanma qayta baholashda esa yanada yomonroq, chunki oyna vaqti-vaqti bilan yaroqsiz hududga kirib qoladi. Nelsonning Exponential GARCH (1991) buni butunlay chetlab o'tadi, shartli dispersiyaning logarifmini modellash orqali. istalgan haqiqiy son bo'lishi mumkinligi sababli, parametrlardan qat'i nazar avtomatik musbat bo'ladi. Hech qanday cheklov qo'yilmaydi.
Rekursiyani standartlashtirilgan innovatsiya orqali yozing:
Ikki had shokni tashiydi, va ularni ajratish — bu g'oyaning o'zi:
- Hajm hadi shokning hajmiga reaksiya beradi, ishora olib tashlangan. ni ayirish uni markazlashtiradi, shunda o'rtacha hajmdagi shok hech qanday hissa qo'shmaydi. Standart normal uchun ; standartlashtirilgan Student- uchun kutilgan mutlaq qiymat kichikroq va ga bog'liq, lekin
archbuni ichki tarzda hal qiladi. - Ishora hadi — bu assimetriya. U ishoralangan innovatsiyaga chiziqli bog'liq, shuning uchun manfiy ni musbatdan qarama-qarshi yo'nalishga suradi.
Ishora konventsiyasi muhim va odamlarni chalg'itadi. Ushbu parametrizatsiyada leverage effekti (yomon yangilik volatillikni oshiradi) ga mos keladi: manfiy shok bu holda qiladi, log-dispersiyani oshiradi. Bu GJR ning dan qarama-qarshi ishora. Har doim konventsiya uchun modelning o'z hujjatlarini o'qing, taxmin qilmang; arch EGARCH ni o'z ishorasi bilan hisobot qiladi, va biz buni xotiraga ishonish o'rniga quyida yangilik ta'siri egri chizig'i bilan tekshiramiz.
Hamma narsa loglarda additiv bo'lgani sababli, EGARCH(1,1) ning persistensiyasi dagi yagona avtoregressiv koeffitsient bilan boshqariladi; statsionarlik faqat ni talab qiladi. Bu GJR tengsizligidan ancha toza shart, va aylanma oynalarda qayta moslashtirganda haqiqiy amaliy afzallik hisoblanadi.
Ta'kidlashga arzigulik nozik jihat: EGARCH ning shoklarga javobi innovatsiyaga nisbatan eksponensial (oxirida eksponensiallaysiz), GJR esa kvadratik. Shu sababli EGARCH katta shoklarga yanada shiddatliroq reaksiya beradi — kriptoda bu xususiyat, chunki muhim bo'lgan aynan dum voqealari, lekin shu bilan birga EGARCH ba'zan bitta anomal kundan keyin ishonchsiz darajada katta dispersiya prognozlarini berishi mumkin. Hech biri universal ravishda yaxshiroq emas; siz namunadan tashqari mosligi va risk backtestlari bo'yicha tanlaysiz — bu butun seriyaning maqsadi.
Yangilik Ta'siri Egri Chizig'i
Simmetrik GARCH, GJR va EGARCH orasidagi farqni ko'rishning eng toza usuli — yangilik ta'siri egri chizig'i (Engle va Ng, 1993): ni uzoq muddatli darajasida qat'iy ushlab, keyingi davr shartli dispersiyasi ni oxirgi shok funksiyasi sifatida chizing. Bu "shu hajm va ishoradagi shok berilgan holda, model ertangi volatillikni qanchalik oshiradi?" degan savolga javob beradi.
- Simmetrik GARCH nolda markazlashgan simmetrik parabola hosil qiladi. va shok bir xil balandlikda joylashadi. Bu aynan biz tuzatayotgan kamchilik.
- GJR nolda burilish bilan parabola hosil qiladi — bo'lganda chapda (manfiy shoklar) o'ngdan tikroq. Ikki yarim qismning egriligi mos ravishda va .
- EGARCH assimetrik, eksponensial V-shakl hosil qiladi: ikki qo'l turli qiyaliklarga ega, chunki hadi mavjud, va yakuniy eksponensiallash tufayli butun shakl parabolaga qaraganda tezroq yuqoriga egiladi.
Barcha uchtasini moslashtirilgan parametrlardan keyinroq, amalga oshirish bo'limida chizamiz — bu assimetriya nima berishini tushuntirish uchun eng foydali diagnostika.
Og'ir Dumlar: Student-t va Skewed-t Innovatsiyalari
Assimetriya modelning shoklar ishorasiga javobini tuzatadi. Bu shoklarning o'z taqsimotiga hech qanday ta'sir qilmaydi. Oddiy GARCH ni faraz qiladi, va bu faraz kripto uchun deyarli har doim noto'g'ri. Hatto GARCH volatillik klasterlanishini olib tashlagandan keyin ham, standartlashtirilgan qoldiqlar ortiqcha ekssessni saqlab qoladi — ular og'ir dumli. Taqsimotning yelkalarini moslashtiruvchi Gauss ehtimolligi, -, - yoki -sigma standartlashtirilgan kun qanchalik tez-tez sodir bo'lishini kamlashtiradi.
Risk uchun oqibat bevosita. Gauss 99% VaR kvantilidan foydalanadi, shuning uchun u ni bashorat qiladi. Agar haqiqiy standartlashtirilgan taqsimot erkinlik darajasi bilan Student- bo'lsa, haqiqiy 1% kvantil ga yaqin — Gauss VaR bu ishonch darajasida taxminan ga optimistik. Siz uni 1% dan ancha ko'proq buzasiz va "mumkin bo'lmagan" kunlardan tizimli ravishda hayratlanasiz. Bu kripto xususiyati emas; Bollerslev (1987) -GARCH ni aynan aksiya va valyuta qoldiqlari bir xil og'ir dumlarni ko'rsatgani uchun kiritdi. Kripto bu muammoning shunchaki yanada keskinroq versiyasi.
Standartlashtirilgan Student-t
Student- zichligi dum qalinligini boshqaruvchi erkinlik darajasi parametriga ega: kichik og'ir dumlarni bildiradi, va da Gaussga yaqinlashadi. Muammo shundaki, xom taqsimoti dispersiyaga ega, shuning uchun uni innovatsiya sifatida ishlatishdan oldin birlik dispersiyaga standartlashtirishimiz kerak — aks holda GARCH rekursiyasidagi "" aslida shartli standart og'ish bo'lmas edi.
Birlik dispersiyaga ega standartlashtirilgan Student- innovatsiyasining zichligi:
Ichkaridagi ga e'tibor bering — bu standartlashtirish, bo'lishi uchun qayta masshtablash. Bitta kuzatuvning log-ehtimollik hissasi, GARCH shartli dispersiyasi va berilgan holda:
hadi — dan ga o'tish Yakobiani — 1-qismdagi Gauss GARCH ehtimolligida ko'rgan bir xil had. Faqat shakl o'zgaradi. ni GARCH parametrlari va bo'yicha birgalikda maksimallashtirish — bu dist='t' uzatilganda arch aynan shu narsani qiladi.
Baholangan ning o'zi ma'lumot beradi. Kunlik BTC/ETH daromadlari uchun odatda oralig'iga tushasiz — og'ir dumlar, lekin chekli dispersiya bilan (bu ni talab qiladi) va odatda chekli ekssess bilan (bu ni talab qiladi). Agar sizning moslashtirilgan ingiz 4 dan pastga tushsa, namunaviy ekssess modelda texnik jihatdan cheksiz ekanligini va ba'zi baholovchilar beqaror bo'lib qolishini bilib qo'ying; bu anomaliyalar va ma'lumotlar sifatiga sinchkovlik bilan qarash signali.
Hansenning Skewed-t
Student- og'ir dumli, lekin baribir simmetrik — chap va o'ng dumlar bir xil og'irlikda. Kripto daromad qoldiqlari ko'pincha shu bilan birga qiyshiq: chap dum (qulashlar) o'ngdan og'irroq. Hansenning skewed- (1994) standartlashtirilgan ni bilan bir qatorda qiyshiqlik parametri bilan umumlashtiradi:
bu yerda konstantalar , , va har qanday yaroqli uchun nol o'rtacha va birlik dispersiyaga ega bo'lishi uchun tanlangan. Taqsimot da bo'linadi, har bir qismda turli masshtablashdan foydalanib, ko'proq massani bitta dumga suradi.
Talqin: chapga qiyshiq taqsimot beradi (og'irroq pastki tomon), bu kripto uchun odatiy topilma va leverage effekti bilan birga bo'lishi kutiladi. simmetrik Student- ni tiklaydi, shuning uchun testi qiyshiqlik hadi biror narsa berayotganini yoki yo'qligini ko'rsatadi. arch da bu dist='skewt', u ham , ham ni baholaydi. Natija — chap dum kvantili o'ng dum kvantilidan haqiqatan ham og'irroq bo'lgan VaR — bu siz omon qolishga urinayotgan zararlar assimetrik bo'lganda aynan kerak bo'ladigan narsa. Bu pozitsiya natijalaridagi zarar va foyda assimetriyasi bilan bevosita bog'liq: pasayishdan tiklanish uchun dan ko'proq kerak, shuning uchun chap dumni noto'g'ri modellash o'ng dumni noto'g'ri modellashdan qimmatroqqa tushadi.
Python da Amalga Oshirish
Endi buning barchasini arch kutubxonasi bilan moslashtiramiz. Sozlash 1-qismni takrorlaydi: kunlik daromadlarni oling, sonli barqarorlik uchun 100 ga ko'paytiring (GARCH optimizatorlari daromadlar bo'lganda yomon ishlaydi), va doimiy o'rtacha bilan moslashtiring. Agar sizga kun ichidagi ma'lumotlar yoki boshqa o'rtacha model kerak bo'lsa, mexanizm bir xil.
Sozlash va Ma'lumotlar
import numpy as np
import pandas as pd
from arch import arch_model
from arch.univariate import GARCH, EGARCH, ConstantMean, StudentsT, SkewStudent
from scipy import stats
def fetch_returns(symbol="BTC-USD", start="2019-01-01", end="2025-12-31"):
"""Daily log returns, in percent (scaled x100 for the optimizer)."""
import yfinance as yf
px = yf.download(symbol, start=start, end=end)["Close"].dropna()
ret = 100.0 * np.log(px / px.shift(1)).dropna()
ret.name = symbol
return ret
r = fetch_returns("BTC-USD")
print(f"{len(r)} daily observations, "
f"annualized vol ~ {r.std() * np.sqrt(365):.0f}%")
Kripto 24/7 savdo qilinadi, shuning uchun biz 252 emas, 365 bilan yillashtiramiz — bu kripto Sharpe yoki volatillikni aksiyalar deski ko'rsatkichlari bilan solishtirganda kichik, lekin qayta-qayta uchraydigan chalkashlik manbai.
To'rtta Modelni Moslashtirish
arch dagi naqsh: vol='Garch' bilan p=1, q=1 — simmetrik GARCH; o=1 qo'shish GJR chegara hadini yoqadi; vol='EGARCH' log-dispersiya modeliga o'tkazadi. Innovatsiya taqsimoti dist bilan belgilanadi: 'normal', 't', 'skewt'.
def fit(returns, vol="Garch", p=1, o=0, q=1, dist="normal"):
am = arch_model(returns, mean="Constant",
vol=vol, p=p, o=o, q=q, dist=dist)
res = am.fit(disp="off")
return res
models = {
"GARCH-N": fit(r, vol="Garch", o=0, dist="normal"), # Part 1 baseline
"GJR-t": fit(r, vol="Garch", o=1, dist="t"), # asymmetry + fat tails
"EGARCH-t": fit(r, vol="EGARCH", o=1, dist="t"), # log-variance asymmetry
"GJR-skewt": fit(r, vol="Garch", o=1, dist="skewt"), # + skew
}
for name, res in models.items():
print(f"\n===== {name} =====")
print(res.summary().tables[1]) # parameter table
vol='EGARCH' uchun o argumenti assimetrik () hadni boshqaradi, p/q esa hajm va lag hadlarini boshqaradi; o=1, p=1, q=1 — standart EGARCH(1,1). Bitta nozik jihat: EGARCH ning arch dagi parametr nomlari xuddi shu harflar, lekin assimetriya hadining ishora konventsiyasi Nelsonniki, shuning uchun manfiy baho — leverage effekti. Buni xotiradan emas, yangilik ta'siri egri chizig'idan tekshiramiz.
GJR Natijasini O'qish
GJR- parametr jadvali taxminan shunday ko'rinadi (illyustrativ qiymatlar, hisobot qilingan tajriba emas — o'z ma'lumotlaringizda qayta moslashtiring):
coef std err t P>|t|
omega 0.0480 0.017 2.82 0.005
alpha[1] 0.0620 0.018 3.44 0.001
gamma[1] 0.0910 0.028 3.25 0.001
beta[1] 0.8850 0.021 42.1 0.000
nu 4.30 0.55 7.82 0.000
Buni qanday o'qish kerak:
- -statistikasi 3 dan yuqori bo'lgan
gamma[1] = 0.091— statistik jihatdan ahamiyatli leverage effekti. Manfiy shokdan keyin kvadratlangan shokning ta'siri ; musbat shokdan keyin esa shunchaki . Yomon yangilik bu modelning volatilligini bir xil hajmdagi yaxshi yangilikka qaraganda taxminan marta ko'proq harakatlantiradi. nu = 4.3og'ir dumlarni tasdiqlaydi — Gaussdan () uzoq, va to'rtinchi moment deyarli chekli bo'ladigan darajada past. Bu qatordagi Gauss VaR jiddiy ravishda optimistik bo'lar edi.- Persistensiya — kunlik kripto uchun odatdagidek juda yuqori: shoklar sekin so'nadi va volatillik kuchli klasterlangan.
Tekshirish uchun eng muhim qator — qatori. Agar uning -qiymati katta bo'lsa, assimetrik had bu aktiv va oynada o'z o'rnini oqlamayapti, va siz oddiyroq simmetrik modelni afzal ko'rishingiz kerak. Bu bezak emas, model tanlash intizomi — bu haqda quyida batafsilroq.
Modellarni Axborot Kriteriylari bo'yicha Solishtirish
Log-ehtimollik parametr qo'shganda har doim yaxshilanadi, shuning uchun faqat log-ehtimollik bo'yicha tanlay olmaysiz. Parametrlar sonini jazolaydigan AIC/BIC dan foydalaning (BIC yanada agressivroq):
def compare(models: dict) -> pd.DataFrame:
rows = []
for name, res in models.items():
rows.append({
"model": name,
"n_params": len(res.params),
"loglik": res.loglikelihood,
"AIC": res.aic,
"BIC": res.bic,
})
df = pd.DataFrame(rows).set_index("model")
return df.sort_values("BIC")
print(compare(models))
Talqin qilish qoidalari: bazaviy modeldan ~6 dan ko'proq BIC yaxshilanishi qo'shimcha tuzilma haqiqiy ekanligining kuchli dalili; 1–2 farq esa shovqin. Agar GJR-t GARCH-N dan 30+ BIC balliga yutsa, lekin GJR-skewt GJR-t dan faqat 1 balliga yutsa, ni saqlang va qiyshiqlikni tashlab yuboring — qiyshiqlik parametri bu ma'lumotda o'zini oqlamayapti. AIC/BIC ni namunadan tashqari validatsiya o'rniga o'qimang; ular murakkablikka moslashtirilgan namuna ichidagi moslikni mukofotlaydi, bu zaruriy, lekin yetarli emas. Haqiqiy sinov — VaR backtesti va, oxir-oqibat, walk-forward baholash.
Yangilik Ta'siri Egri Chizig'ini Chizish
Bu — natija beruvchi chizma — u assimetriyani ko'rinadigan qiladi va EGARCH ishora konventsiyasini tasdiqlaydi.
import matplotlib.pyplot as plt
def news_impact_curve(res, shock_grid):
"""
Next-period conditional variance as a function of the last shock,
holding sigma_{t-1} at the model's unconditional level.
Works for symmetric GARCH, GJR (o=1), and EGARCH.
"""
p = res.params
vol_name = res.model.volatility.__class__.__name__
sigma2_bar = np.mean(res.conditional_volatility ** 2)
omega = p["omega"]
alpha = p.get("alpha[1]", 0.0)
gamma = p.get("gamma[1]", 0.0)
beta = p.get("beta[1]", 0.0)
if vol_name == "EGARCH":
sig_prev = np.sqrt(sigma2_bar)
z = shock_grid / sig_prev
E_abs = np.sqrt(2 / np.pi) # approx; arch uses the fitted dist's E|z|
log_s2 = (omega + beta * np.log(sigma2_bar)
+ alpha * (np.abs(z) - E_abs) + gamma * z)
return np.exp(log_s2)
else:
ind = (shock_grid < 0).astype(float)
return omega + (alpha + gamma * ind) * shock_grid**2 + beta * sigma2_bar
shocks = np.linspace(-8, 8, 401) # daily % shocks
plt.figure(figsize=(8, 5))
for name in ["GARCH-N", "GJR-t", "EGARCH-t"]:
nic = news_impact_curve(models[name], shocks)
plt.plot(shocks, nic, label=name, lw=2)
plt.axvline(0, color="gray", lw=0.8, ls="--")
plt.xlabel("Last shock $\\varepsilon_{t-1}$ (daily %)")
plt.ylabel("Next-period conditional variance $\\sigma_t^2$")
plt.title("News impact curve: symmetric vs GJR vs EGARCH (BTC)")
plt.legend()
plt.tight_layout()
Buni ishga tushirganingizda, simmetrik GARCH-N egri chizig'i nolda markazlashgan toza parabola — va shok bir xil dispersiyani beradi. GJR-t boshlanish nuqtasida burilish bilan parabola, chap qo'l yuqoriroq. EGARCH-t — eksponensial V, va agar uning chap qo'li o'ng qo'lidan yuqorida joylashgan bo'lsa, siz leverage effektini va ishora konventsiyasini bir qarashda tasdiqlagansiz. Agar EGARCH ning chap qo'li o'ngdan pastda joylashsa, yoki musbat baholangan (yuqori-volatillik rejimi), yoki sizda ishora teskari — chizma buni taxminsiz aytib beradi.
To'rtta Modelning Yonma-yon Solishtiruvi
Riskka o'tishdan oldin, to'rtta modelni yonma-yon ushlab turish foydali. Har bir qator dizayn qarori, va ustunlar bu qaror nimaga tushishi va nima berishini ko'rsatadi.
| Xususiyat | GARCH-N | GJR-t | EGARCH-t | GJR-skewt |
|---|---|---|---|---|
| Assimetriya (shok ishorasi) | yo'q | chegara | ishoralangan | chegara |
| Innovatsiya dum shakli | Gauss | Student- | Student- | skewed- |
| Innovatsiyada qiyshiqlik | yo'q | yo'q | yo'q | ha () |
| Musbatlik cheklovlari | ha | ha () | yo'q (log shakl) | ha |
| Statsionarlik sharti | ||||
| Bazaviyga nisbatan qo'shimcha parametrlar | 0 | |||
| Odatiy kripto xulosasi | VaR backtestidan o'tmaydi | kuchli, barqaror | kuchli, barqaror | GJR-t ga nisbatan chekka |
Yodda tutish kerak bo'lgan naqsh: 1-ustundan 2-ustunga sakrash — bir vaqtning o'zida assimetriya va og'ir dumlarni qo'shish — deyarli barcha risk-kalibrlash yaxshilanishi yashaydigan joy. Keyingi takomillashtirishlar (EGARCH ning funksional shakli, qiyshiqlik hadi) haqiqiy, lekin ikkinchi darajali, va ko'pgina kripto qatorlarida ular shovqin ichida qoladi. Modellash byudjetingizni birinchi sakrashga sarflang va qolganiga shubha bilan qarang.
Risk Amaliyoti: VaR va Expected Shortfall
Murakkabroq volatillik modelini moslashtirish faqat u qarorni yaxshilasagina foydali. Yaxshilash uchun eng toza qaror — bir qadamli dum-risk prognozi: ertaga qanchalik yomon bo'lishi mumkin? Biz bir kunlik oldindan Value-at-Risk va Expected Shortfall (aka Conditional VaR, HRP/CVaR portfel quvuri uni o'z maqsadi sifatida ishlatadi) ni moslashtirilgan GARCH-/skew- prognozidan bevosita hosil qilamiz.
Shartli Taqsimotdan VaR ga
GARCH mexanizmi shartli o'rtacha va shartli standart og'ish ning bir qadamli prognozini beradi. Daromad sifatida modellashtiriladi, esa moslashtirilgan standartlashtirilgan taqsimotdan (Gauss, yoki skew-) olinadi. Shunday qilib daromadning -kvantili shunchaki standartlashtirilgan taqsimotning -kvantilining affin transformatsiyasi:
bu yerda standartlashtirilgan innovatsiyaning kvantili (teskari CDF), va oldingi minus ishora VaR musbat zarar soni bo'lishi konventsiyasiga amal qiladi. 99% VaR uchun , va siz ni qo'yasiz. /skew- ning butun foydasi shu yerda ko'rinadi: Gauss dan manfiyroq, shuning uchun VaR haqiqatan ham kattaroq.
Expected Shortfall
VaR sizga chegarani aytadi; u buzilish sodir bo'lganda qanchalik yomon bo'lishi haqida hech narsa aytmaydi. Expected Shortfall — VaR dan oshib ketish shartiga qarab o'rtacha zarar — buni aytadi, va u kogerent (subaddativ), shuning uchun u CVaR optimizatsiyasi ortidagi risk o'lchovi va Basel nima uchun unga o'tgani. Joylashuv-masshtab modeli uchun,
Shartli-dum-kutish hadi standart taqsimotlar uchun yopiq shakllarga ega. Gauss uchun, bilan,
bu yerda — standart normal zichlik funksiyasi. erkinlik darajasi va (standartlashtirilgan masshtabda) bilan standartlashtirilgan Student- uchun dum kutishi:
bu yerda — standartlashtirilgan- zichligi. Expected Shortfall Gaussnikidan VaR dan ko'ra ko'proq oshib ketadi, chunki dumi shunchaki uzoqroq emas — u og'irroq, shuning uchun chegaradan tashqaridagi o'rtacha zarar nomutanosib ravishda katta. Bu qo'shimcha bo'shliq Gauss modeli sizdan yashiradigan son.
Moslashtirilgan arch Modelidan VaR va ES ni Hisoblash
arch taqsimotlari ppf (kvantil) metodini taqdim etadi, shuning uchun biz hech narsani qayta chiqarmasdan standartlashtirilgan kvantilni bevosita olishimiz mumkin. ES uchun biz sonli integratsiya qilamiz, bu barqaror va normal/t/skewt bo'yicha bir xilda ishlaydi.
from scipy import integrate
def var_es_forecast(res, alpha=0.99):
"""
One-step-ahead VaR and ES at level alpha, on the same (x100) scale
as the returns fed to the model. Divide by 100 for fractional units.
"""
fc = res.forecast(horizon=1, reindex=False)
mu = fc.mean.iloc[-1, 0]
sigma = np.sqrt(fc.variance.iloc[-1, 0])
dist = res.model.distribution # StudentsT / SkewStudent / Normal
dp = [res.params[k] for k in res.params.index
if k in ("nu", "eta", "lambda", "lam")]
z_q = dist.ppf(1 - alpha, dp) if dp else dist.ppf(1 - alpha)
z_q = float(np.atleast_1d(z_q)[0])
def pdf(z):
arr = np.atleast_1d(z).astype(float)
lp = dist.loglikelihood(dp, arr, np.ones_like(arr), individual=True) \
if dp else dist.loglikelihood([], arr, np.ones_like(arr),
individual=True)
return np.exp(lp)
num, _ = integrate.quad(lambda z: z * pdf(z), -30, z_q, limit=200)
es_z = num / (1 - alpha) # E[z | z <= z_q]
var = -(mu + sigma * z_q)
es = -(mu + sigma * es_z)
return {"mu": mu, "sigma": sigma, "z_q": z_q,
"VaR": var, "ES": es}
for name in ["GARCH-N", "GJR-t", "GJR-skewt"]:
out = var_es_forecast(models[name], alpha=0.99)
print(f"{name:11s} sigma={out['sigma']:.2f}% "
f"z_q={out['z_q']:+.2f} "
f"VaR99={out['VaR']:.2f}% ES99={out['ES']:.2f}%")
z_q ustuni butun tarixni bitta sonda beradi. Gauss modeli dan foydalanadi; bilan esa ga yaqin narsadan foydalanadi; skew- esa chap kvantilni yanada uzoqroq suradi, o'ngini esa ichkariga tortadi. Bir xil , sezilarli darajada kattaroq VaR. Agar siz kriptoda Gauss VaR ni ishlatib kelayotgan bo'lsangiz, bu — siz sezmasdan yutib kelayotgan bo'shliq.
Bir Qadam vs Ko'p Qadam: Ogohlantirish
Yuqoridagi barcha narsa bir kunlik oldindan prognoz, va GARCH VaR eng toza aynan shu yerda. Ikki narsa uzoqroq gorizontlarni chalkashtiradi, va ularni ekstrapolyatsiya qilishdan oldin bilishingiz kerak.
Birinchidan, dispersiya prognozlari o'rtachaga qaytadi. Statsionar GARCH dan olingan -qadamli shartli dispersiya o'sgan sayin shartsiz darajaga ga yaqinlashadi, va yig'indi -kunlik dispersiya har bir qadam prognozlarining yig'indisi — bu volatillik uzoq muddatli o'rtachasida bo'lmasa, EMAS. Sodda "vaqtning kvadrat ildizi" masshtablashi bu o'rtachaga qaytishni e'tiborsiz qoldiradi va aynan shok'dan keyin noto'g'ri bo'ladi, ya'ni siz eng ko'p bu songa muhtoj bo'lganingizda. Modelning o'z ko'p qadamli dispersiya yo'lidan foydalaning.
Ikkinchidan, ko'p kunlik daromadning taqsimoti bir kunlik innovatsiya bilan bir xil shaklda emas. Bir necha -taqsimlangan kunlik shoklarni (chiziqli bo'lmagan GARCH rekursiyasi orqali) qo'shish -kunlik gorizontda taqsimotini bermaydi; toza yopiq shakl yo'q. Ko'p kunlik VaR uchun halol yo'l — simulyatsiya: moslashtirilgan standartlashtirilgan taqsimotdan innovatsiya yo'llarini oling, ularni GARCH rekursiyasi orqali o'tkazib simulyatsiya qilingan daromad yo'llarini oling, -kunlik daromadlarga agregatsiya qiling, va empirik kvantilni o'qing. Bu, shuningdek, hech qanday analitik ko'p gorizontli kvantil umuman mavjud bo'lmagan skew- holatini tabiiy tarzda hal qiladi. Ushbu maqoladagi bir qadamli analitik formulalar aniq; har qanday ko'p qadamli qisqa yo'lni taxminiy deb hisoblab, tasdiqlang.
VaR Backtesti: Kupiec va Christoffersen
VaR prognozi — ehtimollik da'vosi: "zarar bu chegaradan faqat kunlarda oshadi". Buni siz buzilishlarni (haqiqiy zarar prognoz qilingan VaR dan oshgan kunlar) walk-forward baholash davomida sanab va ikkita narsani tekshirib sinaysiz. Birinchidan, buzilish tezligi to'g'rimi? Ikkinchidan, buzilishlar mustaqilmi, yoki ular klasterlanadimi (bu model aynan eng muhim vaqtda, volatillik keskinlashuvlari paytida ishlamay qolishini bildiradi)?
buzilish ketma-ketligi, — kun davomidagi buzilishlar soni, va — kuzatilgan tezlik bo'lsin. Maqsad tezligi .
Kupiec shartsiz qamrov testi (1995) ni likelihood ratio orqali tekshiradi:
Christoffersen mustaqillik testi (1998) bugungi buzilish kechagi buzilish tomonidan bashorat qilinmasligini tekshiradi. buzilish ketma-ketligidagi holatidan holatiga o'tishlarni sanasin, , , va . Shunda
Ikkalasi shartli qamrov testiga ga birlashadi, bu bir vaqtning o'zida to'g'ri tezlikni va mustaqillikni tekshiradi. Model Kupiecdan o'ta oladi (buzilishlar soni to'g'ri), lekin Christoffersendan o'ta olmaydi (ularning barchasi bitta qulash haftasiga to'plangan) — bu siz eng ko'p tutmoqchi bo'lgan muvaffaqiyatsizlik rejimi, chunki klasterlangan buzilishlar hisobni portlatib yuboradiganlaridir.
from scipy.stats import chi2
def var_backtest(losses, var, p):
"""
losses, var: 1D arrays, same length; loss>0 is a loss, var>0 threshold.
p = 1 - alpha (target violation rate, e.g. 0.01 for 99% VaR).
Returns Kupiec, Christoffersen-independence, and conditional-coverage LR.
"""
losses = np.asarray(losses)
var = np.asarray(var)
I = (losses > var).astype(int) # violation indicators
T = len(I)
N = int(I.sum())
pi_hat = N / T
eps = 1e-12
ll_null = N * np.log(p + eps) + (T - N) * np.log(1 - p + eps)
ll_alt = N * np.log(pi_hat + eps) + (T - N) * np.log(1 - pi_hat + eps)
LR_uc = -2 * (ll_null - ll_alt)
p_uc = 1 - chi2.cdf(LR_uc, df=1)
n00 = np.sum((I[:-1] == 0) & (I[1:] == 0))
n01 = np.sum((I[:-1] == 0) & (I[1:] == 1))
n10 = np.sum((I[:-1] == 1) & (I[1:] == 0))
n11 = np.sum((I[:-1] == 1) & (I[1:] == 1))
pi01 = n01 / (n00 + n01) if (n00 + n01) else 0.0
pi11 = n11 / (n10 + n11) if (n10 + n11) else 0.0
pi = (n01 + n11) / (n00 + n01 + n10 + n11)
def _ll(pi01, pi11, pi_pooled, use_pooled):
if use_pooled:
a = (n00 + n10) * np.log(1 - pi_pooled + eps)
b = (n01 + n11) * np.log(pi_pooled + eps)
return a + b
return (n00 * np.log(1 - pi01 + eps) + n01 * np.log(pi01 + eps)
+ n10 * np.log(1 - pi11 + eps) + n11 * np.log(pi11 + eps))
LR_ind = -2 * (_ll(pi01, pi11, pi, True) - _ll(pi01, pi11, pi, False))
p_ind = 1 - chi2.cdf(LR_ind, df=1)
LR_cc = LR_uc + LR_ind
p_cc = 1 - chi2.cdf(LR_cc, df=2)
return {
"T": T, "violations": N,
"obs_rate": pi_hat, "target_rate": p,
"LR_uc": LR_uc, "p_uc": p_uc,
"LR_ind": LR_ind, "p_ind": p_ind,
"LR_cc": LR_cc, "p_cc": p_cc,
}
losses/var kirishlarini halol yaratish uchun, kengayuvchi yoki aylanma oynada qayta moslashtirasiz (yoki hech bo'lmaganda qayta prognoz qilasiz) va namunadan tashqari har bir kun uchun bir qadamli oldindan VaR ni yozib olasiz, so'ngra buni o'sha kunning haqiqiy zarari bilan solishtirasiz. VaR ni hech qachon namuna ichida backtest qilmang — o'zi bashorat qilishga so'ralayotgan aynan shu qulash ustida moslashtirilgan model haqiqatdagidan ancha yaxshiroq ko'rinadi. Bu backtest-jonli parallellik bilan bir xil intizom: baholash faqat qaror qabul qilish vaqtida mavjud bo'lgan ma'lumotdan foydalanishi kerak.
def walk_forward_var(returns, alpha=0.99, start=750, refit_every=25,
vol="Garch", o=1, dist="t"):
"""
Expanding-window one-step VaR. Refit every `refit_every` days
(refitting daily is correct but slow; every ~25 days is a common
compromise -- validate the shortcut on your data).
"""
losses, vars_ = [], []
res = None
for t in range(start, len(returns)):
if res is None or (t - start) % refit_every == 0:
am = arch_model(returns.iloc[:t], mean="Constant",
vol=vol, p=1, o=o, q=1, dist=dist)
res = am.fit(disp="off")
fc = res.forecast(horizon=1, reindex=False)
mu = fc.mean.iloc[-1, 0]
sig = np.sqrt(fc.variance.iloc[-1, 0])
dp = [res.params[k] for k in res.params.index
if k in ("nu", "eta", "lambda", "lam")]
z_q = float(np.atleast_1d(
res.model.distribution.ppf(1 - alpha, dp) if dp
else res.model.distribution.ppf(1 - alpha))[0])
var_t = -(mu + sig * z_q)
vars_.append(var_t)
losses.append(-returns.iloc[t]) # realized loss for that day
return np.array(losses), np.array(vars_)
losses, vars_ = walk_forward_var(r, alpha=0.99, dist="t")
print(var_backtest(losses, vars_, p=0.01))
O'qish: yaxshi kalibrlangan 99% VaR kuzatilgan tezlikni 1% ga yaqin ko'rsatadi, ahamiyatsiz Kupiec (katta p_uc), va ahamiyatsiz Christoffersen (katta p_ind) — klasterlanish yo'q. Amaliyotda kriptodagi halol natija shundaki, GARCH-Normal Kupiecdan o'ta olmaydi (juda ko'p buzilish, p_uc juda kichik), GJR- yoki EGARCH- esa o'tadi yoki yaqinlashadi. Bu qarama-qarshilik — bu maqolaning butun argumenti gipoteza testi sifatida ifodalangan. Agar hatto modeli ham klasterlangan buzilishlarni ko'rsatsa (kichik p_ind), volatillik dinamikangiz hali ham noto'g'ri spetsifikatsiyalangan — bu ko'pincha uzunroq xotira (component/FIGARCH) yoki rejim qatlami kerakligining belgisi, bu HMM lar bilan rejim aniqlash bilan bog'liq.
Modellarni Faqat O'tish/O'tmaslik Emas, Dum Zarari bo'yicha Reytinglash
Kupiec va Christoffersen sizga ikkilik xulosa beradi — model rad etilgan yoki etilmagan. Bu zaruriy, lekin qo'pol: ikkita model ikkalasi ham "o'tishi" mumkin, holbuki biri sezilarli darajada o'tkirroq. Raqobatlashuvchi VaR prognozlarini reytinglash uchun, ularni kvantil uchun qat'iy izchil zarar funksiyasi, pinball (kvantil) zarar bilan bahoyaling:
bu yerda — (ishoralangan) VaR kvantili va — haqiqiy daromad. Namunadan tashqari kunlar bo'yicha o'rtachalangan holda, pastroq o'rtacha pinball zarari yaxshiroq kalibrlangan va o'tkirroq kvantilni bildiradi; zarar -kvantil uchun izchil bo'lgani sababli, uni minimallashtirish modelni dangasa keng bo'lgani uchun mukofotlamaydi. Ikki modelni rasmiy ravishda solishtirish uchun, ularning kunlik zarar farqlarini Diebold-Mariano testiga uzating.
def pinball_loss(returns, var, alpha=0.99):
tau = 1 - alpha
q = -np.asarray(var) # VaR is a positive loss; quantile is negative
r = np.asarray(returns)
hit = (r < q).astype(float)
return np.mean((tau - hit) * (r - q))
Xususan Expected Shortfall uchun, ES o'zicha elitsitabl emasligiga e'tibor bering (minimizatori faqat ES bo'lgan zarar funksiyasi mavjud emas), bu haqiqiy nazariy murakkablik: siz ES ni VaR bilan birgalikda Fissler-Ziggel skorlash qoidalari yordamida baholaysiz, yoki o'rtacha buzilish hajmi modelning bashorat qilingan ES iga mos kelishini tekshirishning soddaroq amaliyotiga qaytasiz. Qo'pol, lekin foydali ES tekshiruvi: VaR-buzilish kunlari orasida, o'sha kunlardagi o'rtacha haqiqiy zararni o'rtacha bashorat qilingan ES bilan solishtiring — ular yaqin bo'lishi kerak.
Tartibga solish ramkasi Basel svetofor yondashuvi: 250 savdo kuni davomida, 99% VaR ning 0-4 buzilishi "yashil" (qabul qilinadi), 5-9 — "sariq" (nazorat), 10+ — "qizil" (model rad etiladi va kapital ko'paytiruvchilari oshadi). Bu Kupiec ning qo'polroq qarindoshi, lekin bu risk qo'mitalari haqiqatan gapiradigan til, va uni LR statistikasi bilan birga hisobot qilish qimmatli.
Amaliy Fikrlar
Qo'shimcha Parametrlar O'zini Oqlamaydigan Holatlar
Halol standart — murakkablikka shubha bilan qarash. Siz qo'shadigan har bir parametr — optimizator ortiqcha moslashtira oladigan tugma, va assimetrik og'ir dumli GARCH da ularning bir nechtasi bor. Aniq ko'rsatmalar:
- Kam likvid yoki qisqa namunalar. Bir necha yuzta kunlik kuzatuv bilan, va dagi standart xato katta bo'ladi, va siz namuna shovqini bo'lgan assimetriyalarni "aniqlaysiz". Yangi yoki yupqa altkoin ustida, simmetrik GARCH- ko'pincha ma'lumot qo'llab-quvvatlay oladigan eng murakkab model. 200 kunga skew-t EGARCH ni moslashtirish o'zingizni aldashdir.
- Qiyshiqlik hadi ko'pincha o'z narxini oqlamaydi. Amaliyotda, Normaldan ga o'tish katta, ishonchli yaxshilanish (og'ir dumlar haqiqiy va kuchli). dan skew- ga o'tish ko'pincha chekka — 1 yoki 2 BIC yutuq, ba'zan manfiy. Qiyshiqlikni faqat ma'lumot buni aniq talab qilganda qo'shing.
- EGARCH vs GJR kunlik ma'lumotda odatda deyarli bir xil. Ular bir xil sifat tarixini turli funksional shakllar bilan kodlaydi. Namuna ichidagi qaysi biri chiroyliroq log-ehtimollikka ega ekaniga qarab emas, namunadan tashqari VaR backtesti bo'yicha tanlang.
- Yuqoriroq chastota javobni o'zgartiradi. Soatlik yoki minutlik barlarda, kun ichidagi mavsumiylik va mikrostruktura ustunlik qiladi, va oddiy kunlik uslubdagi GARCH assimetriyadan qat'i nazar noto'g'ri spetsifikatsiyalangan. Boshqa muammo, boshqa vositalar.
Bu ishonchli chekka yo'qligi bilan halol baholash bilan bir xil saboq: namunadan tashqari sinovdan omon qolmaydigan murakkabroq model o'rnini bosgan oddiy modeldan yomonroq, chunki u aniqlik illyuziyasini olib yuradi. Salbiy natijani — "ETH da qiyshiqlik yordam bermadi" — haqiqiy topilma sifatida hisobot qiling, va namuna ichidagi AIC emas, walk-forward optimizatsiyasi ni hakam sifatida ishlating.
Bular — Boshqa Hamma Narsa Quriladigan Marginallar
Bu yerdagi modellar yakuniy nuqta emas; ular birgalikdagi-risk mexanizmi uchun bir o'zgaruvchili qurilish bloki. Birgalikdagi kripto risk uchun kopula modellari maqolasi vine kopulani moslashtirishdan oldin GARCH-EVT marginallari sifatida aynan EGARCH/GJR- dan foydalanadi — siz har bir aktiv uchun assimetrik og'ir dumli GARCH ni moslashtirasiz, standartlashtirilgan qoldiqlarni chiqarasiz, va faqat shundan keyin aktivlar aro bog'liqlikni modellaysiz. Agar sizning marginalingiz simmetrik Gauss GARCH bo'lsa, kopula bog'liqlik modeli qanchalik yaxshi bo'lishidan qat'i nazar uning dum xatolarini meros qilib oladi. Chiqindi marginallar, chiqindi birgalikdagi VaR.
Ko'p o'zgaruvchili volatillik muammosi uchun — har bir aktiv dispersiyasi emas, vaqt bo'yicha o'zgaruvchan korrelyatsiyalar — 3-qism, DCC-GARCH ga qarang, u ushbu bir o'zgaruvchili moslashtirishlar ustiga dinamik-korrelyatsiya modelini qatlaydi. Volatillik prognozini pozitsiya hajmi va savdo backtestiga aylantirish uchun, 4-qism volatillik nishonlash haqida ushbu aynan shu modellarning prognozlaridan bashorat qilingan riskga teskari ravishda ekspozitsiyani masshtablash uchun foydalanadi.
Taqsimotdan Mustaqil Muqobil
Risk bo'limidagi hamma narsa parametrik farazga tayanadi: standartlashtirilgan qoldiqlar yoki skew- ga amal qiladi. Bu faraz sinaladigan va odatda oqilona, lekin u muvaffaqiyatsizlikka uchrashi mumkin. Agar siz dum shakliga umuman sodiq qolmoqchi bo'lmasangiz, konformal prognozlash chekli-namunali qamrov kafolatlari bilan taqsimotdan mustaqil prognoz intervallarini beradi — innovatsiya taqsimoti haqida hech qanday da'vo qilmaydigan haqiqatan ham boshqa falsafa. Ikki yondashuv bir-birini to'ldiradi: parametrik GARCH- sizga to'liq shartli zichlikni beradi (demak ES ni ham, konformal intervallar buni bevosita ta'minlamaydi), konformal esa zichligingiz noto'g'ri bo'lganda ham saqlanadigan qamrovni beradi. Ishlab chiqarishda, ikkalasini o'zaro tekshiruv sifatida ishlatish arzon sug'urta.
Sonli va Ish Jarayoni Gigienasi
- Daromadlarni 100 ga ko'paytiring. GARCH optimizatorlari xom kasrli daromadlarga qaraganda foiz daromadlarida ancha ishonchli yaqinlashadi. Kasrli birliklarda hisobot qilsangiz, VaR/ES ni masshtabsizlashtirishni unutmang.
- Persistensiyani kuzatib boring. Agar ~0.999 dan yuqori baholansa, model deyarli integratsiyalangan (IGARCH-ga o'xshash); prognozlar juda sekin o'rtachaga qaytadi va uzoq gorizontli dispersiya prognozlari ishonchsiz bo'lib qoladi. Albatta noto'g'ri emas, lekin buni belgilab qo'ying.
- Aylanma oynalarda yaqinlashmaslik nosozliklari. EGARCH ning log shakli musbatlik cheklovlaridan qochadi, lekin baribir patologik oynada yaqinlasha olmasligi mumkin.
fit()ni try/except ga o'rang va jonli backtestni buzish o'rniga oldingi oynaning parametrlariga qayting. - O'rtacha model. Biz butun davomida doimiy o'rtachadan foydalandik. Ko'pgina kunlik kripto uchun shartli o'rtacha nolga yaqin va volatillik tomonidan bosib ketiladi; agar haqiqiy sabab bo'lmasa, uni bashorat qilishga model murakkabligini sarflamang.
Xulosa
- Oddiy GARCH(1,1) ikkita tuzilmaviy kamchilikka ega: u simmetrik (shoklar sifatida kirgani uchun va ga bir xil reaksiya beradi) va u Gauss innovatsiyalarini faraz qiladi (kriptoning og'ir dumlarini arzonlashtiradi). Ikkalasi ham optimistik VaR orqali haqiqiy pulga tushadi.
- GJR-GARCH chegara hadi qo'shadi. Ahamiyatli — leverage effekti: yomon yangilik volatillikni ko'proq oshiradi. Musbatlik ni talab qiladi; persistensiya .
- EGARCH ni modellaydi, shuning uchun musbatlik cheklovlari yo'q va statsionarlik shunchaki . Assimetriya hajm hadi dan ajratilgan ishoralangan had orqali kiradi (bu konventsiyada leverage — ).
- Yangilik ta'siri egri chizig'i — keyingi davr dispersiyasi oxirgi shokka nisbatan — assimetriyani ko'rinadigan qiladi va EGARCH ishora konventsiyasini bir qarashda tasdiqlaydi.
- Student- innovatsiyalari (
dist='t') erkinlik darajasi orqali dumlarni tuzatadi (kripto uchun odatda 3–6); Hansenning skew- si (dist='skewt') og'irroq chap dum uchun qiyshiqlik qo'shadi. Normaldan ga o'tish katta ishonchli yutuq; dan skew- ga o'tish ko'pincha chekka. - VaR va ES moslashtirilgan shartli taqsimotdan kelib chiqadi: , og'ir dumli kvantil riskni Gaussga qaraganda haqiqatan ham kattaroq qiladi. ES (kogerent, CVaR) VaR dan tashqaridagi o'rtacha zararni qamrab oladi.
- Kupiec va Christoffersen bilan backtest qiling. Kupiec buzilish tezligini tekshiradi; Christoffersen buzilishlar klasterlanmaganini tekshiradi. Model bittasidan o'tib, boshqasidan o'ta olmasligi mumkin — klasterlangan buzilishlar xavfli muvaffaqiyatsizlik rejimi. Qat'iy ravishda namunadan tashqari backtest qiling.
- Murakkablikdan ko'ra intizom. Assimetriya/qiyshiqlikni faqat u BIC va namunadan tashqari VaR backtestidan omon qolganda qo'shing. Qisqa yoki kam likvid qatorlarda, oddiyroq model odatda g'alaba qozonadi.
References:
- Nelson, D. B. (1991). Conditional heteroskedasticity in asset returns: A new approach. Econometrica, 59(2), 347-370. DOI
- Glosten, L. R., Jagannathan, R., & Runkle, D. E. (1993). On the relation between the expected value and the volatility of the nominal excess return on stocks. Journal of Finance, 48(5), 1779-1801. DOI
- Bollerslev, T. (1987). A conditionally heteroskedastic time series model for speculative prices and rates of return. Review of Economics and Statistics, 69(3), 542-547. DOI
- Hansen, B. E. (1994). Autoregressive conditional density estimation. International Economic Review, 35(3), 705-730. DOI
- Engle, R. F., & Ng, V. K. (1993). Measuring and testing the impact of news on volatility. Journal of Finance, 48(5), 1749-1778. DOI
- Christoffersen, P. F. (1998). Evaluating interval forecasts. International Economic Review, 39(4), 841-862. DOI
- Kupiec, P. H. (1995). Techniques for verifying the accuracy of risk measurement models. Journal of Derivatives, 3(2), 73-84. DOI
- Black, F. (1976). Studies of stock price volatility changes. Proceedings of the American Statistical Association, Business and Economic Statistics Section, 177-181.
- McNeil, A. J., Frey, R., & Embrechts, P. (2015). Quantitative Risk Management: Concepts, Techniques and Tools (2nd ed.). Princeton University Press.
- Sheppard, K. (2023). arch: Autoregressive conditional heteroskedasticity models in Python. GitHub.
MarketMaker.cc Team
Miqdoriy tadqiqotlar va strategiya