চক্র কৌশল

স্প্রেড ও স্লিপেজ কীভাবে হিসাব করবেন: অর্ডার বুকের গভীরতা ও fill যাচাই

Best bid-ask, cumulative order-book depth ও প্রতিটি fill থেকে spread, VWAP ও slippage হিসাব করুন; বাস্তব BTC/USDT snapshot দিয়ে pre-order estimate ও post-fill check সম্পূর্ণ করুন।

স্প্রেড ও স্লিপেজ কীভাবে হিসাব করবেন: অর্ডার বুকের গভীরতা ও fill যাচাই

স্প্রেড ও স্লিপেজ কীভাবে হিসাব করবেন—এ প্রশ্নের উত্তর কোনো স্থির শতাংশ মুখস্থ করা নয়। একই সময়, একই দিক ও একই পরিমাণ ধরে order দেওয়ার আগে দেখা price-এর সঙ্গে actual weighted-average fill price তুলনা করতে হবে। এই গাইড শেষ করলে order book থেকে একটি market order কতগুলো price level নিতে পারে তা অনুমান করতে, spread ও slippage হিসাব করতে এবং fill আপনার পূর্বনির্ধারিত সীমার মধ্যে ছিল কি না যাচাই করতে পারবেন।

এটি spot trading-এর execution cost ও risk বোঝার শিক্ষামূলক লেখা, বিনিয়োগ পরামর্শ নয়। Order book প্রতি মুহূর্তে বদলায়। একটি static snapshot শুধু হিসাবের পদ্ধতি দেখায়; ভবিষ্যৎ fill price নিশ্চিত করে না।

BTC/USDT-এর বাস্তব public order-book depth chart: best bid-ask, quoted spread এবং 250,000 ও 1,000,000 USDT simulated market buy-এর slippage

সংক্ষিপ্ত উত্তর: spread, slippage ও execution cost আলাদা

Metric কোন benchmark-এর সঙ্গে তুলনা কী বোঝায়
Bid-ask spread একই সময়ের best ask ও best bid এখনই buy ও sell করার quoted gap কত?
Slippage Weighted-average fill ও order-এর আগের একই দিকের best price Order book-এর একাধিক level নেওয়া বা সময়ের মধ্যে price বদলানোর প্রভাব কত?
Midprice execution cost Weighted-average fill ও order-এর আগের midprice Spread ও slippage মিলিয়ে neutral benchmark থেকে কত দূরে fill হলো?
Total trading cost Execution cost, fee ও attributable funding cost খরচ পুষিয়ে নিতে asset price-কে অন্তত কতটা চলতে হবে?

Buy করার সময় best ask হলো তখনই পাওয়া প্রথম sell price; sell করার সময় best bid হলো প্রথম buy price। Latest traded price আগের একটি trade-এর তথ্য—আপনার executable price নয়।

ধাপ ১: quote ও সময় স্থির করুন

Order দেওয়ার আগে pair, side, intended quantity, best bid, best ask, order-book time এবং time zone লিখে রাখুন। সূত্র:

Midprice = (best bid + best ask) ÷ 2

Spread = best ask − best bid

Spread (bps) = spread ÷ midprice × 10,000

1 bps মানে 0.01%। শুধু quote-currency amount দেখার চেয়ে bps ব্যবহার করলে ভিন্ন asset ও price range তুলনা করা সহজ হয়। Buy সাধারণত midprice-এর তুলনায় প্রায় half-spread দিয়ে শুরু করে; sell-এর দিক উল্টো। তবে discrete quote, aggregated price বা অতিরিক্ত markup থাকলে এটিকে ঠিক অর্ধেক ধরে নেওয়া উচিত নয়।

ধাপ ২: order-book depth ক্রমে যোগ করুন

Ask side-এ অপেক্ষমাণ sell quantity থাকে এবং price সাধারণত কম থেকে বেশি সাজানো হয়। Bid side-এ অপেক্ষমাণ buy quantity থাকে এবং price সাধারণত বেশি থেকে কম সাজানো হয়। Market buy সবচেয়ে কম ask থেকে শুরু করে; market sell সবচেয়ে বেশি bid থেকে শুরু করে।

প্রতিটি price level pᵢ ও quantity qᵢ-এর জন্য:

Level-এর quote value = pᵢ × qᵢ

Cumulative depth = একের পর এক level-এর quote value-এর যোগফল

Cumulative depth প্রথমবার target amount ঢেকে দিলে শেষ level থেকে শুধু প্রয়োজনীয় অংশ নিন। Screen-এ দেখা total depth-কে executable amount ভাববেন না, আবার শুধু প্রথম level-ও দেখবেন না। Best price থেকে আপনার worst acceptable price পর্যন্ত একই side-এ কত liquidity আছে, সেটিই প্রাসঙ্গিক।

Visible depth কোনো প্রতিশ্রুতি নয়। অন্য order আগে fill হতে পারে, resting order cancel হতে পারে, নতুন order যোগ হতে পারে; network latency ও matching priority-ও result বদলায়। তাই estimate-এ buffer রাখুন এবং fill হওয়ার পরে প্রতিটি trade দিয়ে নতুন করে হিসাব করুন।

ধাপ ৩: volume-weighted average price দিয়ে slippage হিসাব করুন

একটি order একাধিক level-এ fill হলে price-এর simple average ভুল। সঠিক সূত্র:

VWAP = Σ(fill price × fill quantity) ÷ Σfill quantity

Buy:

Buy slippage (bps) = (VWAP ÷ pre-order best ask − 1) × 10,000

Sell:

Sell slippage (bps) = (1 − VWAP ÷ pre-order best bid) × 10,000

Midprice-এর তুলনায় execution cost-এর মধ্যে spread ও slippage দুটোই থাকে। Buy-এর জন্য (VWAP − midprice) × filled quantity, sell-এর জন্য (midprice − VWAP) × filled quantity ব্যবহার করা যায়। Report-এ “half-spread + touch-price slippage” অথবা “midprice execution cost”—একটি পদ্ধতি নিন; দুটো আবার যোগ করবেন না।

Trading fee আলাদা না করে থাকলে আগে সাইটের Maker, Taker ও প্রকৃত মোট খরচের হিসাব দেখুন। Fee হলো account থেকে কাটা charge; slippage হলো execution price-এর deviation। দুটির evidence আলাদা।

বাস্তব snapshot: একই market, ভিন্ন order size

নিচের হিসাব Binance public Data API-এর BTC/USDT order book থেকে নেওয়া। Capture time 2026-09-03T19:15:01+08:00, update ID 99617851692। API 1,000 bid ও 1,000 ask level দিয়েছে। এখানে শুধু snapshot-এর visible quantity ধরে immediate fill simulate করা হয়েছে; কোনো real order পাঠানো হয়নি, fee, latency বা cancellation যোগ করা হয়নি।

Snapshot-এ best bid ছিল 77,822.88 USDT, best ask 77,822.89 USDT, midprice 77,822.885 USDT। Quoted spread 0.01 USDT, অর্থাৎ 0.001285 bps। Midprice-এর দুই পাশে 5 bps-এর মধ্যে cumulative quote depth ছিল bid side-এ প্রায় 3,986,807 USDT এবং ask side-এ প্রায় 4,576,113 USDT। এগুলো শুধু ওই মুহূর্তের তথ্য।

Simulated side ও notional VWAP (USDT) Best price-এর তুলনায় slippage নেওয়া level
Buy 10,000 USDT 77,822.8900 0.0000 bps 1
Buy 250,000 USDT 77,825.7155 0.3631 bps 75
Buy 1,000,000 USDT 77,829.3561 0.8309 bps 124
প্রায় 10,000 USDT notional BTC sell 77,822.8800 0.0000 bps 1
প্রায় 250,000 USDT notional BTC sell 77,822.4987 0.0490 bps 11
প্রায় 1,000,000 USDT notional BTC sell 77,816.0067 0.8832 bps 82

Snapshotটি দুটো বিষয় দেখায়। প্রথমত, screen-এর quoted spread খুব ছোট হলেও বড় order পুরোটা first level-এ fill নাও হতে পারে। দ্বিতীয়ত, একই notional-এর buy ও sell slippage সমান হওয়ার দরকার নেই, কারণ book-এর দুই পাশে quantity distribution আলাদা। এই সংখ্যাগুলো অন্য সময়, pair বা venue-তে ব্যবহার করা যাবে না।

Order দেওয়ার আগে নিজের slippage estimate করুন

  1. Pair, side, target quantity ও quote time স্থির করুন; কয়েক মিনিট আগের screenshot ব্যবহার করবেন না।
  2. Buy হলে ask কম থেকে বেশি; sell হলে bid বেশি থেকে কম ক্রমে যোগ করুন।
  3. শেষ level থেকে target পূরণের জন্য যতটুকু দরকার, শুধু ততটুকু quantity নিন।
  4. সব expected fill level দিয়ে VWAP হিসাব করুন।
  5. Pre-order best ask/bid দিয়ে slippage এবং midprice দিয়ে full execution cost বের করুন।
  6. Fee ও latency buffer যোগ করে নিজের pre-set total-cost cap-এর সঙ্গে তুলনা করুন।

Platform যদি এমন অল্প কয়েকটি level দেখায় যা target quantity ঢাকে না, screen-এর বাইরে একই liquidity আছে ধরে নেবেন না। Order ছোট করা, কয়েক ভাগে execution, price boundary-সহ limit order, অথবা পর্যাপ্ত depth data দেয় এমন venue বেছে নেওয়া যায়। তবে ভাগ করলেই খরচ কমবে—এ নিশ্চয়তা নেই; batch-এর মাঝখানে market সরে যেতে পারে। প্রতিটি অংশের আগে নতুন snapshot নিন।

Acceptable slippage limit কীভাবে ঠিক করবেন

প্রথমে total-cost budget লিখুন; তারপর known fee, spread, market impact ও latency risk-এর মধ্যে ভাগ করুন:

Available slippage budget = total-cost cap − fee − half-spread − latency/volatility buffer

এটি কোনো universal recommendation নয়। Holding period, trade frequency, pair liquidity ও strategy invalidation আলাদা হলে limit-ও আলাদা হবে। হিসাবের পরে available budget শূন্যের নিচে গেলে execution technique নয়—বর্তমান অবস্থায় trade-টি আপনার cost constraint-এর বাইরে।

Limit order worst fill price সীমিত করতে পারে, কিন্তু fill নিশ্চিত করে না। Market order দ্রুত fill হওয়ার সম্ভাবনা বাড়ায়, price নিশ্চিত করে না। Investor.gov-এর order-type bulletin জানায়, বড় market order একাধিক price-এ fill হতে পারে। Market, Limit, partial fill ও status check নতুন হলে সাইটের Spot order ও fill verification flow আগে দেখে নিন।

Fill হওয়ার পর ছয় ধাপের acceptance check

  1. Pre-order bid, ask, order-book snapshot, time ও time zone সংরক্ষণ করুন।
  2. Status Filled হওয়া পর্যন্ত অপেক্ষা করুন; না হলে Partially Filled বা Canceled হুবহু লিখুন।
  3. প্রতিটি fill-এর price, quantity, time, fee quantity ও fee asset export করুন।
  4. Filled quantity, quote value ও VWAP আবার হিসাব করুন; শেষ fill price-কে average ভাববেন না।
  5. Touch-price slippage, midprice execution cost ও trading fee আলাদাভাবে বের করুন।
  6. Pre-set cap-এর সঙ্গে তুলনা করুন। Limit ভাঙলে কারণ লিখে একই ধরনের পরের order থামান; নতুন trade দিয়ে anomaly ঢাকার চেষ্টা করবেন না।

Worksheet-এ অন্তত order ID, side, submission time, benchmark bid/ask, target quantity, প্রতিটি fill, VWAP, slippage bps, fee, total execution cost ও pass/fail রাখুন। বড় position-এর ক্ষেত্রে worst reasonable fill scenario-কে position limit, stress test ও rebalancing framework-এ যোগ করুন; স্বাভাবিক সময়ের একটি snapshot-এর ওপর পুরো সিদ্ধান্ত রাখবেন না।

সাধারণ ভুল

Latest traded price দিয়ে spread হিসাব

Spread একই সময়ের best bid ও best ask থেকে আসে। Latest trade দুটির মাঝখানে হতে পারে, আবার stale-ও হতে পারে।

একাধিক fill-এর simple average

Fill quantity আলাদা হলে volume-weighted average লাগবে। শেষ price বা সাধারণ average বড় ভুল দেখাতে পারে।

Negative slippage দেখলেই calculation ভুল ভাবা

Benchmark-এর চেয়ে ভালো fill হলে price improvement হতে পারে। আগে side, benchmark time ও sign convention যাচাই করুন।

Order-book depth-কে guarantee ভাবা

Public book ওই মুহূর্তের state, locked quote নয়। Latency, cancellation, অন্য trade ও hidden liquidity actual fill বদলাতে পারে।

Spread, slippage ও fee দুবার যোগ

Midprice execution cost ব্যবহার করলে আবার half-spread ও touch-price slippage যোগ করবেন না। Trading fee আলাদা যোগ হবে, কারণ এটি price deviation নয়।

সূত্র ও যাচাইয়ের সময়

  • Binance Spot REST API documentation: public market-data endpoint, timestamp format ও data-source নীতি।
  • এই BTC/USDT public order-book endpoint: chart ও table-এর live raw source; পরে খুললে নতুন snapshot পাওয়া যাবে, পুরোনো সংখ্যা নয়।
  • Coinbase Exchange: Trading: market order available liquidity নেয়, বড় order বহু level-এ fill হতে পারে; limit order price control দেয় কিন্তু execution নিশ্চিত করে না।
  • Investor.gov: Understanding Order Types: market-order price guarantee না থাকা ও multiple-price fill-এর সাধারণ নীতি। Data ও source যাচাইয়ের সময়: 2026-09-03T19:15:01+08:00। Real trade-এর আগে fresh order book, product rule ও account fee আবার দেখুন; এই snapshot executable quote নয়।