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