← Maqolalarga qaytish
August 17, 2026
5 daqiqa o'qish

Tartib oqimi nomutanosibligi: Cont-Kukanov-Stoikov hodisasining parchalanishi

Tartib oqimi nomutanosibligi: Cont-Kukanov-Stoikov hodisasining parchalanishi
#microstructure
#order-flow
#imbalance
#prediction
#HFT

Ushbu blogdagi kitobdan olingan signallarning aksariyati * oniy suratlar*: hozir har ikki tomonda qancha hajm mavjud. Buyurtma oqimining nomutanosibligi boshqa ob'ektdir. Bu ikki lahzali surat oʻrtasidagi yangilanishlar oqimining bitta imzolangan miqdorga boʻlinishi boʻlib, bu taklifning bekor qilinishini bozordagi sotuvni hisoblagandek hisoblaydi.

Ushbu parchalanish ushbu maqolaning mavzusidir. Xususan: uni belgilaydigan Cont-Kukanov-Stoikov (2014) hodisasi ko‘rsatkichlari, Xu-Gould-Howison (2019) ko‘p darajali kengaytmasi va uning asosiy komponentlarini qisqartirish hamda tasmangiz savdo yo‘nalishini belgilamasa, sizga kerak bo‘ladigan Li-Ready va Bulk Volume tasnifi qoidalari.

Oldinda bitta ramkali eslatma, chunki u quyida keltirilgan har bir raqamni qanday oʻqish kerakligini boshqaradi. CKS qogʻozidagi mashhur 50-65% R kvadrati zamonaviy regressiyadir: oraliqdagi narx oʻzgarishi bir xil oraliqdagi buyurtmalar oqimida regressiyaga uchradi. Bu ularning prognozi emas, balki narxlar harakatining parchalanishi. Kundalik kapital daromadlilik modeli buni 1-2% dispersiya bilan solishtirish, olma va apelsin ekanligini tushuntiradi va bu blog uzoq vaqt davomida bahslashdi. DeepLOB va bashorat-profit farqi va ichida halol salbiy natija - bu ikkalasini birlashtirganda, darsliklar tuzoqqa aylanadi. Qattiq kechikkan OFI regressiyasi qonuniy va ancha kichikroq raqamdir. Ushbu maqola bitta haqida xabar bermaydi.

Nima uchun savdo emas, buyurtma oqimi

Bitta imzolangan oqim signaliga birlashuvchi to'rtta buyurtma kitobi mexanizmi

Uzluksiz limitli buyurtmalar kitobidagi narx o'zgarishi to'liq to'rtta mexanizm orqali sodir bo'ladi: bozor xaridi dam olish so'rovlarini iste'mol qiladi; bozor savdosi dam olish takliflarini iste'mol qiladi; taklifni bekor qilish qo'llab-quvvatlashni olib tashlaydi va taklif tushishiga imkon beradi; so'rash bo'yicha yangi chegara tartibi qarshilik qo'shadi. Faqat birinchi ikkitasi savdodir. Oxirgi ikkitasi har qanday hajmga asoslangan o'lchovga ko'rinmaydi - VWAP, balansdagi hajm, imzolangan savdo oqimi - va aksariyat joylarda buyurtma-savdo nisbati 10:1 dan oshadi, shuning uchun ko'rinmas qism katta qismdir. OFI ning foydalilikka da'vosi shundaki, u barcha to'rt mexanizmni bir xil miqyosda baholaydi. (Ma'lumotlar tuzilishi va standart sifatida kitob uchun 4L4L oniy tasvir xususiyati vektori, qarang DeepLOB.)

Cont-Kukanov-Stoikov OFI modeli

CKS hodisasi dekompozitsiyasida o'tishlarni taklif qiling va so'rang

Asosiy model Cont, Kukanov va Stoikovning 2014 yildagi "The Price Impact of Order Book Events" (Journal of Financial Econometrics) maqolasidan olingan.

Buyurtma oqimining nomutanosibligini aniqlash

Eng yaxshi taklif narxini ko'rib chiqing PtbP^b_t, eng yaxshi narxni so'rang PtaP^a_t, va ularning o'lchamlari QtbQ^b_t va QtaQ^a_t. Ketma-ket kuzatuvlar orasida tn1t_{n-1} va tnt_n:

OFIn=enBenSOFI_n = e_n^B - e_n^S

Bu erda sotib olish va sotish tomonidagi tadbir hissalari:

enB=1{Pnb>Pn1b}Qnb1{Pnb<Pn1b}Qn1b+1{Pnb=Pn1b}(QnbQn1b)e_n^B = \mathbb{1}_{\{P^b_n > P^b_{n-1}\}} Q^b_n - \mathbb{1}_{\{P^b_n < P^b_{n-1}\}} Q^b_{n-1} + \mathbb{1}_{\{P^b_n = P^b_{n-1}\}} (Q^b_n - Q^b_{n-1}) enS=1{Pna<Pn1a}Qna1{Pna>Pn1a}Qn1a+1{Pna=Pn1a}(QnaQn1a)e_n^S = \mathbb{1}_{\{P^a_n < P^a_{n-1}\}} Q^a_n - \mathbb{1}_{\{P^a_n > P^a_{n-1}\}} Q^a_{n-1} + \mathbb{1}_{\{P^a_n = P^a_{n-1}\}} (Q^a_n - Q^a_{n-1})

Oddiy tilda: agar eng yaxshi taklif narxi ko'tarilsa, yangi xarid qiziqishlari paydo bo'ldi - uning to'liq hajmini ijobiy deb hisoblang. Agar u tushib qolsa, sotib olish foizlari g'oyib bo'ldi - eski hajmini olib tashlang. Agar narx o'zgarmagan bo'lsa, faqat o'lchamdagi o'zgarishlarni hisoblang. So'rov tomoni oyna tasviridir.

Nafisligi shundaki, ushbu uchta ko'rsatkich shoxlari kitobning yuqori qismidagi barcha mumkin bo'lgan o'tishlarni qamrab oladi, shuning uchun har bir yangilanish aynan bitta imzolangan raqamga mos keladi. Savdo tasnifi yo'q, yon yorliqlar yo'q, xabar darajasidagi tasma talab qilinmaydi - ikkita ketma-ket surat etarli.

Intervallar ustidan yig'ish

Interval uchun [T1,T2][T_1, T_2] o'z ichiga olgan NN kitob yangilanishlari:

OFI[T1,T2]=n=1NOFIn=n=1N(enBenS)OFI_{[T_1,T_2]} = \sum_{n=1}^{N} OFI_n = \sum_{n=1}^{N} (e_n^B - e_n^S)

Chiziqli narx ta'siri modeli

ΔP[T1,T2]=α+βOFI[T1,T2]+ε\Delta P_{[T_1,T_2]} = \alpha + \beta \cdot OFI_{[T_1,T_2]} + \varepsilon

qayerda ΔP\Delta P o'rta narxning o'zgarishi, β\beta narx ta'sir koeffitsienti hisoblanadi, va ε\varepsilon qoldiq shovqin hisoblanadi. AQSh qimmatli qog'ozlari bo'yicha 10 soniyadan 1 daqiqagacha bo'lgan vaqt oralig'ida CKS bir vaqtning o'zida hisobot beradi. R2R^2 har bir aktsiya uchun 50-65%. Yana: bir xil intervalli, oldinga qarab emas.

Kesma masshtablash

CKS shuningdek ta'sir koeffitsienti shkalalarini chuqurlikka teskari ko'rsatdi:

β1Dˉ\beta \propto \frac{1}{\bar{D}}

qayerda Dˉ\bar{D} eng yaxshi taklif va so'rashda o'rtacha dam olish hajmi. Xuddi shu oqim nozik kitobda narxni yanada oshiradi. Bu darajani o'zgartirmasdan joylar bo'ylab uzatiladigan modelning bir qismidir, chunki u raqam emas, balki * munosabatlarni * bashorat qiladi - va u turli xil chuqurlikdagi kripto juftliklarida to'g'ridan-to'g'ri sinovdan o'tkaziladi.

Ko'p darajali buyurtma oqimi nomutanosibligi (MLOFI)

Ko'p darajali buyurtma kitobining chuqurligi asosiy signalga siqilgan

Asl model faqat kitobning yuqori qismidan foydalanadi. Xu, Gould, and Howison (2019) uni kengaytirdi LL darajalari.

Ta'rif

MLOFIn=(OFIn(1)OFIn(2)OFIn(L))\mathbf{MLOFI}_n = \begin{pmatrix} OFI_n^{(1)} \\ OFI_n^{(2)} \\ \vdots \\ OFI_n^{(L)} \end{pmatrix}

qayerda OFIn()OFI_n^{(\ell)} ga bir xil uch tarmoqli formulani qo'llaydi \ell-chi taklif/so'rov juftligi.

Ko'p darajali narx ta'siri

ΔP=α+βTMLOFI+ε=α+=1LβOFI()+ε\Delta P = \alpha + \boldsymbol{\beta}^T \cdot \mathbf{MLOFI} + \varepsilon = \alpha + \sum_{\ell=1}^{L} \beta_\ell \cdot OFI^{(\ell)} + \varepsilon

Nasdaq aktsiyalari bo'yicha e'lon qilingan xulosa shundan iboratki, har bir qo'shimcha daraja namunadan tashqarida qo'shiladi R2R^2 - taxminan 10-15 foiz punkti bir darajadan beshga o'tadi, marjinal o'sish hali ham o'nta. Koeffitsientlar monoton ravishda pasayadi, β1>β2>>βL|\beta_1| > |\beta_2| > \cdots > |\beta_L|: kitobning yuqori qismi ustunlik qiladi, lekin chuqurroq darajalar ahamiyatsiz bo'lmagan qo'shimcha signalga ega.

Bu kripto kitobida omon qoladimi - bu maqoladagi eng qiziqarli ochiq savol. Kripto kitoblar yupqaroq va chuqurroq chayqaladi va Nasdaq buyurtma kitobini tark etganingizdan so'ng, 2-5 darajalar hech narsa qo'shmasligi to'liq ishoniladi.

Asosiy komponentni qisqartirish

Qo'shni darajadagi OFI o'zaro bog'liqligi yuqori (e'lon qilingan kapital natijalarida 0,8 dan yuqori), shuning uchun asosiy komponentning parchalanishi tabiiydir. Xabar qilingan birinchi komponent umumiy dispersiyaning 89% dan ortig'ini qamrab oladi va bitta umumiy signal sifatida xizmat qiladi:

OFIPC1=wTMLOFIOFI^{PC1} = \mathbf{w}^T \cdot \mathbf{MLOFI}

bilan w\mathbf{w} OFI kovariatsiya matritsasining yetakchi xos vektori. Amaliy joziba shundaki, u kollinear regressiyani bitta yaxshi shartli skalerga aylantiradi - hatto sizning ma'lumotlaringizdagi dispersiya ulushi pastroq bo'lsa ham bajarishga arziydi.

Savdolarni tasniflash: Sotib olish va sotish

Savdo voqealari sotib olish va sotishni boshlash oqimlariga bo'lingan

OFIning o'zi savdo tasnifiga muhtoj emas. Ammo agar siz uni savdoga asoslangan chora-tadbirlar bilan solishtirmoqchi bo'lsangiz yoki sizda faqat yig'ilgan chiziqlar bo'lsa, siz yo'nalish haqida xulosa qilishingiz kerak.

Iqtibos qoidasi

Savdo narxini solishtiring PtP_t ustun o'rta nuqtaga Mt=Ptask+Ptbid2M_t = \frac{P^{ask}_t + P^{bid}_t}{2}:

side={+1 (buy)if Pt>Mt1 (sell)if Pt<Mt\text{side} = \begin{cases} +1 \text{ (buy)} & \text{if } P_t > M_t \\ -1 \text{ (sell)} & \text{if } P_t < M_t \end{cases}

O'rta nuqtadan yuqori bo'lgan savdo, ehtimol, taklifni bekor qilgan xaridor edi; uning ostida, sotuvchi taklifni uradi.

Lee-Ready algoritmi (1991) bu kotirovka qoidasi bo'lib, savdolar uchun to'g'ridan-to'g'ri o'rta nuqtada, kotirovka qoidasi noaniq bo'ladi. Shomil qoidasi - oldingi tomonni nol belgisida oldinga olib boradigan oxirgi narx o'zgarishi belgisi - allaqachon olingan va joriy etilgan. Vaqt chegaralaridan tashqari, qaysi bir ishchi kemalar _tick_sign(). Hisobot qilingan Li-Ready tasnifi aniqligi bozor va davrga qarab 72-85% ni tashkil qiladi.

Ommaviy hajm tasnifi (BVC)

Individual savdolarni belgilash mumkin bo'lmaganda - yig'ilgan barlar, ko'pchilik ommaviy sham API'lari - Easley, Lopez de Prado va O'Hara's Bulk Volume Classification bar hajmining sotib olish qismini uning normallashtirilgan narx o'zgarishidan baholaydi:

Vtbuy=VtΦ(ΔPtσΔP)V^{buy}_t = V_t \cdot \Phi\left(\frac{\Delta P_t}{\sigma_{\Delta P}}\right)

bilan Φ\Phi standart oddiy CDF va σΔP\sigma_{\Delta P} so'nggi narxlardagi o'zgarishlar bo'yicha taxmin qilingan. Shomil darajasidagi tasnifga qaraganda kamroq aniq, lekin u OHLCV da ishlaydi.

OFI nima emas

Haqiqiy bashoratdan tashqari, hozirgi parchalanish

Uchta qo'shni miqdor OFI bilan chalkashib ketadi. Har biri ushbu blogning boshqa joylarida to'g'ri yoritilgan; farqlar bu erda muhim.

Buyurtmalar kitobining statik nomutanosibligi (OBI) oniy surat versiyasidir — dam olish so‘rovi hajmiga nisbatan dam olish taklifi hajmi, voqea kuzatilmaydi. Qarang DeepLOB an'anaviy LOB xususiyatlari formula va uning ko'p darajali shakli uchun. Qarama-qarshilik OFIning butun nuqtasidir: OBI sizga kitobning holatini aytib beradi, OFI u erga qanday etib kelganini aytadi.

Savdo nomutanosibligi (TI) va uning hajmi bo'yicha o'lchangan variantlari imzolangan savdo oqimi bo'lib, ularda aylanma xususiyat sifatida aniqlanadi va amalga oshiriladi. mashinani o'rganish bilan modellashtirishni yoyish. O'zaro bog'liqlik haqidagi e'lon qilingan natijalardan biri bu erda yuk ko'taruvchidir: OFI va TI o'rta narxlardagi o'zgarishlarda regressorlar sifatida birga kiritilganda, TI statistik jihatdan ahamiyatsiz bo'lib qoladi. Uning mazmuni o'z ichiga oladi. Bu savdolar o'rniga kitob voqealarini kuzatishning empirik holatidir - deyarli savdoga aylangan voqealar xuddi shunday ma'lumotlarni o'z ichiga oladi.

Hajm bo‘yicha o‘lchangan o‘rta bu nomutanosiblik o‘lchovi emas, balki adolatli qiymat hisoblagichidir va u DeepLOB — shu jumladan, nomlash Stoikovning mikro-narxi emasligi haqidagi ogohlantirish, bu martingal bilan tartibga solingan. Mt+g(I,S)M_t + g(I,S) bashoratchi aniq qurilgan, chunki sodda og'irlikdagi o'rta tarafli.

Python amalga oshirish

Oqimni hisoblash mexanizmi orqali o'tadigan buyurtma kitobi voqealar oqimi

CKS parchalanishini to'g'ridan-to'g'ri amalga oshirish, umumlashtirilgan LL darajalari.

Asosiy OFI hisoblash

import numpy as np
import pandas as pd
from dataclasses import dataclass, field
from typing import Optional

@dataclass
class OrderBookSnapshot:
    timestamp: float
    bid_prices: np.ndarray   # best bid at index 0, descending
    ask_prices: np.ndarray   # best ask at index 0, ascending
    bid_sizes: np.ndarray
    ask_sizes: np.ndarray

@dataclass
class OFICalculator:
    """
    Computes Order Flow Imbalance from consecutive order book snapshots.
    Supports multi-level OFI (MLOFI) up to `n_levels` deep.
    """
    n_levels: int = 5
    prev_snapshot: Optional[OrderBookSnapshot] = field(default=None, init=False)

    def compute_level_ofi(
        self,
        prev_price: float, curr_price: float,
        prev_size: float, curr_size: float,
        side: str
    ) -> float:
        """Compute single-level OFI contribution for bid or ask side."""
        if side == "bid":
            if curr_price > prev_price:
                return curr_size              # new level appeared above
            elif curr_price < prev_price:
                return -prev_size             # old level disappeared
            else:
                return curr_size - prev_size  # same level, size changed
        else:  # ask side
            if curr_price < prev_price:
                return curr_size              # new level appeared below
            elif curr_price > prev_price:
                return -prev_size             # old level disappeared
            else:
                return curr_size - prev_size  # same level, size changed

    def update(self, snapshot: OrderBookSnapshot) -> Optional[np.ndarray]:
        """
        Process new snapshot, return MLOFI vector of shape (n_levels,).
        Returns None on first call (no previous snapshot to compare).
        """
        if self.prev_snapshot is None:
            self.prev_snapshot = snapshot
            return None

        prev = self.prev_snapshot
        n = min(self.n_levels, len(snapshot.bid_prices), len(prev.bid_prices))
        ofi = np.zeros(n)

        for level in range(n):
            e_buy = self.compute_level_ofi(
                prev.bid_prices[level], snapshot.bid_prices[level],
                prev.bid_sizes[level], snapshot.bid_sizes[level],
                side="bid"
            )
            e_sell = self.compute_level_ofi(
                prev.ask_prices[level], snapshot.ask_prices[level],
                prev.ask_sizes[level], snapshot.ask_sizes[level],
                side="ask"
            )
            ofi[level] = e_buy - e_sell

        self.prev_snapshot = snapshot
        return ofi

Windows-ga yig'ish

@dataclass
class OFIAggregator:
    """
    Aggregates raw OFI updates into fixed time windows.
    Emits the regression inputs (aggregated MLOFI) and target (delta mid).
    """
    window_seconds: float = 10.0
    n_levels: int = 5
    calculator: OFICalculator = field(init=False)
    buffer: list = field(default_factory=list, init=False)
    window_start: float = 0.0

    def __post_init__(self):
        self.calculator = OFICalculator(n_levels=self.n_levels)

    def on_snapshot(self, snapshot: OrderBookSnapshot) -> Optional[dict]:
        """
        Feed a new order book snapshot.
        Returns aggregated window dict when a window completes, else None.
        """
        ofi_vec = self.calculator.update(snapshot)
        if ofi_vec is None:
            self.window_start = snapshot.timestamp
            return None

        if not self.buffer:
            self.window_start = snapshot.timestamp

        self.buffer.append({
            "timestamp": snapshot.timestamp,
            "ofi": ofi_vec.copy(),
            "mid": (snapshot.bid_prices[0] + snapshot.ask_prices[0]) / 2,
        })

        elapsed = snapshot.timestamp - self.window_start
        if elapsed >= self.window_seconds:
            return self._flush()
        return None

    def _flush(self) -> dict:
        """Aggregate buffered OFI updates into a single window record."""
        ofi_matrix = np.array([b["ofi"] for b in self.buffer])
        agg_ofi = ofi_matrix.sum(axis=0)  # shape: (n_levels,)

        result = {
            "window_start": self.window_start,
            "window_end": self.buffer[-1]["timestamp"],
            "n_updates": len(self.buffer),
            "mid_open": self.buffer[0]["mid"],
            "mid_close": self.buffer[-1]["mid"],
            "delta_mid": self.buffer[-1]["mid"] - self.buffer[0]["mid"],
            "ofi_level1": agg_ofi[0],
            "ofi_total": agg_ofi.sum(),
            "mlofi": agg_ofi,
        }

        self.buffer.clear()
        return result

Agregator nima chiqarishiga e'tibor bering: mlofi va delta_mid * bir xil * oynada. Bu hozirgi regressiya. Bashoratli oynani olish uchun oynani ulang kkning mlofi deraza bilan k+1k+1ning delta_mid va sezilarli darajada yomonroq moslashishni kuting.

Savdo tasnifi (Lee-Ready)

def classify_trades_lee_ready(
    trades: pd.DataFrame,
    quotes: pd.DataFrame
) -> pd.DataFrame:
    """
    Classify trades as buy (+1) or sell (-1) using Lee-Ready:
    quote rule first, tick rule as fallback at the midpoint.

    Parameters
    ----------
    trades : DataFrame with columns ['timestamp', 'price', 'size']
    quotes : DataFrame with columns ['timestamp', 'bid', 'ask']

    Returns
    -------
    trades with added 'side' column
    """
    trades = trades.sort_values("timestamp").copy()
    quotes = quotes.sort_values("timestamp")

    trades = pd.merge_asof(
        trades, quotes,
        on="timestamp",
        direction="backward"
    )

    trades["mid"] = (trades["bid"] + trades["ask"]) / 2

    trades["side"] = np.where(
        trades["price"] > trades["mid"], 1,
        np.where(trades["price"] < trades["mid"], -1, 0)
    )

    trades["price_diff"] = trades["price"].diff()
    tick_sign = np.sign(trades["price_diff"])
    tick_sign = tick_sign.replace(0, np.nan).ffill().fillna(1)

    midpoint_mask = trades["side"] == 0
    trades.loc[midpoint_mask, "side"] = tick_sign[midpoint_mask].astype(int)

    return trades

Signalni normallashtirish

class OFISignal:
    """
    Rolling z-score normalization of aggregated OFI.

    Deliberately does NOT convert OFI into a predicted return: that
    requires a fitted beta, and beta is venue-, pair- and regime-specific.
    Fit it on your own data before wiring this into anything.
    """
    def __init__(self, window_seconds: float = 10.0, n_levels: int = 5,
                 lookback: int = 100):
        self.aggregator = OFIAggregator(
            window_seconds=window_seconds, n_levels=n_levels,
        )
        self.lookback = lookback
        self.ofi_history: list[float] = []

    def process(self, snapshot: OrderBookSnapshot) -> Optional[dict]:
        agg = self.aggregator.on_snapshot(snapshot)
        if agg is None:
            return None

        ofi = agg["ofi_level1"]
        self.ofi_history.append(ofi)
        if len(self.ofi_history) > self.lookback:
            self.ofi_history.pop(0)

        if len(self.ofi_history) >= 20:
            arr = np.array(self.ofi_history)
            mu, sigma = arr.mean(), arr.std()
            zscore = (ofi - mu) / max(sigma, 1e-10)
        else:
            zscore = 0.0

        return {**agg, "ofi_zscore": zscore}

OFI qayerga ulanadi

Modulli savdo quvuriga ulanadigan buyurtma oqimi signali

Bozor yaratish. OFI adolatli qiymat bo'yicha bashoratli chayqalish atamasi sifatida, allaqachon olingan va kodlangan inventar qiyshiqligi ustiga kiritadi. Avellaneda-Stoikov marketmeykeri: Pfair=Pmid+γflowOFIzγinvqP^{fair} = P^{mid} + \gamma_{flow} \cdot OFI_{z} - \gamma_{inv} \cdot q. Ikki atama turli savollarga javob beradi - oqim atamasi narx qayerga ketayotganini aytadi, inventar atamasi siz nimani ushlab turishingiz mumkinligini aytadi - va nashr etilgan maqola ikkinchisini o'z ichiga oladi, shu jumladan ijobiy inventar nega ikkala kotirovkani pastga tushiradi. Katta OFIz|OFI_z| Katalogda keltirilgan mudofaa javoblari (kengaytirish, kichraytirish, bir tomonni tortish) uchun ham oqilona salbiy tanlov tetikidir. treyder identifikatsiyasining raqamli barmoq izlari va anomaliyalarni aniqlash.

Bajarish. OFI taktika qatlamining to‘ldirish ehtimolini baholashga kirishdir. pp, alohida shoshilinch nazoratchi emas. O'zaro qarama-qarshilikdan keyingi qaror aniq zararsizlik arifmetikasidir - p=δ/(Π+δ)p^* = \delta/(\Pi + \delta) bilan Π=s+ftfm\Pi = s + f_t - f_m - va yashaydi bolalar buyrug'ini bajarish taktikasi, bu shuningdek, taktika qatlami hech qachon bozorga nisbatan o'z nuqtai nazaridan shoshilinchlikni qaytarmasligi kerakligini ta'kidlaydi, chunki bu rozi bo'lmagan ikkita nazoratchini yaratadi.

Amaliy mulohazalar

Shovqinli mikrotuzilma hududida harakatlanadigan barqaror bozor signali

Signalning yarim yemirilish davri va aylanishni qayta kalibrlash. Bu OFIga xos qism. OFI ning bashoratli tarkibi suyuq asboblarda millisekunddan soniyagacha bo'lgan vaqt oralig'ida pasayadi, ya'ni yig'ish oynasi bepul parametr emas - bu ufqdagi pul tikish. Va β\beta doimiy emas: u kun davomida, chuqurlikda va rejalashtirilgan voqealar atrofida harakatlanadi, shuning uchun har qanday ishlab chiqarish moslamasi orqa sinovdan qiymatni mahkamlashdan ko'ra, uni aylantiruvchi oynalarda qayta baholaydi.

Bu erda hamma narsa boshqa joyda yoritilgan. Kechikish byudjetlari va birgalikda joylashish / FPGA / yadroni aylanib o'tish narvonlari: DeepLOB ishlab chiqarish bo'limi. U shaklidagi kunlik likvidlik sxemasi va o'zgaruvchan normalizatsiya statistikasi: yoyilgan modellashtirish. Har bir joy uchun qayta kalibrlash va nima uchun Nasdaq-ga o'rnatilgan model tegilmagan kripto juftligiga o'tmaydi: DeepLOB yana parchalanish tomoni bilan aqlli buyurtma marshrutlash.

Manipulatsiya. Bitta oqibat bu modelga xos bo‘lib, uni ochiq aytishga arziydi: CKS dekompozitsiyasi har bir hodisani faqat o‘lcham bo‘yicha baholaydi, maqsad yoki qat’iylik tushunchasisiz. Shuning uchun o'lchamni o'rnatish va bekor qilish uchun parda to'g'ridan-to'g'ri signalga to'liq og'irlikda, konstruktsiyasi bo'yicha kiritiladi. Aniqlash evristikasi - bekor qilish stavkalari, buyurtma muddati, narx yaqinlashganda devor harakati - mavjud navbat holati va buyurtma kitob devori tahlili; o'zaro fantom likvidligi mavjud aqlli buyurtma marshrutlash.

Asosiy xulosalar

Buyurtma oqimi haqidagi asosiy tushunchalar bitta aniq signalga aylanadi

  1. OFI oniy tasvir emas, voqea dekompozitsiyasidir. Uch tarmoqli indikator formulasi har bir kitobning yuqori qismiga o‘tishni xaritada ko‘rsatadi - narxning ko‘tarilishi, arzonlashishi, o‘lchamining o‘zgarishi - ikkita ketma-ket suratdan bitta imzolangan raqamga va boshqa hech narsa emas.

  2. R-kvadrat sarlavhasi bir vaqtning o'zida. CKS 50-65% ko'rsatkichi bir xil oraliqdagi narxlar o'zgarishlarini parchalaydi; bu prognoz emas va uni istiqbolli qaytish modellari bilan taqqoslash kerak emas.

  3. Ko'p darajali OFI darajalarni qo'shadi va PCA ularni yopib qo'yadi. Chop etilgan qo'shimcha-R2R^2 va 89% variatsiya natijalari Nasdaq aktsiyalaridan. Kripto kitobida chuqurlik hali ham yordam beradimi, bu erda tekshirilmagan.

  4. OFI savdo nomutanosibligini o'z ichiga oladi. Birgalikda kiritilgan TI ahamiyatsiz bo'lib qoladi - OFI ko'rgan va TI mumkin bo'lmagan bekor qilishlar farq qiladi.

  5. Model o‘z niyatiga bog‘liq emas. Hajmi bo‘yicha bir xil og‘irlikda bo‘lishi aynan uni buzuvchi qiladi.

  6. Ushbu maqolada hech narsa o'lchanmaydi. Ko'rsatilgan har bir raqam qimmatli qog'ozlar adabiyotidan olingan. Ushbu signal kapitalga tegishidan oldin u sizning kitobingiz ma'lumotlariga mos kelishi, alohida xabar qilingan kechikish spetsifikatsiyasi va chekka to'lovlar va tarqalishdan omon qolganligini tekshirish kerak.

Qo'shimcha o'qish

OFI kontseptsiyasi atrofida bog'langan mikrotuzilma tadqiqot yo'llari

  • Cont, R., Kukanov, A., & Stoikov, S. (2014). "Buyurtma kitobi voqealarining narxga ta'siri." Journal of Financial Econometrics, 12(1), 47-88.
  • Xu, K., Gould, M. va Howison, S. (2019). "Ko'p darajali buyurtma - Limitli buyurtmalar kitobidagi oqim nomutanosibligi". arXiv:1907.06230.
  • Kolm, P., Turiel, J. va Westray, N. (2023). "Chuqur tartib oqimi nomutanosibligi: Limit buyurtmalar kitobidan bir nechta ufqlarda alfani olish." Matematik moliya, 33(4).
  • Li, C. va Ready, M. (1991). "Bir kunlik ma'lumotlardan savdo yo'nalishini aniqlash." Journal of Finance, 46(2), 733-746.
  • Easley, D., Lopez de Prado, M. va O'Hara, M. (2012). "Yuqori chastotali dunyoda oqimning toksikligi va likvidligi". Moliyaviy tadqiqotlar sharhi, 25(5), 1457-1493.
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

Bozordan bir qadam oldinda bo'ling

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

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