உயர்-அதிர்வெண் தரவு பகுப்பாய்வு — டிக்-நிலை சந்தை தரவு செயலாக்கம்

கிரிப்டோவில் உயர்-அதிர்வெண் வர்த்தகம் மில்லிநொடி/மைக்ரோநொடி நேர அளவுகளில் செயல்படுகிறது. ஒரு நாளில் மில்லியன் கணக்கான டிக்குகளை செயலாக்குதல், விரைவான தரவு ஓட்டங்களை கையாளுதல் மற்றும் மைக்ரோஸ்ட்ரக்சர் சிக்னல்களை பிரித்தெடுத்தல் தொழில்முறை வர்த்தகர்களை மற்றவர்களிடமிருந்து பிரிக்கிறது. இந்த வழிகாட்டி டிக்-நிலை தரவு மேலாண்மை மற்றும் ரியல்-டைம் பகுப்பாய்வுகள் பற்றி விவரிக்கிறது, இது Smart Money API இன் 5-நிமிட புதுப்பிப்பு சுழற்சிகளை இயக்குகிறது.

முக்கிய பார்வை: திமிங்கலங்கள் சந்தைகளை உடனடியாக நகர்த்துவதில்லை. அவற்றின் தொகுதி வர்த்தகங்கள் ஆர்டர் புக் சமநிலையின்மை, பிட்-ஆஸ்க் ஸ்ப்ரெட்ஸ் மற்றும் டேக்கர் வால்யூம் விகிதங்களில் கண்டறியக்கூடிய கையொப்பங்களை உருவாக்குகின்றன. Smart Money API இந்த கையொப்பங்களை ரியல்-டைமில் பிடிக்கிறது.

டிக் தரவு சேகரிப்பு மற்றும் சேமிப்பு

தரவு மூலங்கள்

கிரிப்டோவிற்கு, டிக் தரவு வருவது:

பார்க்வெட் மூலம் திறமையான டிக் சேமிப்பு

விரைவான வினவல்களுக்கு சுருக்கப்பட்ட நெடுவரிசை தரவை சேமிக்கவும்:

பைதான் — டிக் தரவு பைப்லைன்
உள்ளீடு pandas as pd
உள்ளீடு pyarrow.parquet as pq
# ரியல்-டைம் டிக் பஃபர் (1 மணிநேரம் திரட்டி, பின்னர் சேமிக்கவும்)
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" or "sell"
})
# ஒவ்வொரு மணிநேரமும், சுருக்கி சேமிக்கவும்
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 = []

ஆர்டர் புக் பகுப்பாய்வு

நிலை 2 ஆர்டர் புக் ஸ்னாப்ஷாட்கள்

ஒவ்வொரு 100-500ms இல் முழு ஆர்டர் புக்ஸை பிடிக்கவும்:

பைதான் — ஆர்டர் புக் செயலாக்கம்
class OrderBook:
def __init__(self):
self.bids = {} # price -> size
self.asks = {} # price -> size
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):
# சிறந்த 10 பிட்கள் மற்றும் ஆஸ்க்குகளைப் பெறவும்
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)
# Imbalance: >1 = bullish (அதிக வாங்கும் அழுத்தம்)
திரும்ப bid_volume / ask_volume என்றால் ask_volume > 0 இல்லையெனில் 1.0
வரையறு get_spread(self):
best_bid = max(self.bids.keys())
best_ask = min(self.asks.keys())
திரும்ப (best_ask - best_bid) / best_bid # சதவீத பரவல்

மைக்ரோஸ்ட்ரக்ச்சர் சிக்னல்கள்

ஆர்டர் புத்தக அமைப்பிலிருந்து செயல்படுத்தக்கூடிய சிக்னல்களைப் பிரித்தெடுக்கவும்:

மார்க்கெட் மைக்ரோஸ்ட்ரக்ச்சர் மெட்ரிக்ஸ்

Volume-Weighted Average Price (VWAP)

எளிய முடிவு விலையை விட சிறந்த செயல்பாட்டு அளவுகோல்:

Python — VWAP கணக்கீடு
வரையறு calculate_vwap(ticks):
# ticks: விலை, அளவு டூப்பிள்களின் பட்டியல்
numerator = sum(price * volume க்கு price, volume இல் ticks)
denominator = sum(volume க்கு _, volume இல் ticks)
திரும்ப numerator / denominator

Taker Buy/Sell Ratio

எந்த பக்கம் ஆக்கிரமிப்பாக உள்ளது என்பதை அடையாளம் காணவும்:

Python — Taker பகுப்பாய்வு
வரையறு get_taker_direction(tick):
# டிரேட் விலை = bid எனில், விற்பவர் ஆக்கிரமிப்பாக இருந்தார் (விநியோகம்)
# டிரேட் விலை = ask எனில், வாங்குபவர் ஆக்கிரமிப்பாக இருந்தார் (தேவை)
என்றால் abs(tick.price - best_bid) < tick.price_step:
திரும்ப "sell"
இல்லையெனில் abs(tick.price - best_ask) < tick.price_step:
திரும்ப "buy"
இல்லையெனில்:
திரும்ப "mid" # உள்ளே பரவல், சாத்தியமான டார்க் பூல்
buy_volume = sum(t.size க்கு t இல் ticks என்றால் get_taker_direction(t) == "buy")
sell_volume = sum(t.size க்கு t இல் ticks என்றால் get_taker_direction(t) == "sell")
திரும்ப buy_volume / (buy_volume + sell_volume) # % வாங்கு

Real-Time Pipeline Architecture

WebSocket Stream Processing

Bybit/Binance/Hyperliquid WebSocket-ஐ நேரடி தரவுக்கு இணைக்கவும்:

Python — நேரடி ஸ்ட்ரீம் ஹேண்ட்லர்
உள்ளேற்று asyncio
உள்ளேற்று websockets
async வரையறு connect_bybit_ticks(symbol):
url = f"wss://stream.bybit.com/v5/public/spot"
async உடன் websockets.connect(url) என ws:
# டிரேட் ஸ்ட்ரீமுக்கு சப்ஸ்க்ரைப் செய்யவும்
காத்திரு ws.send(json.dumps({
"op": "subscribe",
"args": [f"publicTrade.{symbol}"]
}))
async க்கு message இல் ws:
data = json.loads(message)
க்கு trade இல் தரவு["data"]:
on_tick(
exchange="bybit",
symbol=symbol,
price=float(trade["price"]),
size=float(trade["size"]),
side=trade["side"],
timestamp=int(trade["time"])
)

ரெடிஸ் ஸ்ட்ரீம்களுடன் விநியோகிக்கப்பட்ட செயலாக்கம்

தினசரி மில்லியன் கணக்கான டிக்குகளை செய்தி வரிசையுடன் கையாளவும்:

பைதான் — ரெடிஸ் ஸ்ட்ரீம் செயலாக்கம்
உள்ளீடு ரெடிஸ்
r = redis.Redis(host='localhost', port=6379)
# உற்பத்தியாளர்: ஸ்ட்ரீமுக்கு டிக்குகளை தள்ளவும்
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
})
# Consumer group reads with lag tracking
r.xgroup_create(stream_key, "analytics", id="$", mkstream=True)

உங்கள் பகுப்பாய்வுக்கு நிகழ்நேர சமிக்ஞைகளைச் சேர்க்கவும்

Smart Money API 3 எக்ஸ்சேஞ்சுகள் மற்றும் 250+ திமிங்கல வாலட்களிலிருந்து டிக் தரவைத் தொகுக்கிறது. உங்கள் சொந்த நிகழ்நேர பகுப்பாய்வை மேம்படுத்த எங்கள் முன்கணக்கிடப்பட்ட மைக்ரோஸ்ட்ரக்சர் சமிக்ஞைகளைப் பயன்படுத்தவும்.

இலவசமாக இன்றே தொடங்குங்கள் →