Crypto-তে NBBO নেই কেন: SIP ও Tape অনুপস্থিত
Crypto-তে NBBO, SIP বা consolidated tape নেই। তাই একই মুহূর্তে দুই venue-তে ভিন্ন দাম দেখা যায়, আর index ও reference rate বিকল্প দামের কাঠামো দেয়।
Crypto-তে NBBO নেই। National best bid and offer হলো Regulation NMS নামের একটি rulebook-এর সৃষ্টি, যা NMS stocks লেনদেনকারী US exchanges-কে নিয়ন্ত্রণ করে। Crypto venues-এর ওপর এর সমতুল্য কোনো কাঠামো নেই। একই মুহূর্তে দুটি exchange একই coin-এর জন্য ভিন্ন দাম quote করতে পারে। দুটি quote-ই বাস্তব, কিন্তু কোনোটিই এককভাবে সেই coin-এর দাম নয়। Crypto-তে কোথাও কোনো mechanism-এর দায়িত্ব নেই একটি একক দাম তৈরি করার।
Crypto-তে NBBO নেই কেন: অনুপস্থিত দুটি উপাদান
US equities-এ একবারে একটি দাম তৈরি হয় market plumbing-এর দুটি উপাদানের মাধ্যমে।
প্রথমটি হলো consolidated tape। প্রতিটি registered exchange তার quote এবং trade একটি securities information processor-এ, অর্থাৎ SIP-এ পাঠায়। SIP সেগুলো একত্র করে একটি public stream তৈরি করে। ওই stream-এর সর্বোচ্চ bid এবং সর্বনিম্ন offer-ই হলো NBBO। এই data বিভিন্ন subscriber-এর কাছে ভিন্ন গতিতে কীভাবে পৌঁছায়, তা আমাদের SIP এবং direct exchange feeds-এর তুলনা গাইডে ব্যাখ্যা করা হয়েছে।
দ্বিতীয়টি হলো Rule 611, অর্থাৎ order protection rule। কোনো venue অন্য venue-এর protected quote-এর চেয়ে খারাপ দামে order execute করতে পারে না। ফলে NBBO কেবল প্রকাশিত একটি পরিসংখ্যান থাকে না; কোনো order কোথায় print হতে পারবে, তার ওপর এটি একটি সীমাবদ্ধতা তৈরি করে।
Crypto-তে এই দুটির কোনোটিই নেই। কোনো processor venue feed-গুলো একত্র করে না। আবার কোনো rule-ও কোনো venue-কে অন্যত্র থাকা ভালো দামের মধ্য দিয়ে trade করা থেকে বাধা দেয় না। প্রতিটি exchange নিজের order book-এর বিপরীতে নিজের order match করে এবং সেখানেই থামে।
Equity market-এর পদ্ধতিটি কাছ থেকে দেখা উপযোগী। নিচের panel-এ 10 June 2026-এর সকালে নির্দিষ্ট 30 মিনিটে একটি পরিচিত ticker, AAPL, নেওয়া হয়েছে। ওই সময়ে print হওয়া প্রতিটি share কোন venue-তে print হয়েছে, তা আলাদা করা হয়েছে।
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH
win AS
(
SELECT
toUInt16(exchange) AS ex_id,
toFloat64(price) * toFloat64(size) AS notional,
toFloat64(size) AS shares
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL'
AND sip_timestamp >= '2026-06-10 14:00:00'
AND sip_timestamp < '2026-06-10 14:30:00'
AND price > 0
AND size > 0
),
venues AS
(
SELECT
toUInt16(id) AS ex_id,
name
FROM global_markets.stocks_exchanges
WHERE asset_class = 'stocks'
),
by_venue AS
(
SELECT
ex_id,
sum(notional) AS notional,
sum(shares) AS shares,
count() AS print_count
FROM win
GROUP BY ex_id
)
SELECT
ifNull(nullIf(v.name, ''), concat('Venue ', toString(b.ex_id))) AS venue,
round(100 * b.shares / sum(b.shares) OVER (), 2) AS pct_of_shares,
b.print_count AS print_count,
round(abs(10000 * ((b.notional / b.shares)
/ (sum(b.notional) OVER () / sum(b.shares) OVER ()) - 1)), 2) AS abs_gap_bps
FROM by_venue AS b
LEFT JOIN venues AS v ON v.ex_id = b.ex_id
ORDER BY abs_gap_bps DESC30 মিনিটে 17টি venue-জুড়ে share হাতবদল হয়েছে। Panel-টি window-এর overall volume-weighted average price থেকে দূরত্ব অনুযায়ী venue-গুলোকে সাজিয়েছে। সবচেয়ে দূরের venue, 24X National Exchange LLC, ওই দামের থেকে 5.21 basis points দূরে ছিল এবং 0.01% share handle করেছে। সবচেয়ে কাছের venue, Investors Exchange, 0.01 basis points-এর মধ্যে print করেছে। এক basis point হলো 1%-এর একশ ভাগের এক ভাগ। এই clustering প্রতিযোগীদের পারস্পরিক সৌজন্যের ফল নয়। Rule 611 এবং consolidated quote এক ডজন পৃথক order book-কে একই দামের মধ্যে ধরে রাখে।
একই মুহূর্তে দুটি crypto venue ভিন্ন দাম দেখায় কেন?
Order book আলাদা, আর সেগুলোকে সংযুক্ত করার মতো capital ধীরে চলে। সস্তা venue-তে কিনে একই মুহূর্তে দামি venue-তে বিক্রি করতে হলে বিক্রির venue-তে coin এবং কেনার venue-তে cash আগে থেকেই থাকতে হয়। Transfer-এর জন্য network confirmation এবং withdrawal review window লাগে। সময় লাগতে পারে কয়েক মিনিট থেকে কয়েক দিন। প্রতিটি transfer-এর সঙ্গে fee-ও থাকে। ফলে কোনো gap টিকে থাকে, যতক্ষণ না দুই পাশে আগে থেকেই অবস্থান নেওয়া কেউ সেটি কাজে লাগানোকে লাভজনক মনে করে।
Quoted spread-ও প্রকৃত cost-এর তুলনায় ছোট অংশ। একটি hypothetical উদাহরণ নিন: কোনো venue উভয় পাশে liquidity নেওয়ার জন্য 0.10% charge করলে round trip-এ মোট 20 basis points খরচ হয়। এটি 2 basis points quoted spread-কে সহজেই ছাপিয়ে যায়।
Crypto-তে locked এবং crossed quote কি স্বাভাবিক?
Best bid এবং best offer সমান হলে market locked হয়। Bid বেশি হলে market crossed হয়। Displayed equity quote-এর ক্ষেত্রে দুটি অবস্থাই violation। locked এবং crossed market-এ বর্ণিত হয়েছে, exchange কয়েক মুহূর্তের মধ্যে এগুলো দূর করে। নিজে হাতে top of book তৈরি করলে consolidated feed যে sequencing কাজটি করে, তা স্পষ্ট হয়। নিচের panel-এ একই ticker এবং window-কে 1-second bucket-এ ভাগ করা হয়েছে। কোন venue quote দিয়েছে বা ঠিক কখন দিয়েছে, তা বিবেচনা না করে প্রতিটি bucket-এর সর্বোচ্চ bid এবং সর্বনিম্ন offer নেওয়া হয়েছে।
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH
q AS
(
SELECT
toDateTime(toTimeZone(sip_timestamp, 'America/New_York')) AS sec,
toFloat64(bid_price) AS bid,
toFloat64(ask_price) AS ask
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= '2026-06-10 14:00:00'
AND sip_timestamp < '2026-06-10 14:30:00'
AND bid_price > 0
AND ask_price > bid_price
),
per_sec AS
(
SELECT
sec,
max(bid) AS top_bid,
min(ask) AS top_ask,
avg(ask - bid) AS venue_spread,
avg((ask + bid) / 2) AS mid
FROM q
GROUP BY sec
)
SELECT
formatDateTime(toStartOfMinute(sec), '%H:%i') AS et_time,
round(100 * countIf(top_bid >= top_ask) / count(), 1) AS locked_or_crossed_pct,
round(avgIf(10000 * (top_ask - top_bid) / mid, top_bid < top_ask), 2) AS top_of_book_spread_bps,
round(avg(10000 * venue_spread / mid), 2) AS venue_quote_spread_bps
FROM per_sec
GROUP BY toStartOfMinute(sec)
HAVING countIf(top_bid < top_ask) > 0
ORDER BY toStartOfMinute(sec)10:00 মিনিটে, মোট সেকেন্ডের 88.3% অংশ ওই সরল পদ্ধতিতে locked বা crossed হয়েছে। Uncrossed অংশের average width ছিল 0.49 basis points। একই সেকেন্ডগুলোতে একটি single venue quote-এর average width ছিল 1.27 basis points। একই মুহূর্তে কোনো একটি venue-এর quote-এর চেয়ে assembled top of book কখনও wider হতে পারে না। কারণ best bid আসে সর্বোচ্চ bid দেওয়া venue থেকে এবং best offer আসে সর্বনিম্ন offer দেওয়া venue থেকে। Equities-এ processor ওই stream-এ timestamp যোগ করে এবং সেগুলো সঠিক ক্রমে সাজায়; ফলে locked অবস্থা দূর হয়। Crypto-তে কেউ এই stream একত্র করে না। একটি venue-এর bid অন্য venue-এর offer-এর চেয়ে বেশি থাকা তাই স্বাভাবিক অবস্থা, সংশোধনের অপেক্ষায় থাকা কোনো error নয়।
NBBO-র পরিবর্তে কী আছে: index এবং reference rate
আইনগতভাবে নির্ধারিত best price না থাকায় crypto প্রকাশিত reference rate-এর ওপর নির্ভর করে। Reference rate হলো একটি লিখিত পদ্ধতিতে গণনা করা সংখ্যা। এতে নির্দিষ্ট venue-গুলোর একটি নামযুক্ত সেট, নির্ধারিত সময়সীমা এবং volume-weighted median of trades-এর মতো ঘোষিত formula থাকে। পদ্ধতিটিই এই product-এর মূল বিষয়। Spot crypto ETF এই ধরনের rate ব্যবহার করে net asset value নির্ধারণ করে। Cash-settled index product-ও এমন rate-এর ভিত্তিতে settlement করে।
এর দুটি বৈশিষ্ট্য রয়েছে। Reference rate price discovery নয়, একটি convention। কারণ venue set বদলালে বা window সরালে ভিন্ন সংখ্যা পাওয়া যায়। প্রকাশিত নিজস্ব পদ্ধতির অধীনে উভয় সংখ্যাই গ্রহণযোগ্য হতে পারে। Reference rate এমন print বর্ণনা করে, যা ইতিমধ্যে ঘটে গেছে এবং এমন venue-তে হয়েছে যেখানে কোনো নির্দিষ্ট trader-এর account নাও থাকতে পারে। তাই এটি এমন একটি mark, যে quote-এ কেউ সরাসরি trade করতে পারে না।
Depth-ও আলাদা। Consolidated equity feed-এ কেবল top of book থাকে। Full depth পেতে প্রতিটি exchange-এর নিজস্ব feed লাগে। level 1 বনাম level 2 market data-তে এই বিভাজনটি ব্যাখ্যা করা হয়েছে। Crypto venue-গুলো public API-তে তাদের full book প্রকাশ করে। এর ওপরে কোনো consolidated feed নেই। Licensed consolidated product না থাকায় stock quote 15 মিনিট দেরিতে আসে কেন-এ ব্যাখ্যা করা lag-এরও কোনো সমতুল্য ব্যবস্থা নেই।
NBBO ছাড়া কি best execution থাকে?
Equities-এ benchmark public। Order handle করার মুহূর্তে NBBO কত ছিল, তা tape থেকে পরে পুনর্গঠন করা যায়। Crypto-তে benchmark হলো router-এর নিজস্ব policy। Router যে venue-গুলোর সঙ্গে যুক্ত এবং প্রতিটিতে যে fee tier দেয়, তা fill নির্ধারণ করে। ভিন্ন venue list থাকা দুটি router একই মুহূর্তে ভিন্ন fill দিতে পারে। Equities-এর মতো কোনো rule ভঙ্গ না করেও তা সম্ভব।
Crypto-তে closing price নেই কেন
24/7 market-এর কোনো close নেই। Session শেষ হওয়ার জন্য কোনো নির্দিষ্ট ঘটনা নেই। কোনো provider যে daily candle তৈরি করে, সেটি provider-নির্ধারিত একটি timestamp থেকে শুরু হয়। সাধারণত সেই সময় 00:00 UTC। Equity close একটি scheduled mechanism। নিচের panel-এ 10 June session-এর শেষ 30 মিনিট minute by minute দেখানো হয়েছে।
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH bars AS
(
SELECT
toTimeZone(window_start, 'America/New_York') AS et,
toFloat64(volume) AS vol
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'AAPL'
AND window_start >= '2026-06-10 19:30:00'
AND window_start < '2026-06-10 20:01:00'
)
SELECT
formatDateTime(et, '%H:%i') AS et_time,
round(vol / 1e6, 2) AS volume_millions,
round(100 * vol / sum(vol) OVER (), 2) AS share_of_window_pct
FROM bars
ORDER BY etAuction এগিয়ে এলে volume কেন্দ্রীভূত হয়। 15:30 মিনিটে 0.1 million share trade হয়েছে। 16:00 মিনিটে 0.46 million share trade হয়েছে, যা পুরো 30 মিনিটের 8.6%। শেষ bar-এ closing auction অন্তর্ভুক্ত থাকে। একটি price এবং একটি মুহূর্তে official close চাইছে এমন সব participant একই queue-তে দাঁড়ায়। Fund ওই print-এর ভিত্তিতে price নির্ধারণ করে। Index provider-ও সেটিকে ভিত্তি করে rebalance করে। Crypto position-এর end-of-day mark তার বদলে accounting policy-তে উল্লেখ করা venue, timestamp এবং method অনুযায়ী নির্ধারিত হয়। একই position এবং একই সময়ের জন্য তৈরি দুটি statement-এর মধ্যে quoted spread-এর চেয়েও বেশি পার্থক্য থাকতে পারে।
এই panel-গুলো কীভাবে তৈরি করা হয়েছে
Venue panel-এ 10 June 2026, 10:00 থেকে 10:30 a.m. ET পর্যন্ত AAPL-এর প্রতিটি print গণনা করা হয়েছে। প্রতিটি exchange code-এর সঙ্গে তার নাম যুক্ত করা হয়েছে। কোনো code-এর নাম না থাকলে সেটিকে numbered venue হিসেবে দেখানো হয়েছে। Quote panel-এ একই window-কে 1-second bucket-এ ভাগ করা হয়েছে। Quote আসার ক্রম উপেক্ষা করা হয়েছে। তাই এটি প্রকৃত consolidated feed-এর তুলনায় ইচ্ছাকৃতভাবে সরল পদ্ধতি। Non-positive বা inverted price থাকা quote বাদ দেওয়া হয়েছে। কোনো uncrossed second না থাকা minute-ও বাদ দেওয়া হয়েছে। Closing panel-এ 1-minute bar ব্যবহার করা হয়েছে। শেষ bar-এ closing auction print অন্তর্ভুক্ত রয়েছে।
সাধারণ জিজ্ঞাসা
Crypto-তে কি NBBO আছে?
না। US-listed stock-এর জন্য Regulation NMS-এর অধীনে national best bid and offer নির্ধারিত হয়। Crypto trading ওই rulebook-এর বাইরে। কোনো processor crypto venue-এর quote একত্র করে একটি stream তৈরি করে না। কোনো rule-ও কোনো venue-কে অন্যত্র থাকা ভালো দামের মধ্য দিয়ে trade করা থেকে বাধা দেয় না।
একই মুহূর্তে বিভিন্ন exchange-এ crypto price ভিন্ন হয় কেন?
প্রতিটি venue কেবল নিজের order book-এর বিপরীতে order match করে। কোনো gap বন্ধ করার মতো capital আগে থেকেই দুই venue-তে থাকতে হয়। Transfer করতে সময় ও fee লাগে। Round trip cost-এর চেয়ে ওই gap থেকে লাভ বেশি না হওয়া পর্যন্ত পার্থক্যটি টিকে থাকে।
Consolidated tape-এর crypto equivalent কী?
প্রকাশিত index এবং reference rate সবচেয়ে কাছাকাছি সমতুল্য। প্রতিটি rate নির্দিষ্ট window-তে নামযুক্ত venue set এবং ঘোষিত method ব্যবহার করে গণনা করা হয়। তাই একই second-এ একই asset-এর জন্য দুটি provider ভিন্ন সংখ্যা প্রকাশ করতে পারে। Equities-এ NBBO-র যে আইনগত ক্ষমতা আছে, এর কোনোটির তা নেই।
Crypto-তে কি closing price আছে?
Equities-এ যেভাবে closing price থাকে, সেই অর্থে নেই। 24/7 market-এ কোনো closing auction নেই। যেকোনো daily close হলো data provider বেছে নেওয়া একটি timestamp convention। সাধারণত তা 00:00 UTC। Equity closing price আসে প্রকৃত auction থেকে, যেখানে সব closing interest একটি দামে match হয়।
এখানে প্রতিটি panel-এর সঙ্গে সেটি তৈরির SQL দেওয়া আছে। Strasmore terminal-এ যেকোনো ticker এবং যেকোনো window-এর জন্য একই প্রশ্ন venue by venue এবং minute by minute করা যায়।