Standart Z-ball o‘rtacha qiymat va standart og‘ishdan foydalanadi. Kriptoda esa bitta likvidatsiya kaskadi juda keskin chetga chiqishlarni (outlierlar) yuzaga keltirib, o‘rtacha qiymatni ham, standart og‘ishni ham buzadi. Natijada standart Z-ball keyingi zararli hajm (toxic volume) keskin ortishlarini sezmay qoladi.

Robust Z-ball o‘rtacha qiymat va standart og‘ishni Median va MAD (Median Absolute Deviation — median bo‘yicha mutlaq og‘ish) bilan almashtiradi, shu sababli u outlierlarga chidamli (immun):

$$\text{Robust Z} = 0.6745 \times \frac{x - \text{Median}}{\text{MAD}}$$

1. Matematik masala: Standart Z-ball vs. chetga chiqishlar (outlierlar)

Savdo buyurtmalar kitobi hajmlari uchun aylanma oynani (rolling window) ko‘raylik: [10, 12, 11, 15, 100, 14] (bu yerda 100 — to‘satdan likvidatsiya spike’i).

  • Yangi 25 hajm uchun standart Z-Score:

    • O'rtacha = 27.0, Standart og'ish = 32.8

    • Standart Z = (25 - 27.0) / 32.8 = -0.06 (Ogohlantirishni ishga tushirmaydi!)

  • Yangi 25 hajm uchun mustahkam Z-Score:

    • Median = 13.0, MAD = 2.5

    • Mustahkam Z = 0.6745 × (25 - 13.0) / 2.5 = 3.24 (Zaharli hajm ogohlantirishini ishga tushiradi!)

2. Sof Python amalga oshirishi (Standart Z-Score)

Agar siz MADsiz hajm anomaliyalarini qo'lda hisoblasangiz, yuqori o'zgaruvchanlik paytida ijro bazangiz buziladi:

def calculate_z_score( list[float]) -> float:

if not data or len(data) < 2:

return 0.0

mean = sum(data) / len(data) variance = sum((x - mean) ** 2 for x in data) / len(data)

std = variance**0.5 return (data[-1] - mean) / std if std else 0.0

# Misol sifatida foydalanish:

volumes = [10.0, 12.0, 11.0, 15.0, 100.0, 25.0]

z = calculate_z_score(volumes)

print(f"Standard Z-Score: {z:.2f}")

# Chiqish: -0.06 (Chalg'ituvchi)

3. Ishlab chiqarishga tayyor SDK muqobili

Qo'lda orderbook agregatsiyasi va chet qiymatlar matematikasini @followsm/sdk bilan o'tkazib yuboring:

npm i @followsm/sdk

import { FollowSMClient } from "@followsm/sdk"; // Mijozni ishga tushirish (bepul daraja uchun apiKey ni o'tkazib yuboring) const client = new FollowSMClient({ apiKey: "fsm_live_..." });

// Real vaqtdagi orderbook toksikligi va mustahkam Z ko'rsatkichlarini olish

const snapshot = await client.getToxicitySnapshot("BTCUSDT");

if (snapshot.is_toxic_alert) {

console.log(`⚠️ Zaharli oqim! VPIN: ${snapshot.vpin}, Hacmning mustahkam Z-si: ${snapshot.volume_z_score}`);

}

4. Real vaqtdagi Snapshot yuklamasi

{ "symbol": "BTCUSDT",

"timestamp": 1758412800.0,

"price": 62150.5,

"vpin": 0.72,

"ob_toxicity_1pct": 2.35,

"ob_imbalance_l1": 0.61,

"depth_bands": { "0.5%": { "bid_notional": 184320.0, "ask_notional": 96410.0, "imbalance_ratio": 0.657 }, "1.0%": { "bid_notional": 312500.0, "ask_notional": 210800.0, "imbalance_ratio": 0.597 }, "2.0%": { "bid_notional": 590100.0, "ask_notional": 470200.0, "imbalance_ratio": 0.556 } },

"volume_z_score": 3.23,

"natr_15m": 0.84,

"taker_buy_ratio": 0.58,

"is_toxic_alert": true

}

#Crypto #TradingBot #Quant #BinanceSquareTalks #HFT $BTC $ETH