Yüksek Frekanslı Veri Analizi — Tick Seviyesinde Piyasa Verisi İşleme

Kripto para piyasasında yüksek frekanslı işlemler milisaniye/mikrosaniye ölçeklerinde gerçekleşir. Günde milyonlarca tick verisini işlemek, ani veri akışlarını yönetmek ve mikroyapı sinyallerini çıkarmak profesyonel traderları diğerlerinden ayırır. Bu rehber, Smart Money API'nin 5 dakikalık yenileme döngülerini besleyen tick seviyesinde veri yönetimi ve gerçek zamanlı analizleri ele alır.

Önemli içgörü: Balinalar piyasaları anında hareket ettirmez. Büyük blok işlemleri, emir defteri dengesizliği, alım-satım spreadleri ve taker hacim oranlarında tespit edilebilir izler bırakır. Smart Money API bu izleri gerçek zamanlı olarak yakalar.

Tick Verisi Toplama ve Depolama

Veri Kaynakları

Kripto için tick verisi şu kaynaklardan gelir:

Parquet ile Verimli Tick Depolama

Sıkıştırılmış sütunlu veri depolama ile hızlı sorgular:

Python — Tick veri işleme hattı
import pandas as pd
import pyarrow.parquet as pq
# Gerçek zamanlı tick tamponu (1 saat biriktir, sonra kaydet)
tick_buffer = []
def on_tick(exchange, symbol, price, size, side, timestamp):
tick_buffer.append({
"timestamp": timestamp,
"exchange": exchange,
"symbol": symbol,
"price": price,
"size": size,
"side": side # "buy" veya "sell"
})
# Her saat, sıkıştır ve kaydet
if len(tick_buffer) > 1_000_000:
df = pd.DataFrame(tick_buffer)
pq.write_table(
pa.Table.from_pandas(df),
f"ticks/{symbol}_{timestamp:%Y%m%d_%H}.parquet",
compression="snappy"
)
tick_buffer = []

Emir Defteri Analizi

Seviye 2 Emir Defteri Anlık Görüntüleri

Tam emir defterini her 100-500ms'de bir yakalayın:

Python — Emir defteri işleme
class OrderBook:
def __init__(self):
self.bids = {} # fiyat -> miktar
self.asks = {} # fiyat -> miktar
def update(self, side, price, size):
if side == "bid":
if size == 0: del self.bids[price]
else: self.bids[price] = size
else:
if size == 0: del self.asks[price]
else: self.asks[price] = size
def get_imbalance(self, depth=10):
# En iyi 10 alım ve satımı al
top_bids = sorted(self.bids.items(), reverse=True)[:depth]
top_asks = sorted(self.asks.items())[:depth]
bid_volume = sum(size for _, size in top_bids)
ask_volume = sum(size for _, size in top_asks)
# Dengesizlik: >1 = boğa (daha fazla alım baskısı)
dönüş teklif_hacmi / talep_hacmi eğer talep_hacmi > 0 değilse 1.0
tanımla spread_al(self):
en_iyi_teklif = max(self.teklifler.keys())
en_iyi_talep = min(self.talepler.keys())
dönüş (en_iyi_talep - en_iyi_teklif) / en_iyi_teklif # yüzde spread

Mikroyapı Sinyalleri

Emir defteri yapısından aksiyon alınabilir sinyaller çıkarın:

Piyasa Mikroyapı Metrikleri

Hacim Ağırlıklı Ortalama Fiyat (VWAP)

Basit kapanış fiyatından daha iyi bir uygulama kıyaslaması:

Python — VWAP hesaplaması
tanımla vwap_hesapla(tikler):
# tikler: (fiyat, hacim) demetlerinin listesi
pay = sum(fiyat * hacim için fiyat, hacim içinde tikler)
payda = sum(hacim için _, hacim içinde tikler)
dönüş pay / payda

Alıcı/Satıcı Oranı

Hangi tarafın agresif olduğunu belirleyin:

Python — Alıcı analizi
tanımla alici_yonu_al(tik):
# Eğer işlem fiyatı = teklif, o zaman satıcı agresif (arz)
# Eğer işlem fiyatı = talep, o zaman alıcı agresif (talep)
eğer abs(tik.fiyat - en_iyi_teklif) < tik.fiyat_adimi:
dönüş "satış"
eğer abs(tick.fiyat - best_ask) < tick.fiyat_adımı:
döndür "al"
değilse:
döndür "orta" # Spread içinde, muhtemelen karanlık havuz
al_volume = sum(t.büyüklük için t içinde tikler eğer get_taker_direction(t) == "al")
sat_volume = sum(t.büyüklük için t içinde tikler eğer get_taker_direction(t) == "sat")
döndür al_volume / (al_volume + sat_volume) # % al

Gerçek Zamanlı Boru Hattı Mimarisi

WebSocket Akış İşleme

Bybit/Binance/Hyperliquid WebSocket'e canlı veri için bağlanın:

Python — Canlı akış işleyici
import asyncio
import websockets
async def connect_bybit_ticks(sembol):
url = f"wss://stream.bybit.com/v5/public/spot"
async ile websockets.connect(url) olarak ws:
# Ticaret akışına abone ol
bekle ws.send(json.dumps({
"op": "subscribe",
"args": [f"publicTrade.{sembol}"]
}))
async için mesaj içinde ws:
veri = json.loads(mesaj)
için ticaret içinde data["data"]:
on_tick(
exchange="bybit",
symbol=symbol,
price=float(trade["price"]),
size=float(trade["size"]),
side=trade["side"],
timestamp=int(trade["time"])
)

Redis Streams ile Dağıtılmış İşleme

Mesaj kuyruğu ile günde milyonlarca tik işleyin:

Python — Redis akış işleme
import redis
r = redis.Redis(host='localhost', port=6379)
# Üretici: tikleri akışa gönder
def publish_tick(exchange, symbol, tick):
stream_key = f"ticks:{exchange}:{symbol}"
r.xadd(stream_key, {
"price": tick.price,
"size": tick.size,
"side": tick.side,
"ts": tick.timestamp
})
# Tüketici grubu gecikme takibi ile okur
r.xgroup_create(stream_key, "analytics", id="$", mkstream=True)

Analizlerinize gerçek zamanlı sinyaller ekleyin

Smart Money API, 3 borsa ve 250+ balina cüzdanından tik verilerini toplar. Kendi gerçek zamanlı analizinizi geliştirmek için önceden hesaplanmış mikro yapı sinyallerimizi kullanın.

Ücretsiz Başlayın →