← Макалаларга кайтуу
July 14, 2026
5 мүн окуу

Ашык-айкын Almgren-Chriss: бир түштөн кийин ишке ашыра турган оптималдуу аткаруу

Ашык-айкын Almgren-Chriss: бир түштөн кийин ишке ашыра турган оптималдуу аткаруу
#аткаруу
#almgren-chriss
#рыноктук таасир
#оптималдуу аткаруу
#twap
#quant
#python
#crypto

Almgren жана Chriss (2001), "Optimal execution of portfolio transactions" (Journal of Risk 3(2), 5–39), аткаруу изилдөөлөрүндөгү, балким, эң көп шилтеме жасалган, ошондой эле эң сейрек туура ишке ашырылган макала. Ачык мейкиндиктеги "Almgren-Chriss" коддорунун көбү — комментарий блогу бар TWAP пландоочу гана. Ал жөнүндөгү блог жазуулардын көпчүлүгү чыгарылышты аттап өтүп, sinh функциясына бир шилтеп коюп, өндүрүштө чыныгы мааниси бар бөлүктү — параметрлер кайдан келерин — таптакыр козгобойт.

Бул макала баарын толук камтыйт. Моделдин болжолдору чынчыл айтылат. Туюк түрдөгү траектория постулат катары эмес, чыгарылып көрсөтүлөт. Натыйжалуу чек ара жана тобокелдиктен качуу параметрин кантип тандоо керектиги. Ошондой эле үч кириштин — убактылуу таасир η\eta, туруктуу таасир γ\gamma, туруксуздук σ\sigma — Binance буйрук китепчеси менен соода маалыматтарынан калибрлениши, иштеген Python менен жана дал келтирүүнүн эмне үчүн ызы-чуулуу экени жөнүндө чынчыл талкуу менен. Бул — аткаруудагы башка бардык нерсенин интеллектуалдык өзөгү: TWAP, VWAP жана POV — бул өзгөчө учурлар же эвристикалык туугандар (караңыз TWAP, VWAP, POV: баары иштеткен аткаруу алгоритмдери), ал заманбап ML ыкмалары — арматуралык окутуу пландоочулары жана нейрондук таасир моделдери — биз азыр жаза турган дал ошол болжолдорду бошотууга аракеттер.

Коюлуш: модель эмнени чындап болжолдойт

Сизде активдин XX бирдиги бар (айталы, 100 BTC) жана аны TT убагына чейин толук жоюшуңуз керек. [0,T][0, T] аралыгын узундугу τ=T/N\tau = T/N болгон NN интервалга бөлүңүз. Сиздин чечим өзгөрмөңүз — ээлик траекториясы x0=X,x1,,xN=0x_0 = X, x_1, \dots, x_N = 0, мында kk интервалында аткарылган соода nk=xk1xkn_k = x_{k-1} - x_k.

Моделдин бүт жүгүн үч болжол көтөрөт:

1. Арифметикалык кокустук басуу. Бузулбаган баа мына мыйзамга баш ийет

Sk=Sk1+στξkτg ⁣(nkτ),S_k = S_{k-1} + \sigma \sqrt{\tau}\, \xi_k - \tau\, g\!\left(\frac{n_k}{\tau}\right),

мында ξk\xi_k — көзкарандысыз бирдей бөлүштүрүлгөн стандарттык нормалдуу чоңдуктар, ал σ\sigmaабсолюттук туруксуздук (убакыт бирдигине1/2^{1/2} карата доллар, пайыз эмес). Арифметикалык, геометриялык эмес — бир нече саат ичинде айырма аз, ал арифметикалык басуу алгебраны сызыктуу-квадраттык түрдө сактайт. Дрейф жок: Almgren жана Chriss дрейф мүчөсүн талкуулашат, бирок ички күндүк жоюу үчүн сиздин 4 сааттагы альфа баалооңуз дээрлик ар дайым ызы-чуу болуп чыгат, ошондуктан аны нөлгө теңөө — чынчыл демейки тандоо.

2. Сызыктуу туруктуу таасир. g(v)=γvg(v) = \gamma v: vv ылдамдыгы менен соода жасоо бааны туруктуу, пропорционалдуу түрдө жылдырат жана бул жылыш эч качан басаңдабайт. Саткан ар бир бирдигиңиз орто бааны (mid) γ\gammaка түбөлүккө төмөндөтөт. Бул орой көрүнөт, бирок аны сызыктуу калтыруунун терең себеби бар: Huberman жана Stanzl (2004) соода көлөмүнө карата сызыктуу эмес туруктуу таасир оң күтүлгөн пайдасы бар айланма стратегияларга — баа манипуляциясына — мүмкүнчүлүк берерин далилдешкен. Сызыктуу туруктуу таасир — ыңгайлуулук үчүн жасалган жеңилдетүү эмес; ал ушул моделдер классындагы жалгыз арбитражсыз тандоо.

3. Сызыктуу убактылуу таасир. kk интервалында сиз чындыгында ала турган баа:

S~k=Sk1h ⁣(nkτ),h(v)=ϵsgn(v)+ηv.\tilde{S}_k = S_{k-1} - h\!\left(\frac{n_k}{\tau}\right), \qquad h(v) = \epsilon\, \mathrm{sgn}(v) + \eta v.

ϵ\epsilon bid-ask спрединин жарымын жана комиссияны камтыйт; η\etavv ылдамдыгы менен өтүмдүүлүктү талап кылуунун чектик наркынын жантаюусу. Убактылуу таасир өзүңүздүн толтурууңузга гана таасир этет жана заматта жоголот — китепче кийинки бөлүшчө буйругуңузга чейин толугу менен толтурулат. "Сызыктуу", "заматта", "толугу менен" деген үч сөздүн ар бири чыныгы рынокто ката, ал акыркы бөлүк алардын канчалык ката экени жөнүндө. Бирок алгач — аларды кабыл алуудан келген пайда.

Траекториянын наркы жана дисперсиясы

Толтурууларды кошуңуз, баштапкы баалоо XS0X S_0дон алып салыңыз, ошондо аткаруу кемчилигин (implementation shortfall) аласыз. Анын ξk\xi_k ызы-чуусу боюнча күтүмү менен дисперсиясы:

E[C]=12γX2туруктуу+ϵXспред+η~τk=1Nnk2убактылуу,V[C]=σ2τk=1Nxk2,E[C] = \underbrace{\tfrac{1}{2}\gamma X^2}_{\text{туруктуу}} + \underbrace{\epsilon X}_{\text{спред}} + \underbrace{\frac{\tilde{\eta}}{\tau} \sum_{k=1}^{N} n_k^2}_{\text{убактылуу}}, \qquad V[C] = \sigma^2 \tau \sum_{k=1}^{N} x_k^2,

мында η~=η12γτ\tilde{\eta} = \eta - \tfrac{1}{2}\gamma\tau (τ0\tau \to 0 болгондо жоголуучу дискреттөө оңдоосу).

Көптөгөн ишке ашыруулар көзүнөн кетирген эки байкоо:

  • Туруктуу нарк 12γX2\tfrac{1}{2}\gamma X^2 траекторияга көз каранды эмес. Сызыктуу, басаңдабаган туруктуу таасир менен, кантип пландасаңыз да, туруктуу төлөмдү бирдей төлөйсүз. Оптималдаштыруу толугу менен убактылуу-нарк мүчөсүнүн (nk=X/Nn_k = X/N болгондо, б.а. TWAP кезинде минимумга жеткен, жай жана бир калыпта сооданы каалаган) менен дисперсия мүчөсүнүн (кампаңыздын кечээ кетүүсүн каалаган, заматта жоюу менен минимумга жеткен) ортосундагы кагылышуу.
  • Дисперсия мүчөсү соодага эмес, кампага өлчөнөт. Тобокелдик соодалаганыңызга эмес, дагы эле ээлик кылып жатканыңызга, xkx_kка эсептелет. Дал ошондуктан шашылыш кестени алдыңкы бөлүккө топтойт (front-load).

Туюк түрү: sinh, cosh жана шашылыш параметри

Almgren-Chriss орто-дисперсия максатын минималдайт

U(x)=E[C]+λV[C],U(x) = E[C] + \lambda V[C],

мында λ0\lambda \geq 0 — 1/доллар бирдигиндеги тобокелдиктен качуу. Ички чекиттер үчүн U/xj=0\partial U / \partial x_j = 0 теңдеңиз. Убактылуу мүчө xxтин экинчи айырмаларын, дисперсия мүчөсү xjx_jдин өзүн берет, ошондо сызыктуу экинчи ирээттеги айырмалык теңдеме чыгат:

xj12xj+xj+1τ2=κ~2xj,κ~2=λσ2η~.\frac{x_{j-1} - 2x_j + x_{j+1}}{\tau^2} = \tilde{\kappa}^2 x_j, \qquad \tilde{\kappa}^2 = \frac{\lambda \sigma^2}{\tilde{\eta}}.

Бул — x=κ2xx'' = \kappa^2 xтин дискреттик аналогу, ал x0=Xx_0 = X, xN=0x_N = 0 чек аралык шарттары менен чечим гиперболалык:

  xj=Xsinh ⁣(κ(Ttj))sinh(κT)  nj=2sinh(κτ/2)sinh(κT)cosh ⁣(κ(Ttj1/2))X,\boxed{\;x_j = X\, \frac{\sinh\!\big(\kappa\,(T - t_j)\big)}{\sinh(\kappa T)}\;} \qquad n_j = \frac{2\sinh(\kappa\tau/2)}{\sinh(\kappa T)}\, \cosh\!\big(\kappa (T - t_{j-1/2})\big)\, X,

мында κ\kappa 2τ2(cosh(κτ)1)=κ~2\tfrac{2}{\tau^2}\left(\cosh(\kappa\tau) - 1\right) = \tilde{\kappa}^2 теңдемесин чечет, ал кичине τ\tau үчүн бул жөн гана κκ~=λσ2/η\kappa \approx \tilde{\kappa} = \sqrt{\lambda\sigma^2/\eta}.

Ар кандай kappa маанилериндеги оптималдуу ээлик траекториялары, TWAP түз сызыгынан агрессивдүү алдыңкы бөлүккө топтолгон ийри сызыктарга чейин

Стратегия жөнүндөгү бүт маалымат бир санга кысылат:

κ=λσ2η[бирдик: 1/убакыт].\kappa = \sqrt{\frac{\lambda \sigma^2}{\eta}} \qquad [\text{бирдик: } 1/\text{убакыт}].

κ\kappa — бул шашылыштык (urgency). Анын тескери чоңдугу θ=1/κ\theta = 1/\kappa — сооданын мүнөздөмөлүк убактысы: таасир наркын үнөмдөө үчүн кампалык тобокелдикти кармап турууга арзыган убакыт масштабы. κ\kappa эмнеге көз каранды эмес экенине көңүл буруңуз: буйрук көлөмү XX жана мөөнөт TTдон. Сооданыздын ички убакыт масштабы 20 мүнөтпү же 6 сааттпы — аны тобокелдиктен качуу, туруксуздук жана өтүмдүүлүк гана аныктайт. Эгер θT\theta \ll T болсо, мөөнөтүңүздүн мааниси жок — модель өз кестеси боюнча жоёт, ал горизонттун куйругу колдонулбайт. Эгер θT\theta \gg T болсо, мөөнөт байлоочу болуп калат жана сиз чындыгында TWAP жасайсыз.

Тобокелдикке нейтралдуу чек — бул TWAP, TWAP ушинтип жашайт

λ0\lambda \to 0 алыңыз, ошондо κ0\kappa \to 0. Анда sinh(z)z\sinh(z) \to z жана

x(t)=Xsinh(κ(Tt))sinh(κT)    XTtT.x(t) = X\,\frac{\sinh(\kappa(T-t))}{\sinh(\kappa T)} \;\longrightarrow\; X\,\frac{T-t}{T}.

Оптималдуу траектория түз сызыкка айланат: бирдей убакыт интервалдарында бирдей өлчөмдөр. TWAP — кокустан иштеп кете турган эвристика эмес; бул сызыктуу таасири бар тобокелдикке нейтралдуу трейдер үчүн Almgren-Chriss моделинин так оптимуму. Бирөө TWAP иштеткен сайын ал жашыруун түрдө λ=0\lambda = 0 дегенди тастыктайт: "Мен кемчилигимдин дисперсиясына эмес, анын ортосуна гана маани берем." Бул — кичине буйруктар жана кыска горизонттор үчүн коргоого арзырлык позиция. Ал күндүк туруксуздугу 4% активде 8 саат ичинде күндүк көлөмдүн 5%ин жоюу үчүн бул — таң калыштуу позиция, ал адамдар аны дал ушундай жерде колдонушат. Карама-каршы чек λ\lambda \to \infty бардык j>0j > 0 үчүн xj0x_j \to 0 берет: баарын биринчи интервалда таштаңыз, кандай нарк болсо да төлөңүз. Ушул эки четки маанинин ортосунда κT\kappa T интерполяциялайт: κT0.5\kappa T \lesssim 0.5 TWAPтан араң айырмаланат, ал κT3\kappa T \gtrsim 3 агрессивдүү түрдө алдыңкы бөлүккө топтолгон.

Аткаруунун натыйжалуу чек арасы

Ар бир λ\lambda үчүн бир траекторияны, бир күтүлгөн наркты E(λ)E(\lambda) жана бир дисперсияны V(λ)V(\lambda) аласыз. λ[0,)\lambda \in [0, \infty) боюнча шыпыруу (V,E)(V, E) тегиздигинде ийри сызык тартат — Марковиц менен түз окшоштукта аткаруунун натыйжалуу чек арасы. Ал ойпоң жана кемүүчү: аз дисперсия ар дайым көбүрөөк күтүлгөн кемчиликке турат, жана кирешеси кескин кемийт. Берилген λ\lambda тандаган чек ара чекитинде тобокелдиктен качуу — жаныманын (терс) жантаюусу: λ=E/V\lambda = -\partial E / \partial V.

Аткаруу наркы менен дисперсиянын натыйжалуу чек арасы, жантаюу катары lambda-ны көрсөткөн жанама сызык менен

Чек ара "λ\lambda деген эмне?" деген — эч ким интроспекция аркылуу жооп бере албаган — суроону "мага кандай нарк/тобокелдик алмашуусу керек?" деген, дилинг столу чындап жооп бере ала турган суроого кайра курат. Чекитти тандоонун үч практикалык жолу:

  1. Чектик нарк менен ой жүгүртүү. Чек ара боюнча жүрүп, сураңыз: "ушул чекиттен кийинкисине өтсөм, кемчиликтин стандарттык четтөөсүнүн Δstd\Delta\text{std} долларын жоюу үчүн күтүлгөн наркынын ΔE\Delta E долларын төлөйм — бул алмашууга барамбы?" Чек аранын тизеси адатта 2 эсе чамасында ачык, ал траектория ошол ажыратымдуулукта λ\lambdaга сезгич эмес.
  2. Тобокелдик бюджети. Кемчиликтин максималдуу уруксат берилген стандарттык четтөөсүн бекитиңиз (мис., "калдык позициянын бир күндүк 1-сигмасы номиналдын 15 bpsинен ашпашы керек") жана аны канааттандырган эң арзан траекторияны алыңыз. Бул — Лагранж көбөйтмөсү дал λ\lambda болгон чектелген маселе.
  3. Мүнөздөмөлүк убакытты максат кылуу. θ=1/κ\theta = 1/\kappaты түз тандаңыз ("бул буйруктун жарым ажыроо мезгили 90 мүнөт болушу керек") жана λ=η/(σ2θ2)\lambda = \eta/(\sigma^2\theta^2)ты чыгарыңыз. "Шашылыштык" сыдырмасын орноткондо практиктердин көбү ушуну жашыруун түрдө жасашат.

Калибрлөө бөлүмүндө негиздей турган сандар менен жасалган мисал. S_0 = \100{,}000боюнчабоюнчаX = 100BTCсатыңыз,горизонтBTC сатыңыз, горизонтT = 4с,с,\sigma = $600бирBTCгабир BTCга\sqrt{\text{с}}сайын(болжолменен3сайын (болжол менен 3% күндүк туруксуздук),\eta = 1.0\ $\cdot\text{с}/\text{BTC},, \lambda = 10^{-6}\ $^{-1}$. Ошондо

κ=106×3.6×1051.0=0.6 с1,κT=2.4,θ1.7 с.\kappa = \sqrt{\frac{10^{-6} \times 3.6\times 10^{5}}{1.0}} = 0.6\ \text{с}^{-1}, \qquad \kappa T = 2.4, \qquad \theta \approx 1.7\ \text{с}.

Оптималдуу кесте биринчи саатта 46.2 BTC сатат (TWAP: 25). Убактылуу нарк: \eta \int_0^T v(t)^2 dt \approx \3{,}290,алTWAPүчүн, ал TWAP үчүн $2{,}500.Кемчиликтинстандарттыкчеттөөсү:. Кемчиликтин стандарттык четтөөсү: $53{,}000,алTWAPүчүн, ал TWAP үчүн $69{,}300. Демек, \10M номиналда күтүлгөн наркынын кошумча 0.8 bpsи үчүн кемчилик тобокелдигин 23%га кыскартасыз. Моделдин бүт мазмуну бир сүйлөмдө: ал камсыздандырууга баа коёт, ал аны сатып алуу-албоону сизге калтырат.

Траекториянын өзү — Python'дун он сабы:

import numpy as np

def almgren_chriss(X, T, N, sigma, eta, gamma, lam):
    """Optimal liquidation trajectory (discrete AC 2001)."""
    tau = T / N
    eta_t = eta - 0.5 * gamma * tau          # tilde-eta
    kappa_t2 = lam * sigma**2 / eta_t        # tilde-kappa^2
    kappa = np.arccosh(0.5 * kappa_t2 * tau**2 + 1) / tau
    t = np.arange(N + 1) * tau
    x = X * np.sinh(kappa * (T - t)) / np.sinh(kappa * T)
    n = x[:-1] - x[1:]                       # child order sizes
    E = 0.5 * gamma * X**2 + (eta_t / tau) * np.sum(n**2)
    V = sigma**2 * tau * np.sum(x[1:]**2)
    return x, n, E, V

x, n, E, V = almgren_chriss(X=100, T=4, N=48, sigma=600,
                            eta=1.0, gamma=0.3, lam=1e-6)
print(f"first-hour qty: {n[:12].sum():.1f} BTC, "
      f"E=${E:,.0f}, std=${np.sqrt(V):,.0f}")

lamды np.logspace(-8, -4, 50) боюнча шыпырып, EEни V\sqrt{V}га каршы тартыңыз — бул сиздин чек араңыз, ал бүт чечим бети тобокелдик комитетине бере ала турган бир графикке батат.

Калибрлөө: Binance маалыматтарынан η\eta, γ\gamma, σ\sigma

Дал ушул жерде ишке ашыруулардын 90%ы үнсүз өлөт. Траектория формуласы жөнөкөй; параметрлер андай эмес. Үч чоңдук, үч башка баалоо маселеси.

Binance маалыматтарынан алынган жылмышуу менен катышуу деңгээлинин, баа өзгөрүшү менен таза буйрук агымынын калибрлөө чачыранды графиктери

σ\sigma: жеңили

Тамыр-саатка карата абсолюттук туруксуздук, орто баа кайтарымдарынан. 1-мүнөттүк тилкелерди колдонуп, масштабдаңыз; жышыраак тандоодо микроструктуралык ызы-чуу (bid-ask секирүү) ишке ашкан дисперсияны жогору карай жылдырат. Бул баалоо ишенимдүү — туруксуздук туура ала турган жалгыз параметр.

η\eta: китепчеден жана соодалардан алынган убактылуу таасир

Эки бирин-бири толуктаган жол. A жолу — L2 китепчесин басып өтүү. Тереңдик сүрөттөрүнөн qq көлөмүндөгү гипотетикалык рыноктук шыпыруунун наркын эсептеңиз: керектелген деңгээлдердин VWAPы минус орто баа. cost(q)ϵ+ηinstq\text{cost}(q) \approx \epsilon + \eta_{\text{inst}}\, q дал келтирүү бир BTCга заматтык таасирди берет. Аны моделдеги ылдамдыкка негизделген η\etaга айландыруу үчүн китепченин толтурулуу убактысын Δtr\Delta t_r болжолдошуңуз керек (BTCUSDT үчүн 10–60 с чамасында): vv ылдамдыгы менен соода ар бир жаңыртуу циклинде vΔtrv \Delta t_r керектейт, ошондуктан ηηinstΔtr\eta \approx \eta_{\text{inst}} \Delta t_r. Дал ошол болжол — туруктуу саат боюнча заматтык, толук толтурулуу — аркылуу Obizhaeva-Wang кире турган жарака; төмөндө кеңири. B жолу — ишке ашкан жылмышууну катышууга регресстөө. Агрессивдүү (taker) агымды 1-мүнөттүк бөлүктөргө топтоңуз; ар бир бөлүк үчүн taker-жактык VWAP-минус-ачылуу-орто бааны taker көлөмүнүн ылдамдыгына регресстеңиз. B жолу рынок агрессорлордон чындыгында эмне алганын өлчөйт; A жолу кыймылсыз китепче азыр эмне ала турганын өлчөйт. Алар 3 эсе алыстаса, деңгээл үчүн Bга, ички күндүк формага Aга ишениңиз.

γ\gamma: Kyle-стилиндеги регрессия аркылуу туруктуу таасир

5-мүнөттүк терезелерде орто баа өзгөрүүлөрүн белгиленген таза taker агымына регресстеңиз:

ΔS5m=γQnet+noise,Qnet=taker buystaker sells.\Delta S_{5m} = \gamma\, Q_{\text{net}} + \text{noise}, \qquad Q_{\text{net}} = \text{taker buys} - \text{taker sells}.

Андан кийин таасир бир терезеден кийин кайра кайтпаганын текшериңиз — кайра кайтпаган компонент сиздин соода убакыт масштабыңызда "туруктуу" болуп саналат. Бул — үчөөнүн ичиндеги алда канча эң ызы-чуулуусу.

Binance'тин коомдук REST акыркы чекиттерин гана колдонгон иштеген код:

import requests, numpy as np, pandas as pd

B = "https://api.binance.com/api/v3"
sym = "BTCUSDT"

kl = requests.get(f"{B}/klines", params=dict(
    symbol=sym, interval="1m", limit=1000)).json()
close = np.array([float(k[4]) for k in kl])
sigma = np.diff(close).std() * np.sqrt(60)       # $/sqrt(h)

d = requests.get(f"{B}/depth",
                 params=dict(symbol=sym, limit=5000)).json()
bids = np.array(d["bids"], dtype=float)          # [price, qty]
mid = (bids[0, 0] + float(d["asks"][0][0])) / 2
cq = np.cumsum(bids[:, 1])                       # cum qty
cn = np.cumsum(bids[:, 0] * bids[:, 1])          # cum notional
sizes = np.linspace(0.5, 50, 40)                 # BTC probes
cost = [mid - np.interp(q, cq, cn) / q for q in sizes]
eps, eta_inst = np.polyfit(sizes, cost, 1)[::-1] # cost ~ eps + k*q
eta = eta_inst * (30 / 3600)                     # 30s refresh -> $*h/BTC

tr = requests.get(f"{B}/aggTrades",
                  params=dict(symbol=sym, limit=1000)).json()
df = pd.DataFrame(dict(
    t=[t["T"] for t in tr],
    p=[float(t["p"]) for t in tr],
    q=[float(t["q"]) * (-1 if t["m"] else 1) for t in tr]))
df["bin"] = df.t // 300_000                      # 5-min bins
g = df.groupby("bin").agg(dp=("p", lambda s: s.iloc[-1] - s.iloc[0]),
                          qn=("q", "sum"))
gamma = np.polyfit(g.qn, g.dp, 1)[0]             # $/BTC
print(f"sigma={sigma:.0f} $/sqrt(h)  eta={eta:.2f} $*h/BTC  "
      f"gamma={gamma:.3f} $/BTC")

Өндүрүш үчүн жалгыз aggTrades бетин бир нече күндүк тарыхый дамп менен алмаштырып, γ\gamma регрессиясын бир нече эмес, миңдеген бөлүктө аткарыңыз.

Крипто калибрлөө эмне үчүн ызы-чуулуу жана аны менен эмне кылуу керек

γ\gamma регрессиясын чыныгы маалыматта аткарсаңыз, бир нече пайыздык R2R^2 жана күндөрдүн ортосунда 2–5 эсе өзгөргөн коэффициент аласыз. Бул — кодуңуздагы ката эмес. Себептери структуралык:

  • Эндогендүүлүк. Агым баага баа агымга жооп бергендей эле жооп берет. Момент трейдерлери баа көтөрүлгөндүктөн сатып алышат; кайтарымдарды агымга жөнөкөй OLS менен регресстөө алардын реакциясын алып, аны таасирге жатузат. Таза чечим — өз толтурууларыңызды (структурасы боюнча экзогендик) колдонуу — ал сизде бир аз соода жасагандан кийин гана пайда болот.
  • Ойпоңдук. Чыныгы таасир көлөмгө карата ойпоң — эмпирикалык түрдө квадрат тамырга жакын (Almgren, Thum, Hauptmann жана Li, 2005, "Direct estimation of equity market impact", көрсөткүчү 0.6га жакын деп табышкан; дал ошол ойпоңдук криптодо да туруктуу). Ойпоң функцияга түз дал келтирүү дегени — сиздин η\eta менен γ\gammaңыз үлгүдөгү көлөм диапазонуна көз каранды. Чындыгында соода кыла турган катышуу деңгээлдеринде калибрлеңиз.
  • Фрагментация жана деривативдердин лидерлиги. Binance'теги BTCUSDT спот — көптөгөн аянттын бири гана, ал бааны ачуу көбүнчө перптарда болот. Сиз эч качан көрбөгөн агым сиз регресстеген бааны кыймылдатып, ызы-чуу мүчөсүн көбөйтөт.
  • Режимге көз карандылык. Азия сессиясында өлчөнгөн η\eta АКШнын ачылуусун сүрөттөбөйт; туруксуздук эки эсеге көбөйгөндө таасир болжол менен эки эсеге көбөйөт. Сессия сайын калибрлеп, жумасына кеминде бир жолу кайра дал келтириңиз.

Куткаруучу нерсе: траектория кечиримдүү. κ1/η\kappa \propto \sqrt{1/\eta}, ошондуктан η\etaдагы 2 эсе ката κ\kappaны 2\sqrt{2} эсе гана жылдырат, ал нарк функциясы оптимумга жакын тегиз. η\etaны 2 эсе тактык менен жана λ\lambdaны бир катар чоңдукта туура алуу TWAPка карата жеткиликтүү жакшыртуунун көбүн камтыйт. Тактык соода алдындагы нарк баалоолору үчүн маанилүү; бекемдик пландоо үчүн жетиштүү.

Модель кайсы жерде бузулат жана аны оңдогон макалалар

Almgren-Chriss — бул каркас, ал кайсы устун жүк көтөрүүчү экенин так билүү кайсы кеңейтүүгө кайрылуу керегин айтат.

Сызыктуу эмес таасир — Almgren (2003). "Optimal execution with nonlinear impact functions and trading-enhanced risk" (Applied Mathematical Finance 10, 1–18) программаны даражалуу убактылуу таасир менен h(v)=ηvαh(v) = \eta v^\alpha кайра жасайт. Эмпирикалык түрдө ыңгайлуу α1/2\alpha \approx 1/2 — квадрат тамыр мыйзамы — үчүн оптималдуу траекториялар мүнөзүн өзгөртөт: ойпоң таасир секириктерди сызыктуу таасирден көрө азыраак жазалайт, ошондуктан оптималдуу кестелер ошол λ\lambdaда алдыңкы бөлүккө көбүрөөк топтолот. Сапаттык структура (шашылыш параметр, натыйжалуу чек ара) сакталат; sinh формуласы жок.

Ийкемдүүлүк жана LOB — Obizhaeva жана Wang (2013). "Optimal trading strategy and supply/demand dynamics" (Journal of Financial Markets 16(1), 1–32; жумушчу документ 2005-тен бери таралган) убактылуу/туруктуу дихотомияны чектелген тереңдиги бар жана экспоненциалдуу басаңдаган таасирдүү лимиттик буйрук китепчеси менен алмаштырат: сиздин соодаңыз китепчени жейт, ал китепче ийкемдүүлүк ылдамдыгы ρ\rho менен кайра толтурулат. AC'нин "убактылуу таасир заматта жоголот" деген болжолу — ρ\rho \to \infty чеги. Оптималдуу стратегия формасын кескин өзгөртөт: башында блоктук соода, аягында блок, ал ортосунда туруктуу соода ылдамдыгы — блоктор китепченин калыбына келүүсүн пайдаланат. Эгер бөлүшчө-буйрук интервалыңыз аянттын толтурулуу убактысына жакын болсо (криптодо — секундалардан бир мүнөткө чейин, көбүнчө ушундай), сиз Almgren-Chriss эмес, Obizhaeva-Wang аймагындасыз, ал жогорудагы калибрлөөдөгү Δtr\Delta t_r айла-амалы — сиздин эскертүү белгиңиз.

Динамикалык-арбитражсыздык — Gatheral (2010). "No-dynamic-arbitrage and market impact" (Quantitative Finance 10(7), 749–759) заматтык таасир функциясы f(v)f(v) менен басаңдоо ядросу G(t)G(t)нын кайсы айкалыштары ички жактан ырааттуу, б.а. терс күтүлгөн наркы бар айланма стратегияга мүмкүнчүлүк бербестигин сурайт. Натыйжалар курч: экспоненциалдуу басаңдоо бир гана сызыктуу таасир менен айкалышат — экспоненциалдуу басаңдоону квадрат тамыр таасир менен айкалыштырсаңыз, моделден термелген соода тизмеги менен акча соргонго болот; сызыктуу эмес таасир даражалуу басаңдоону талап кылат, жана эки көрсөткүчтү байланыштырган теңсиздик менен (vδ\sim v^\delta таасир жана tγd\sim t^{-\gamma_d} басаңдоо үчүн, болжол менен γd+δ1\gamma_d + \delta \geq 1). Таасир моделиңизге сонун басаңдоо ядросун бекитерден мурун окула турган макала ушул: көптөгөн ад-хок айкалыштар жашыруун арбитраждуу болуп чыгат, бул практикада сиздин оптимизаторуңуз арбитражды таап, маанисиз термелген кестелерди чыгарат дегенди билдирет. Эгер сиздин "оптималдуу" траекторияңыз таза жоюу учурунда сатып алуу менен сатууну кезектештирсе, сиз альфа тапкан жоксуз, Gatheralды бузуп койдуңуз.

ML уландылары. Ушул сериядагы эки жип түз ушул каркастын үстүнө курулат. Биринчиси — арматуралык окутуу менен аткаруу: таасирдин сызыктуу эмес, абалга көз каранды жана жарым-жартылай байкала турганын моюнга алсаңыз, туюк түрү жоголот, ал RL (Nevmyvaka, Feng жана Kearns'тин 2006-жылкы Q-learning макаласынан баштап) траектория мейкиндигин издөөнүн табигый жолу — бирок ар бир олуттуу RL аткаруу агенти AC чечимине карата бенчмаркталат, жана көбүнчө андан баштайт. Экинчиси — нейрондук баа-таасир моделдери: h(v)=ηvh(v) = \eta vны буйрук китепчесинин абалынын үйрөнгөн функционалы менен алмаштыруу, жана анын үстүнө орто-дисперсия пландоо логикасын сактоо. Сызыктуу-Гаусс базалык сызыгы дал эмне экенин жана анын мындай формасы болушунун себебин билбей туруп, эки уландынын тең мааниси жок.

Эмнени эсте сактоо керек

Модель — үч болжол, бир айырмалык теңдеме жана бир сан. Сызыктуу туруктуу таасир (манипуляция болбоо менен мажбурланган), сызыктуу убактылуу таасир (айланасында калибрлей турган жакындатуу), арифметикалык броундук ызы-чуу. Оптимум кампалык дисперсияны таасир наркына каршы теңдейт, бүт стратегия шашылыштык κ=λσ2/η\kappa = \sqrt{\lambda\sigma^2/\eta}ка кичирейет, ал TWAP λ=0\lambda = 0 өзгөчө учур катары чыгат — бул моделдеги эң пайдалуу жалгыз факт, анткени ал "муну TWAP кылабызбы?" дегенди адат маселесинен тобокелдиктен качуу жөнүндө текшериле турган тыянакка айландырат. Калибрлөө — чыныгы иш: σ\sigma жеңил, η\eta — 2 эсе оюну, γ\gamma — изилдөө долбоору, ал траектория үчөөнү тең кечирет. Аны бир түштөн кийин ишке ашырыңыз; айдын калганын регрессия диагностикасына жумшаңыз.

Колдонулган адабияттар

  • Almgren, R., Chriss, N. (2001). "Optimal execution of portfolio transactions." Journal of Risk, 3(2), 5–39.
  • Almgren, R. (2003). "Optimal execution with nonlinear impact functions and trading-enhanced risk." Applied Mathematical Finance, 10(1), 1–18.
  • Almgren, R., Thum, C., Hauptmann, E., Li, H. (2005). "Direct estimation of equity market impact." Risk, 18(7), 58–62.
  • Huberman, G., Stanzl, W. (2004). "Price manipulation and quasi-arbitrage." Econometrica, 72(4), 1247–1275.
  • Obizhaeva, A., Wang, J. (2013). "Optimal trading strategy and supply/demand dynamics." Journal of Financial Markets, 16(1), 1–32.
  • Gatheral, J. (2010). "No-dynamic-arbitrage and market impact." Quantitative Finance, 10(7), 749–759.
  • Nevmyvaka, Y., Feng, Y., Kearns, M. (2006). "Reinforcement learning for optimized trade execution." ICML 2006.
blog.disclaimer

Authors

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

Рынктан бир кадам алдыда болуңуз

AI соода аналитикасы, рынок талдоолору жана платформа жаңылыктары үчүн биздин жаңылыктар бюллетенине жазылыңыз.

Биз сиздин купуялыгыңызды урматтайбыз. Каалаган убакта жазылымдан чыга аласыз.