Асимметриялуу жана оор куйруктуу GARCH: EGARCH, GJR жана Student-t
Ушул сериянын 1-белугунде биз GARCH(1,1) моделин нөлдөн курганбыз: волатилдиктин кластерленуу интуициясы, шарттуу дисперсиянын рекурсиясы, максималдуу ыктымалдуулук боюнча баалоо (maximum likelihood), болжолдоо жана arch китепканасы менен стандарттуу калдыктарды диагностикалоо. Эгер аны окуй элек болсоңуз, ошондон башта — бул пост сиз жөнөкөй GARCH(1,1) моделин баалап, чечмелей алат деп болжолдойт жана негиздерди кайра чыгарбайт.
Жөнөкөй GARCH(1,1) — жакшы негизги чекит, бирок начар акыркы жооп. Анын бэктестте оңой көз жумуп коюуга боло турган, бирок чыныгы капитал менен өтө кымбатка турган эки структуралык кемчилиги бар. Биринчиден, ал симметриялуу: модель күнгө так күнгө кандай реакция кылса, ошондой эле реакция кылат, анткени шок дисперсиянын рекурсиясына жалаң квадраты, , аркылуу кирет. Квадратка көтөрүү белгини жоготот. Экинчиден, ал Гаусс инновацияларын болжолдойт: GARCH волатилдиктин кластерленуусүн сиңирип алгандан кийин да, BTC менен ETH нин стандартташтырылган калдыктары даана оор куйруктуу болуп кала берет, ал эми Гаусс ыктымалдуулугу куйрукту системалуу түрдө баасын төмөндөтөт. GARCH(1,1)-Normal 99% VaR учурлардын 1% дан алда канча көп жолу бузулат.
Бул пост эки кемчиликти тең оңдойт. Биз GJR-GARCH менен EGARCH аркылуу асимметрияны, ал эми Student- менен Хансендин skewed- инновациялары аркылуу оор куйруктарды кошобуз. Андан кийин чыныгы пайда алып келе турган ишти жасайбыз: бааланган шарттуу бөлүштүрүлүштү бир кадамдык Value-at-Risk жана Expected Shortfall болжолуна айландырып, ал болжолду Купиек жана Кристофферсен тесттери менен чынчыл түрдө бэктестейбиз. Тобокелдикке эч качан текшербеген волатилдик модели — жөн гана кооздук.
Ливеридж эффекти жана крипто эмне үчүн бир аз тартиптсиз
Акцияларда бул асимметриянын аты да, окуясы да бар. Ливеридж эффекти (Black, 1976): компаниянын акциясы түшкөндө, анын карызынын капиталга карата катышы өсөт, капитал механикалык түрдө тобокелдүү болуп, волатилдик көтөрүлөт. Жаман кабар келечектеги волатилдикти бирдей өлчөмдөгү жакшы кабарга караганда көбүрөөк көтөрөт. Эмпирикалык жактан бул акция волатилдиги адабиятындагы эң туруктуу стилдешкен фактылардын бири.
Криптодо корпоративдик мааниде капитал да, баланс ливериджи да жок, бирок ливеридж эффектине окшош асимметрия дагы эле көбүнчө байкалат — аны бухгалтериялык эсеп эмес, мажбурлап делевериджлөө (forced deleveraging) кыймылга келтирет. BTC катуу түшкөндө, ашыкча камсыздалган зайымдар жоюулат (liquidation), perpetual-фьючерстердин лонг позициялары мажбурлап жабылат, фандинг оодарылат, ал эми каскад волатилдикти азыктандырат. Демек, механизм башка, бирок белги көбүнчө акциялар менен дал келет: төмөн кыймылдар волатилдикти көбүрөөк секирет.
Маанилуу эскертүү: крипто тартиптсизирээк, ошондуктан асимметрияны мыйзам эмес, эмпирикалык суроо катары кароо керек. Күчтүү жогору кыймылдар — шорт-сквиздер, ливериджге негизделген өсүү (melt-up), ETF-жактыруу гэпи — да реалдашкан волатилдикти секире алат. Активге жана тандалма терезесине жараша, бааланган асимметрия күчтүү, начар же кээде "туура эмес" белгиде болушу мүмкүн. Бул пост талап кылган тартип: асимметриялуу моделди баалап, асимметрия параметри статистикалык мааниге ээ жана күтүлгөн багытта экенин карап, кошумча параметр өз ордун акташы шартында гана аны сакта. Акция окуясы автоматтык түрдө өтөт деп болжолдобо; аны текшер.
Моделдеп жаткандан мурун асимметрияны текшерүү
Жогорудагы кириш сөз "асимметрияны эмпирикалык деп кара" дейт — демек, асимметриялуу моделди баалоодон мурун, асимметриянын жалпы эле бар-жогуна арзан формалдуу тест жүргүз. Engle-Ng белги-кыйшыгуу (sign-bias) тесттери (1993) дал ушуну жасайт. Адегенде симметриялуу GARCH(1,1) моделин баалап, анын стандартташтырылган калдыктарынын квадратын алып, аларды мурунку шоктун белгиси менен өлчөмүнүн индикаторлоруна регрессиялоо жүргүз:
мында жана . Логика: эгер симметриялуу модель баарын мурунтан кармап калган болсо, кечээки шоктун белгиси менен өлчөмү бүгүнкү квадраттык калдыкты болжолдобошу керек, демек . Жеке -тесттер — булар белги-кыйшыгуу (), терс-өлчөм-кыйшыгуу () жана оң-өлчөм-кыйшыгуу () тесттери; үчөөнө тең биргелешкен -тест — жалпы (omnibus) тест. Мааниге ээ же терс шокторду симметриялуу модель системалуу түрдө туура эмес баалап жатканын айтат — бул GJR же EGARCH жардам берерин билдирген белги.
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"])
Эгер биргелешкен -тест мааниге ээ эмес болсо, симметриялуу бойдон калып, эки параметр үнөмдөөгө эмпирикалык укугуңуз бар. Эгер ал мааниге ээ болсо — BTC/ETH үчүн жалпы натыйжа — GJR/EGARCH ге таза абийир менен өт, себеби сиз ызы-чууну кубалабай, чыныгы өзгөчөлүктү моделдеп жатканыңызды билесиз. Бул — кириш сөз талап кылган эмпирикалык тартип: акциялардын ливеридж окуясын болжолдобо, аны текшер.
GJR-GARCH: босоголук мүчө аркылуу асимметрия
Glosten-Jagannathan-Runkle модели (1993) — кээде TGARCH же threshold GARCH деп аталат — жаман кабар менен жакшы кабардын ар башка таасирге ээ болушуна мүмкүндүк берген GARCH(1,1) моделине карата мүмкүн болгон эң кичине түзөтүү. 1-белуктон симметриялуу шарттуу дисперсиянын рекурсиясын эстеп көрөлү:
GJR бир босоголук мүчө кошот: терс шоктон кийин гана күйгүзүлгөн кошумча дисперсия дозасы.
мында — индикатор
Рекурсияны учурлар боюнча оку. Оң шоктон кийин (), индикатор нөлгө барабар жана квадраттык шоктун кийинки мезгилдин дисперсиясына тийгизген таасири жөн гана . Терс шоктон кийин, индикатор бирге барабар жана таасир . параметри — бир эле санда камтылган бүтүндөй асимметрия окуясы:
- : терс шоктор волатилдикти бирдей өлчөмдөгү оң шокторго караганда көбүрөөк көтөрөт. Бул — ливеридж эффекти жана BTC/ETH те көбүнчө таба турган нерсе.
- : модель симметриялуу GARCH(1,1) ге кайра кыйрайт. Демек, боюнча ыктымалдуулук катышынын (likelihood-ratio) же -тести — асимметриянын жалпы эле бар-жогун түз текшерет.
- : оң шоктор волатилдикти көбүрөөк көтөрөт — сейрек кездешкен крипто melt-up режими. Сейрек, бирок аны алдын ала четке какпа.
Оңдугу жана стационардуулук
дагы эле кошуу жолу менен курулгандыктан, ар бир мүчө терс эмес бойдон калышы керек. Оңдуктун жетиштүү шарттары:
болгон учурда өзү терс болушуна уруксат берилерин эске алыңыз, ошондуктан жаман-кабардан-кийинки таасир эч качан терс болбойт.
Ковариациялык стационардуулук үчүн инновациялары нөлдүн айланасында симметриялуу бөлүштүрүлүш менен стандартташтырылган деп болжолдойбуз, ошондо жана индикатор орточо алганда салым кошот. Стационардуулук шарты мындай болот:
Шарттуу эмес (узак мөөнөттүү) дисперсия анда:
Бул — 1-белуктогу натыйжасынын GJR аналогу, мында кошумча мүчө ливеридж жарым-ажыроосунун орточо салымын эсепке алат. Эгер сиздин инновация бөлүштүрүлүшүңүз кыйшайган болсо (төмөндөгү Хансендин skew- и), ордуна болушунун чыныгы ыктымалдуулугу коюлат, бирок кабарланган туруктуулук (persistence) үчүн — стандарттуу шилтеме.
EGARCH: лог-дисперсияны моделдөө, оңдук чектөөлөрсүз
GJR сизди дисперсия-оңдугунун куугунтугунда кармайт: параметрлердин ар бир айкалышы теңсиздик чектөөлөрүнө текшерилиши керек, бул оптимизациялоо учурунда жагымсыз, ал эми аунама кайра баалоо учурунда терезе кээде мүмкүн эмес аймакка кирип кеткенде андан да начар. Нельсондун Экспоненциалдуу GARCH (1991) шарттуу дисперсиянын логарифмин моделдеп, буга такыр жол бербейт. каалаган чыныгы сан болушу мүмкүн болгондуктан, параметрлер кандай болбосун автоматтык түрдө оң. Эч кандай чектөө коюунун кереги жок.
Рекурсияны стандартташтырылган инновация аркылуу жазабыз:
Шокту эки мүчө көтөрөт жана аларды бөлүү — бүтүндөй идея:
- Өлчөм мүчөсү шоктун белгиси алынып салынган чоңдугуна жооп берет. ди кемитүү аны борборлоп, орточо-чоңдуктагы шок эч нерсе кошпогудай кылат. Стандарттуу нормалдуу үчүн ; стандартташтырылган Student- үчүн күтүлгөн абсолюттук маани кичине жана ге көз каранды, бирок
archмуну ичинен иштетет. - Белги мүчөсү — асимметрия. Ал белгиленген инновацияга сызыктуу, ошондуктан терс ди оң шоктон карама-каршы багытка түртөт.
Белги келишими маанилуу жана адамдарды жаңылтат. Бул параметрлештирүүдө ливеридж эффекти (жаман кабар волатилдикти көтөрөт) ге туура келет: терс шок анда кылып, лог-дисперсияны көбөйтөт. Бул — GJR дин инен карама-каршы белги. Ар дайым болжолдоонун ордуна моделдин өз документациясынан келишимди оку; arch EGARCH ты өз белгиси менен кабарлайт, ошондуктан биз аны эстутумга ишенбей, төмөндө кабар таасиринин ийри сызыгы менен текшеребиз.
Логарифмдерде баары кошуу түрүндө болгондуктан, EGARCH(1,1) дин туруктуулугу тагы жалгыз авторегрессивдик коэффициент менен башкарылат; стационардуулук жалаң ди талап кылат. Бул — GJR теңсиздигинен алда канча тазараак шарт жана сиз аны аунама терезелерге кайра баалаганда чыныгы практикалык артыкчылык.
Айтууга арзыган нюанс: EGARCH тин шокторго реакциясы инновацияга экспоненциалдуу (сиз аягында экспоненттейсиз), ал эми GJR — квадраттуу. Ошондуктан EGARCH чоң шокторго катуураак реакция кылат — куйрук окуялары эң маанилуу болгон криптодо бул артыкчылык, бирок ошол эле учурда EGARCH кээде четтеги күндөн кийин ынандыруусуз чоң дисперсия болжолдорун чыгарышы мүмкүн болгон себеп. Экөө тең универсалдуу артык эмес; сиз тандоону үлгүдөн тышкаркы дал келүү жана тобокелдик бэктесттери боюнча жасайсыз, бул — бүтүндөй сериянын максаты.
Кабар таасиринин ийри сызыгы
Симметриялуу GARCH, GJR жана EGARCH тин ортосундагы айырманы көрүүнүн эң таза жолу — кабар таасиринин ийри сызыгы (news impact curve, Engle and Ng, 1993): ди анын узак мөөнөттүү деңгээлинде туруктуу кармап, кийинки мезгилдин шарттуу дисперсиясы ди акыркы шок дин функциясы катары тартуу. Ал "ушул өлчөмдөгү жана белгидеги шок берилсе, модель эртеңки волатилдикти канчалык көтөрөт?" деген суроого жооп берет.
- Симметриялуу GARCH нөлдө борборлошкон симметриялуу параболаны чыгарат. жана шок бирдей бийиктикке түшөт. Дал ушул биз оңдоп жаткан кемчилик.
- GJR нөлдө сынык жери бар параболаны чыгарат — болгондо оң жагына (терс шокторго) караганда сол жагы тик. Эки жарымдын ийрилиги тиешелүү түрдө жана .
- EGARCH асимметриялуу, экспоненциалдуу V-форманы чыгарат: мүчөсүнөн улам эки кол ар башка кыялыкка ээ жана акыркы экспоненттөөдөн улам бүтүндөй нерсе параболага караганда тезирээк жогору ийилет.
Кийинчерээк, ишке ашыруу бөлүмүндө, биз үчөөнү тең бааланган параметрлерден тартабыз — асимметрия эмне алып келерин билдирүүдө бул эң пайдалуу жалгыз диагностика.
Оор куйруктар: Student-t жана Skewed-t инновациялары
Асимметрия моделдин шокторлордун белгисине карата реакциясын оңдойт. Ал шокторлордун өздөрүнүн бөлүштүрүлүшү тууралуу эч нерсе кылбайт. Жөнөкөй GARCH деп болжолдойт, ал болжол крипто үчүн дээрлик дайыма туура эмес. GARCH волатилдиктин кластерленуусүн алып салгандан кийин да, стандартташтырылган калдыктар ашыкча эксцессти (excess kurtosis) сактап калат — алар оор куйруктуу. Бөлүштүрүлүштүн ийиндерин баалаган Гаусс ыктымалдуулугу -, - же -сигмалуу стандартташтырылган күн чындыгында канчалык көп жолу кездешерин баасын кемитет.
Тобокелдик үчүн кесепети түз. Гаусс 99% VaR квантилин колдонот, ошондуктан ал болжолдойт. Эгер чыныгы стандартташтырылган бөлүштүрүлүш, айталы, эркиндик даражасы менен Student- болсо, чыныгы 1% квантили га жакын — ошол ишеним деңгээлинде Гаусс VaR болжамдуу түрдө болжол менен оптимисттик. Сиз аны 1% дан алда канча көп жолу бузуп, "мүмкүн эмес" күндөр менен системалуу түрдө таң калаcыз. Бул крипто гана кызыктыгы эмес; Bollerslev (1987) -GARCH ты дал акция менен FX калдыктары ошол эле оор куйруктарды көрсөткөндүктөн киргизген. Крипто — ошол эле маселенин катуураак версиясы.
Стандартташтырылган Student-t
Student- тыгыздыгынын куйруктун калыңдыгын башкарган эркиндик даражасынын параметри бар: кичине оор куйрукту, ал эми болгондо Гаусска айланарын билдирет. Кыйынчылык — түптүз бөлүштүрүлүшүнүн дисперсиясы , ошондуктан аны инновация катары колдонуудан мурун бирдик дисперсияга стандартташтыруу керек — болбосо GARCH рекурсиясындагы "" чындыгында шарттуу орточо квадраттык четтөө болбойт.
Бирдик дисперсиялуу стандартташтырылган Student- инновациясынын тыгыздыгы мындай:
Ичиндеги ге көңүл буруңуз — бул стандартташтыруу, болушу үчүн масштабды кайра өзгөртүү. GARCH шарттуу дисперсиясы жана берилгендеги бир байкоонун лог-ыктымалдуулугунун салымы:
мүчөсү — тен ге өтүүнүн Якобиани — 1-белуктогу Гаусс GARCH ыктымалдуулугунда көргөн ошол эле мүчө. Жалаң форма гана өзгөрөт. GARCH параметрлери менен боюнча биргелешип ти максималдаштыруу — сиз dist='t' берген учурда arch дал ушуну жасайт.
Бааланган өзү маалыматтуу. Күндөлүк BTC/ETH кирешелери үчүн адатта диапазонуна түшөсүз — оор куйруктар, бирок акырлуу дисперсия менен (ал ни талап кылат) жана көбүнчө акырлуу эксцесс менен (ал тү талап кылат). Эгер сиздин бааланган 4 төн төмөн түшсө, моделде выборкалык эксцесс техникалык жактан чексиз экенин жана кээ бир баалагычтар туруксуз болорун эске алыңыз; бул четтегилерди жана маалымат сапатын кылдаттык менен кароого белги.
Хансендин Skewed-t и
Student- оор куйруктуу, бирок дагы эле симметриялуу — сол жана оң куйруктар бирдей оор. Крипто киреше калдыктары көбүнчө дагы кыйшайган: сол куйрук (кыйроолор) оң куйруктан оор. Хансендин skewed- и (1994) стандартташтырылган ни менен катар кыйшыктык параметри менен жалпылайт:
мында , жана туруктуулары ар бир жарактуу үчүн нөлдүк орточо жана бирдик дисперсияга ээ болушу үчүн тандалган. Бөлүштүрүлүш те бөлүнүп, массанын көбүн бир куйрукка ийүү үчүн ар бир бөлүктө ар башка масштабдоону колдонот.
Чечмелөө: сол жагы кыйшайган бөлүштүрүлүштү берет (оор түшүү жагы), бул крипто үчүн адаттагы натыйжа жана ливеридж эффекти менен жупташуусун күтө турган нерсе. симметриялуу Student- ни калыбына келтирет, ошондуктан тести кыйшыктык мүчөсү бирдеме алып келерин же келбешин айтат. arch те бул — dist='skewt', ал менен ди тең баалайт. Пайдасы — сол куйрук квантили оң куйрук квантилинен чынчыл түрдө оорураак болгон VaR — жеңгиңиз келген жоготуулар асимметриялуу болгондо дал сиз каалаган нерсе. Бул позиция натыйжаларындагы жоготуу менен пайданын асимметриясы менен түз байланышат: ке түшүү калыбына келүү үчүн дан көбүрөөгүн талап кылат, ошондуктан сол куйрукту туура эмес моделдөө оң куйрукту туура эмес моделдөөгө караганда кымбатыраак.
Python ишке ашыруусу
Эми биз мунун баарын arch китепканасы менен баалайбыз. Орнотуу 1-белукту чагылдырат: күндөлүк кирешелерди тартып, сандык шарттуулук үчүн 100 гө масштабдап (кирешелер болгондо GARCH оптимизаторлору начар иштейт) жана туруктуу орточо (constant mean) менен баала. Эгер сиз күн ичиндеги (intraday) же башка орточо моделин кааласаңыз, механизм бирдей.
Орнотуу жана маалымат
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}%")
Крипто 24/7 соодалангандыктан, биз 252 эмес, 365 менен жылдыкка келтиребиз — крипто Шарпын же волатилдигин акция биржасынын сандары менен салыштырганда кайталанып туруучу кичине чаташуу булагы.
Төрт моделди баалоо
arch теги схема: p=1, q=1 менен vol='Garch' — симметриялуу GARCH; o=1 кошуу GJR босоголук мүчөсүн күйгүзөт; vol='EGARCH' лог-дисперсия моделине которот. Инновация бөлүштүрүлүшү dist менен коюлат: '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' үчүн o аргументи асимметриялуу () мүчөнү, ал эми p/q өлчөм жана лаг мүчөлөрүн башкарат; o=1, p=1, q=1 — стандарттуу EGARCH(1,1). Бир кыйынчылык: arch теги EGARCH тин параметр аттары ошол эле тамгалар, бирок асимметрия мүчөсүндөгү белги келишими — Нельсондуку, ошондуктан терс баа — ливеридж эффекти. Биз муну эстутумдан эмес, кабар таасиринин ийри сызыгынан текшеребиз.
GJR баасын окуу
GJR- параметр таблицасы болжол менен мындай көрүнөт (иллюстративдик маанилер, кабарланган эксперимент эмес — өз маалыматыңызга кайра баала):
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
Аны кантип окуу керек:
- 3 төн жогору -статистикасы менен
gamma[1] = 0.091— статистикалык мааниге ээ ливеридж эффекти. Терс шоктон кийин квадраттык-шок таасири ; оң шоктон кийин ал жөн гана . Жаман кабар бул моделдин волатилдигин бирдей өлчөмдөгү жакшы кабарга караганда болжол менен көбүрөөк жылдырат. nu = 4.3оор куйруктарды ырастайт — Гаусстан () алыс жана төртүнчү момент араң акырлуу болгудай төмөн. Бул серияга Гаусс VaR катуу оптимисттик болмок.- Туруктуулук — күндөлүк крипто үчүн адаттагыдай өтө жогору: шоктор жай өчүп, волатилдик күчтүү кластерленген.
Текшериле турган эң маанилуу жалгыз сап — сабы. Эгер анын -мааниси чоң болсо, асимметриялуу мүчө бул активте жана терезеде өз ордун акташбайт, ошондуктан жөнөкөйрөөк симметриялуу моделди артык көрүшүңүз керек. Бул — кооздук эмес, модель тандоо тартиби — бул тууралуу төмөндө көбүрөөк.
Моделдерди маалымат критерийлери боюнча салыштыруу
Параметр кошкондо лог-ыктымалдуулук дайыма жакшырат, ошондуктан жалгыз лог-ыктымалдуулук боюнча тандай албайсыз. Параметр санын жазалаган AIC/BIC ти колдонуңуз (BIC агрессивдүүрөөк):
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))
Практикалык чечмелөө эрежелери: негизги чекиттен ~6 дан ашык BIC жакшырышы — кошумча структура чыныгы экенине күчтүү далил; 1–2 айырма — ызы-чуу. Эгер GJR-t GARCH-N ди 30+ BIC пунктка утса, бирок GJR-skewt GJR-t ни болгону 1 ге утса, ни кармап, кыйшыктыкты таштагыла — кыйшыктык параметри бул маалыматта өзүн акташбайт. AIC/BIC ти үлгүдөн тышкаркы валидациянын алмаштыруучусу катары окубаңыз; алар татаалдыкка карата тууралоо менен үлгү ичиндеги дал келүүнү сыйлайт, бул зарыл, бирок жетишсиз. Чыныгы тест — VaR бэктест жана акыр аягында алдыга басуу (walk-forward) баалоо.
Кабар таасиринин ийри сызыгын тартуу
Бул — пайда алып келген график — ал асимметрияны көрүнөө кылып, EGARCH белги келишимин текшерет.
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()
Муну иштеткениңизде, симметриялуу GARCH-N ийри сызыгы нөлдө борборлошкон таза парабола болот — жана шок бирдей дисперсия берет. GJR-t — башталгычта сынык жери бар, сол колу бийигирээк парабола. EGARCH-t — экспоненциалдуу V жана эгер анын сол колу оң колунан жогору турса, сиз ливеридж эффектин жана белги келишимин бир көз ирмемде ырастадыңыз. Эгер EGARCH тин сол колу оң колдун астында турса, же оң бааланган (жогору-волатилдик режими), же сизде белги тескери — график сизге болжолсуз эле кайсынысы экенин айтат.
Төрт моделди катарлаш салыштыруу
Тобокелдикке өтөрдөн мурун, төрт моделди бири-биринин жанына коюп кароо пайдалуу. Ар бир сап — дизайн чечими, ал эми мамычалар ошол чечим эмнеге туш кылат жана эмне алып келерин көрсөтөт.
| Касиет | GARCH-N | GJR-t | EGARCH-t | GJR-skewt |
|---|---|---|---|---|
| Асимметрия (шоктун белгиси) | жок | босоголук | белгиленген | босоголук |
| Инновациянын куйрук формасы | Гаусс | Student- | Student- | skewed- |
| Инновациядагы кыйшыктык | жок | жок | жок | ооба () |
| Оңдук чектөөлөрү | ооба | ооба () | жок (лог форма) | ооба |
| Стационардуулук шарты | ||||
| Негизге карата кошумча параметрлер | 0 | |||
| Крипто үчүн адаттагы вердикт | VaR бэктесттен өтпөйт | күчтүү, туруктуу | күчтүү, туруктуу | GJR-t тен араң артык |
Ичине сиңдире турган үлгү: 1-мамычадан 2-мамычага секирүү — асимметрияны да, оор куйруктарды да бир убакта кошуу — тобокелдик калибрлөө жакшыруусунун дээрлик баары ошол жерде. Андан кийинки такталуулар (EGARCH тин функционалдык формасы, кыйшыктык мүчөсү) чыныгы, бирок экинчи даражадагы жана көп крипто серияларында ызы-чуунун ичинде. Моделдөө бюджетиңизди биринчи секирүүгө жумшап, калгандарына күмөн менен кара.
Тобокелдик колдонмосу: VaR жана Expected Shortfall
Кооздукка бай волатилдик моделин баалоо чечимди жакшыртса гана арзыйт. Жакшырта турган эң таза чечим — бир кадамдык куйрук-тобокелдиги болжолу: эртең канчалык жаман болушу мүмкүн? Биз бир күн алдыдагы Value-at-Risk жана Expected Shortfall ди (башкача айтканда Conditional VaR, аны HRP/CVaR портфель түтүгү өз максаты катары колдонот) бааланган GARCH-/skew- болжолунан түз чыгарабыз.
Шарттуу бөлүштүрүлүштөн VaR ге
GARCH механизми шарттуу орточо жана шарттуу орточо квадраттык четтөө дин бир кадамдык болжолун берет. Киреше катары моделденет, мында бааланган стандартташтырылган бөлүштүрүлүштөн (Гаусс, же skew-) алынат. Демек, кирешенин -квантили — стандартташтырылган бөлүштүрүлүштүн -квантилинин жөн гана аффиндик өзгөртүүсү:
мында — стандартташтырылган инновациянын квантили (тескери CDF), ал эми алдыңкы минус белгиси VaR оң жоготуу саны деген келишимге баш ийет. 99% VaR үчүн жана сиз ди коесуз. /skew- тин бүтүндөй пайдасы дал ушул жерде көрүнөт: Гаусс дан терсирээк, ошондуктан VaR чынчыл түрдө чоңураак.
Expected Shortfall
VaR сизге босогону айтат; бузулуу болгондо ал канчалык жаман экени тууралуу эч нерсе айтпайт. Expected Shortfall — VaR ды ашкан шартында орточо жоготуу — айтат, жана ал когеренттуу (subadditive), ошондуктан ал CVaR оптимизациясынын артындагы тобокелдик өлчөмү жана Базель ошого өткөндүн себеби. Орун-масштаб (location-scale) модели үчүн:
Шарттуу-куйрук-күтүмү мүчөсү стандарттуу бөлүштүрүлүштөр үчүн жабык формаларга ээ. Гаусс үчүн, менен,
мында — стандарттуу нормалдуу тыгыздык. эркиндик даражасы менен жана (стандартташтырылган масштабда) менен стандартташтырылган Student- үчүн куйрук күтүмү:
мында — стандартташтырылган тыгыздыгы. Expected Shortfall Гаусстукунан VaR дан көбүрөөк ашат, анткени куйругу жалаң алысыраак эмес — ал семизирээк, ошондуктан босогодон ары кеткен орточо жоготуу пропорциялуу эмес чоң. Ошол кошумча ажырым — Гаусс модели сизден жашырган сан.
Бааланган arch моделинен VaR жана ES эсептөө
arch бөлүштүрүлүштөрү ppf (квантиль) методун ачат, ошондуктан биз стандартташтырылган квантилди түз алып, эч нерсени кайра чыгарбайбыз. ES үчүн биз сандык интегралдайбыз, бул туруктуу жана normal/t/skewt боюнча бир калыпта иштейт.
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 мамычасы — бир санда бүтүндөй окуя. Гаусс модели ти колдонот; менен кө жакын нерсени колдонот; skew- сол квантилди дагы алысыраак түртүп, оңун ичине тартат. Бирдей , олуттуу чоңураак VaR. Эгер сиз криптодо Гаусс VaR иштетип келсеңиз, бул — сиз тынч сиңирип келген ажырым.
Бир кадам менен көп кадамдын салыштырмасы: эскертүү
Жогорудагынын баары — бир күн алдыдагы болжол жана GARCH VaR эң таза болгон жер ошол. Узунураак горизонттор эки нерсени татаалдаштырат жана экстраполяциялоодон мурун аларды билишиңиз керек.
Биринчиден, дисперсия болжолдору орточого кайтат (mean-revert). Стационардуу GARCH тан -кадам алдыдагы шарттуу дисперсия өскөн сайын шарттуу эмес деңгээл ке жакындайт, ал эми жыйынды -күндүк дисперсия — ар кадамдык болжолдордун суммасы — волатилдик өз узак мөөнөттүү орточосунда болбосо, ал эмес. Жөнөкөй "убакыттын-квадраттык-тамыры" масштабдоосу бул орточого кайтууну этибарга албай, дал шоктон кийин — сан сизге эң керек болгон учурда — туура эмес. Моделдин өз көп кадамдык дисперсия жолун колдонуңуз.
Экинчиден, көп күндүк кирешенин бөлүштүрүлүшү бир күндүк инновация менен бирдей формада эмес. Бир нече -бөлүштүрүлгөн күндөлүк шокторду (сызыктуу эмес GARCH рекурсиясы аркылуу) кошуу -күндүк горизонтто бөлүштүрүлүшүн бербейт; таза жабык форма жок. Көп күндүк VaR үчүн чынчыл жол — симуляция: бааланган стандартташтырылган бөлүштүрүлүштөн инновация жолдорун тартып, аларды GARCH рекурсиясы аркылуу өткөрүп симуляцияланган киреше жолдорун алып, -күндүк кирешелерге бириктирип, эмпирикалык квантилди окуу. Бул ошондой эле эч кандай аналитикалык көп-горизонттуу квантиль жок болгон skew- учурун жаратылышынан иштетет. Бул посттогу бир кадамдык аналитикалык формулалар так; каалаган көп кадамдык кыска жолду валидацияланышы керек болгон жакындатуу катары кара.
VaR ды бэктестөө: Купиек жана Кристофферсен
VaR болжолу — ыктымалдуулук доосу: "жоготуу бул босогону күндөрдүн бөлүгүндө гана ашат." Сиз аны алдыга басуу баалоосу боюнча бузууларды (реалдашкан жоготуу болжолдонгон VaR ды ашкан күндөр) санап, эки нерсени текшерүү менен сынайсыз. Биринчиден, бузуу ылдамдыгы туурабы? Экинчиден, бузуулар көз каранды эмеспи, же алар кластерленеби (бул модель дал маанилуу учурда, волатилдик секирүүлөрүндө иштебей калат дегенди билдирет)?
бузуу ырааттуулугу, күндөгү бузуулардын саны жана байкалган ылдамдык болсун. Максаттуу ылдамдык .
Купиектин шарттуу эмес камтуу тести (1995) ди ыктымалдуулук катышы аркылуу текшерет:
Кристофферсендин көз карандысыздык тести (1998) бүгүнкү бузуу кечээки бузуу менен болжолдонбошун текшерет. бузуу ырааттуулугундагы абалынан абалына өтүүлөрдү санасын, , жана . Анда:
Экөө шарттуу камтуу тестине бириге тобокелдик: , ал бир убакта туура ылдамдыкты да, көз карандысыздыкты да текшерет. Модель Купиекти өтүшү (бузуулардын саны туура) мүмкүн, бирок Кристофферсенди өтпөшү (алардын баары бир кыйроо жумасына топтолгон) мүмкүн — бул сиз эң кармагыңыз келген иштебей калуу режими, себеби кластерленген бузуулар — эсепти жарган нерсе.
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 киргизүүлөрүн чынчыл түрдө жаратуу үчүн сиз кеңейүүчү же аунама терезеде кайра баалап (же жок дегенде кайра болжолдоп), ар бир үлгүдөн тышкаркы күн үчүн бир кадам алдыдагы VaR ды жазып, аны ошол күндүн реалдашкан жоготуусу менен салыштырасыз. VaR ды эч качан үлгү ичинде бэктестебеңиз — болжолдоо суралып жаткан ошол эле кыйроодо бааланган модель чындыгынан алда канча жакшы көрүнөт. Бул — бэктест-лайв паритети менен бирдей тартип: баалоо чечим кабыл алынган учурда жеткиликтуу маалыматты гана колдонушу керек.
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))
Окуу: жакшы калибрленген 99% VaR 1% ке жакын байкалган ылдамдыкты, мааниге ээ эмес Купиекти (чоң p_uc) жана мааниге ээ эмес Кристофферсенди (чоң p_ind) көрсөтөт — кластерленуу жок. Практикада криптодогу чынчыл натыйжа — GARCH-Normal Купиекти өтпөйт (өтө көп бузуу, p_uc кичине), ал эми GJR- же EGARCH- өтөт же ага жакындайт. Ошол карама-каршылык — гипотеза тести түрүндө берилген бул посттун бүтүндөй аргументи. Эгер модели дагы кластерленген бузууларды көрсөтсө (кичине p_ind), сиздин волатилдик динамикаңыз дагы эле туура эмес спецификацияланган — көбүнчө сизге узунураак эстутум (component/FIGARCH) же режим катмары керек экендигинин белгиси, бул HMM менен режим аныктоо менен байланышат.
Моделдерди жалаң өттү/өтпөдү эмес, куйрук жоготуусу боюнча иреттөө
Купиек менен Кристофферсен сизге бинардык вердикт берет — модель четке кагылат же кагылбайт. Бул зарыл, бирок орой: эки модель тең "өтүшү" мүмкүн, ал эми бирөө байкаларлык курчураак. Атаандаш VaR болжолдорун иреттөө үчүн, аларды квантиль үчүн так ырааттуу жоготуу функциясы — пинбол (квантиль) жоготуусу менен баалагыла:
мында — (белгиленген) VaR квантили, ал эми — реалдашкан киреше. Үлгүдөн тышкаркы күндөр боюнча орточолонгондо, төмөнүрөөк орточо пинбол жоготуусу жакшыраак калибрленген да, курчураак да квантилди билдирет; жоготуу -квантили үчүн ырааттуу болгондуктан, аны минималдаштыруу моделди жалкоо түрдө кенен болгону үчүн сыйлабайт. Эки моделди формалдуу салыштыруу үчүн, алардын ар күндүк жоготуу айырмаларын Diebold-Mariano тестине бергиле.
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))
Атайын Expected Shortfall үчүн, ES өз алдынча эликтабелдүү (elicitable) эмес экенин белгиле (минимизатору жалаң ES болгон жоготуу функциясы жок), бул чыныгы теориялык татаалдык: сиз ES ди VaR менен биргелешип Fissler-Ziggel упай коюу эрежелери менен баалайсыз, же орточо бузуу чоңдугу моделдин болжолдогон ES ине дал келерин текшерген жөнөкөйрөөк практикага кайтасыз. Одоно, бирок пайдалуу ES текшерүүсү: VaR-бузуу күндөрүнүн ичинде, ошол күндөрдөгү орточо реалдашкан жоготууну орточо болжол ES менен салыштыр — алар жакын болушу керек.
Регулятордук алкак — Базель светофору (traffic-light) ыкмасы: 250 соода күнүнүн ичинде 99% VaR дын 0-4 бузуусу "жашыл" (кабыл алынат), 5-9 "сары" (текшерүү), 10+ "кызыл" (модель четке кагылып, капитал көбөйткүчтөрү өсөт). Ал — Купиектин орой бир тууганы, бирок ал тобокелдик комитеттери чындыгында сүйлөгөн тил жана LR статистикалары менен катар кабарлоого арзыйт.
Практикалык эске алуулар
Кошумча параметрлер өзүн акташбаган учурда
Чынчыл жол — татаалдыкка карата күмөндөнүү. Сиз кошкон ар бир параметр — оптимизатор ашыкча дал келте (overfit) ала турган түйүн, ал эми асимметриялуу оор куйруктуу GARCH тин бир нечеси бар. Конкреттуу көрсөтмө:
- Аз ликвиддүү же кыска выборкалар. Бир нече жүз күндөлүк байкоо менен жана дагы стандарттуу ката чоң болуп, сиз выборкалык ызы-чуу болгон асимметрияларды "аныктайсыз". Жаңы же жука альткойинде симметриялуу GARCH- көбүнчө маалымат колдой ала турган эң татаал модель. 200 күнгө skew- EGARCH ты баалоо — өзүңүздү алдоо.
- Кыйшыктык мүчөсү өз наркын көп учурда актабайт. Практикада Normal → өтүү — чоң, ишенимдуу жакшыруу (оор куйруктар чыныгы жана күчтүү). → skew- өтүү көп учурда араң — BIC пайдасы 1 же 2, кээде терс. Кыйшыктыкты маалымат аны даана суранган учурда гана кош.
- EGARCH менен GJR күндөлүк маалыматта көбүнчө тең. Алар бирдей сапаттык окуяны ар башка функционалдык формада коддойт. Кайсынысы үлгү ичинде жагымдуураак лог-ыктымалдуулукка ээ экени боюнча эмес, үлгүдөн тышкаркы VaR бэктест боюнча танда.
- Жогорку жыштык жоопту өзгөртөт. Сааттык же мүнөттүк барларда, күн ичиндеги сезондуулук жана микроструктура үстөмдүк кылат, ал эми жөнөкөй күндөлүк стилдеги GARCH асимметрияга карабай туура эмес спецификацияланган. Башка маселе, башка курал.
Бул — туруктуу артыкчылыгы жок чынчыл баалоо менен бирдей сабак: үлгүдөн тышкаркы тесттен өтпөгөн татаалыраак модель — ал алмаштырган жөнөкөй моделден начар, себеби ал тактыктын жалган элесин алып жүрөт. Терс натыйжаны — "кыйшыктык ETH те жардам берген жок" — чыныгы жыйынтык катары кабарлап, үлгү ичиндеги AIC ти эмес, алдыга басуу оптимизациясын арбитр катары колдон.
Булар — калгандардын баары негизделген маргиналдар
Мындагы моделдер акыркы чекит эмес; алар биргелешкен-тобокелдик механизми үчүн бир өлчөмдүү (univariate) куруу блогу. Крипто биргелешкен тобокелдиги үчүн копула моделдери посту вин-копуланы баалоодон мурун GARCH-EVT маргиналдары катары дал ушул EGARCH/GJR- ти колдонот — сиз ар бир активке асимметриялуу оор куйруктуу GARCH баалап, стандартташтырылган калдыктарды чыгарып, ошондон кийин гана активдер аралык көз карандылыкты моделдейсиз. Эгер сиздин маргиналыңыз симметриялуу Гаусс GARCH болсо, көз карандылык модели канчалык жакшы болбосун, копула анын куйрук каталарын мурастайт. Таштанды маргиналдар — таштанды биргелешкен VaR.
Көп өлчөмдүү волатилдик маселеси үчүн — ар-актив дисперсиялары эмес, убакытта өзгөрүүчү корреляциялар — 3-белук, DCC-GARCH ты карагыла, ал бул бир өлчөмдүү баалоолордун үстүнө динамикалык-корреляция моделин катмарлайт. Ал эми волатилдик болжолун позиция өлчөмдөө жана соода бэктестине айландыруу үчүн, волатилдикке багыттоо (volatility targeting) боюнча 4-белук экспозицияны болжолдонгон тобокелдикке тескери масштабдоо үчүн дал ушул моделдердин болжолдорун колдонот.
Бөлүштүрүлүштөн эркин альтернатива
Тобокелдик бөлүмүндөгү баары параметрдик болжолго негизделет: стандартташтырылган калдыктар же skew- ге баш ийет. Бул болжол текшериле турган жана көбүнчө акылга сыярлык, бирок ал иштебей калышы мүмкүн. Эгер сиз куйрук формасына такыр милдеттениш каалабасаңыз, конформдук болжолдоо (conformal prediction) выборкасы акырлуу камтуу кепилдиктери менен бөлүштүрүлүштөн эркин болжолдоо интервалдарын берет — инновация бөлүштүрүлүшү тууралуу эч дооcуз чыныгы башка философия. Эки ыкма толуктоочу: параметрдик GARCH- сизге толук шарттуу тыгыздык берет (жана ошентип ES, аны конформдук интервалдар түз бербейт), ал эми конформдук сиздин тыгыздык туура эмес болгондо да сакталган камтууну берет. Продакшнда экөөнү тең кайчылаш текшерүү катары колдонуу — арзан камсыздандыруу.
Сандык жана иш процессинин гигиенасы
- Кирешелерди 100 гө масштабда. GARCH оптимизаторлору чийки бөлчөк кирешелерге караганда пайыздык кирешелерде алда канча ишенимдуу конвергенттешет. Эгер бөлчөк бирдиктерде кабарласаңыз, VaR/ES ти кайра масштабдоону унутпа.
- Туруктуулукту байка. Эгер ~0.999 дан жогору бааланса, модель дээрлик интегралдашкан (IGARCH-сымал); болжолдор орточого өтө жай кайтат жана узак-горизонттуу дисперсия болжолдору ишенимсиз болот. Милдеттуу түрдө туура эмес эмес, бирок аны белгиле.
- Аунама терезелердеги конвергенция каталары. EGARCH тин лог формасы оңдук чектөөлөрүнөн качат, бирок ал дагы эле патологиялык терезеде конвергенттешпей калышы мүмкүн.
fit()ти try/except менен ороп, лайв бэктестти кыйратуунун ордуна мурунку терезенин параметрлерине кайт. - Орточо модели. Биз бүт бою туруктуу орточону колдондук. Күндөлүк криптонун көбү үчүн шарттуу орточо нөлгө жакын жана волатилдик тарабынан басылат; чыныгы себебиңиз болбосо, аны болжолдоого аракет кылып модель татаалдыгын жумшаба.
Жыйынтык
- Жөнөкөй GARCH(1,1) дин эки структуралык кемчилиги бар: ал симметриялуу (шоктор катары киргендиктен ке жана ке бирдей реакция кылат) жана Гаусс инновацияларын болжолдойт (криптонун оор куйруктарынын баасын кемитет). Экөө тең оптимисттик VaR аркылуу чыныгы акчага туш кылат.
- GJR-GARCH босоголук мүчө ти кошот. Мааниге ээ — ливеридж эффекти: жаман кабар волатилдикти көбүрөөк көтөрөт. Оңдук ди талап кылат; туруктуулук — .
- EGARCH ди моделдейт, ошондуктан оңдук чектөөлөрү жок жана стационардуулук жалаң . Асимметрия чоңдук мүчө ден бөлүнгөн белгиленген мүчө аркылуу кирет (бул келишимде ливеридж ).
- Кабар таасиринин ийри сызыгы — кийинки мезгилдин дисперсиясы менен акыркы шоктун катышы — асимметрияны көрүнөө кылып, EGARCH белги келишимин бир көз ирмемде текшерет.
- Student- инновациялары (
dist='t') эркиндик даражасы (крипто үчүн адатта 3–6) аркылуу куйруктарды оңдойт; Хансендин skew- и (dist='skewt') оорураак сол куйрук үчүн кыйшыктык ди кошот. Normal → өтүү — чоң ишенимдуу пайда; → skew- көбүнчө араң. - VaR жана ES бааланган шарттуу бөлүштүрүлүштөн келип чыгат: , мында оор куйруктуу квантиль тобокелдикти Гаусска караганда чынчыл түрдө чоңураак кылат. ES (когеренттуу, CVaR) VaR дан ары кеткен орточо жоготууну кармайт.
- Купиек жана Кристофферсен менен бэктестегиле. Купиек бузуу ылдамдыгын текшерет; Кристофферсен бузуулар кластерленбегенин текшерет. Модель бирин өтүп, экинчисин өтпөшү мүмкүн — кластерленген бузуулар — коркунучтуу иштебей калуу режими. Так үлгүдөн тышкары бэктестегиле.
- Татаалдыктан тартип артык. Асимметрияны/кыйшыктыкты BIC ти да, үлгүдөн тышкаркы VaR бэктестин да өткөндө гана кош. Кыска же аз ликвиддүү серияларда жөнөкөйрөөк модель көбүнчө утат.
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
Сандык изилдөөлөр жана стратегия