চক্র কৌশল
স্প্রেড ও স্লিপেজ কীভাবে হিসাব করবেন: অর্ডার বুকের গভীরতা ও fill যাচাই
Best bid-ask, cumulative order-book depth ও প্রতিটি fill থেকে spread, VWAP ও slippage হিসাব করুন; বাস্তব BTC/USDT snapshot দিয়ে pre-order estimate ও post-fill check সম্পূর্ণ করুন।
স্প্রেড ও স্লিপেজ কীভাবে হিসাব করবেন—এ প্রশ্নের উত্তর কোনো স্থির শতাংশ মুখস্থ করা নয়। একই সময়, একই দিক ও একই পরিমাণ ধরে 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 নিশ্চিত করে না।

সংক্ষিপ্ত উত্তর: 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 করুন
- Pair, side, target quantity ও quote time স্থির করুন; কয়েক মিনিট আগের screenshot ব্যবহার করবেন না।
- Buy হলে ask কম থেকে বেশি; sell হলে bid বেশি থেকে কম ক্রমে যোগ করুন।
- শেষ level থেকে target পূরণের জন্য যতটুকু দরকার, শুধু ততটুকু quantity নিন।
- সব expected fill level দিয়ে VWAP হিসাব করুন।
- Pre-order best ask/bid দিয়ে slippage এবং midprice দিয়ে full execution cost বের করুন।
- 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
- Pre-order bid, ask, order-book snapshot, time ও time zone সংরক্ষণ করুন।
- Status Filled হওয়া পর্যন্ত অপেক্ষা করুন; না হলে Partially Filled বা Canceled হুবহু লিখুন।
- প্রতিটি fill-এর price, quantity, time, fee quantity ও fee asset export করুন।
- Filled quantity, quote value ও VWAP আবার হিসাব করুন; শেষ fill price-কে average ভাববেন না।
- Touch-price slippage, midprice execution cost ও trading fee আলাদাভাবে বের করুন।
- 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 নয়।
