গত মাসে একটি জেনারেট করা স্ট্র্যাটেজি থেকে 63% ড্রডাউনসহ একটি ইকুইটি কার্ভ বেরিয়েছিল। গভীর, কুৎসিত পতন, তারপর পরের 6 সপ্তাহে ঝকঝকে পুনরুদ্ধার—এমন একটি রেখা দেখে গবেষক চোখ কুঁচকে সিদ্ধান্ত নিতে পারেন, পজিশনের আকার কমালে ঝুঁকিটা সামলানো যাবে। আমি সেটিকে এমন একটি মার্জিন ইঞ্জিনে আবার চালালাম, যা মেইনটেন্যান্স মার্জিন টিয়ার কী, তা জানে। ড্রডাউনের মাঝামাঝি, 41তম দিনেই অ্যাকাউন্ট লিকুইডেট হয়েছিল; 41তম দিনের পরের সবকিছুই ছিল কল্পনা।
আমার জানা ব্যাকটেস্ট বাগগুলোর মধ্যে এটাই সবচেয়ে ব্যয়বহুল ধরনের, কারণ এটি কয়েক বেসিস পয়েন্ট এদিক-ওদিক করে রিটার্ন বিকৃত করে না। এটি সিমুলেশন থেকে এমন একটি অবস্থা মুছে দেয়, যেখান থেকে আর ফেরা যায় না। যে স্ট্র্যাটেজি শূন্যে নেমে যেতে পারে আর যে পারে না, সেগুলো আলাদা স্ট্র্যাটেজি; আর যে ব্যাকটেস্ট মার্জিন পরীক্ষা করে না, সেটি আপনাকে বলতে পারে না আপনারটি কোন ধরনের।
বারবার 3ভাবে ভুল করতে দেখি।
ভুল ধরন এক: রিটার্নকে যে সংখ্যা দিয়ে গুণ করেন, লিভারেজকে সেটাই ভাবা
সবচেয়ে প্রচলিত ধরন। সিগন্যাল থেকে রিটার্ন সিরিজ হিসাব করেন, ঠিক করেন 10x লিভারেজে চালাবেন, তারপর গুণ করে দেন। কখনও একটু বেশি পরিশীলিত পদ্ধতিও থাকে—পজিশনের আকার হয় equity * leverage / price—কিন্তু অ্যাকাউন্টের অবস্থা তখনও শুধু একটি স্কেলার, যা ওঠানামা করে। মার্জিন ব্যালান্স নেই, নোশনালের সীমা নেই, ব্যর্থ হওয়ার শর্ত নেই।
ক্ষতিটা সূক্ষ্ম, তাই রিভিউ পার হয়ে যায়। Sharpe স্কেল বদলালেও একই থাকে, তাই লিভারেজ 3x থেকে 30x করলেও আপনার শিরোনামের সংখ্যাটি নড়ে না; গবেষক তখন ধরে নেন লিভারেজ হলো বিনা খরচের একটি ডায়াল, যা ভোলাটিলিটির বদলে রিটার্ন বাড়ায়। সর্বোচ্চ ড্রডাউন সরলরেখায় বাড়ে এবং নিছক গাণিতিক দুর্ঘটনায় 100%-এর নিচে থাকে, কারণ গুণ করা রিটার্নের সিরিজ অ্যাসিম্পটোটিকভাবে শূন্যের কাছে যায়, কখনও তা অতিক্রম করে না। সত্যিকারের হিসাবে -9%-এর একটি দিনকে 12 দিয়ে গুণ করলে হয় -108%; আর সরল মডেলে হয় “-108%, তবু ইকুইটি কার্ভ ধনাত্মক”—আপনি কম্পাউন্ড করেছেন, নাকি যোগ করেছেন তার ওপর নির্ভর করে। দুটোই দেখেছি।
যেটা বাদ পড়ে তা হলো, লিভারেজ আপনার রিটার্নে প্রয়োগ হয় না। এটি প্রয়োগ হয় আপনার জামানতে, আর জামানত একটি সীমিত পরিমাণ, যার ওপর এক্সচেঞ্জ প্রতি সেকেন্ডে নজর রাখে। সেটি মেইনটেন্যান্সের প্রয়োজনীয়তার নিচে নামলেই পজিশন আর আপনার থাকে না।
লক্ষণটি হলো: আপনার সিমুলেশন যদি কোনো লিভারেজেই সম্পূর্ণ ক্ষতি দেখাতে না পারে, তবে সেটি লিভারেজ মডেল করছে না।
ভুল ধরন দুই: শুধু লিভারেজ থেকে লিকুইডেশন প্রাইস বের করা
পরিশীলনের পরের ধাপে লিকুইডেশন পরীক্ষা যোগ হয়, সাধারণত এমনভাবে: 20x-এ 5% প্রতিকূল মুভে মার্জিন শেষ, তাই লং পজিশনকে এন্ট্রি × 0.95-এ লিকুইডেট করুন। পরিচ্ছন্ন, সহজবোধ্য, এবং একসঙ্গে 4টি দিক থেকে ভুল।
পারপ ভেন্যুগুলো আপনার লিভারেজ সেটিং দেখে ঠিক করে না আপনি কখন শেষ। তারা ব্যবহার করে মেইনটেন্যান্স মার্জিন রেট, যা পজিশনের নোশনালের সঙ্গে ধাপে ধাপে বাড়ে এবং একটি টিয়ার টেবিলে থাকে। BTCUSDT USDⓈ-M-এর আনুমানিক ধরন নিচে দেওয়া হলো; ভেন্যুগুলো সংশোধন করলে এটি বদলায়:
| পজিশনের নোশনাল (USDT) | মেইনটেন্যান্স মার্জিন রেট | সর্বোচ্চ লিভারেজ |
|---|---|---|
| 0 – 50,000 | 0.40% | 125x |
| 50,000 – 600,000 | 0.50% | 100x |
| 600,000 – 3,000,000 | 1.00% | 50x |
| 3,000,000 – 12,000,000 | 2.50% | 20x |
| 12,000,000 – 70,000,000 | 5.00% | 10x |
তাই আইসোলেটেড লং পজিশনে আপনি যে প্রতিকূল মুভ সামলাতে পারবেন, তা মোটামুটি 1/L − MMR, 1/L নয়। দ্বিতীয় টিয়ারে 20x-এ সেটি 5% − 0.5% = 4.5%। আধা শতাংশ শুনতে রাউন্ডিংয়ের মতো লাগে। BTC 84,000-এ থাকলে দামের 420 ডলার; আর তীব্র এক ঘণ্টায় 420 ডলারই ঠিক করে দেয়, একটি উইক আপনাকে বের করে দিল কি না। প্রতিটি উইকই যেন মুদ্রা ছোড়া, আর আপনি সবগুলোর ফল নিজের পক্ষে ঝুঁকিয়ে দিয়েছেন।
তারপর ফি। এন্ট্রির taker fee অর্ডার পূরণ হওয়ার সঙ্গে সঙ্গেই আপনার মার্জিন থেকে কেটে যায়: 500,000 নোশনালে 0.045% হলো 225 USDT, যা 25,000 মার্জিন ব্যালান্স থেকে যায়; পজিশন কিছু করার আগেই এতে লিকুইডেশন প্রাইস সরে যায়। Funding-ও একইভাবে কাজ করে, একটানা; আর লিভারেজড নোশনালে এর প্রভাব গবেষকের প্রত্যাশার চেয়ে অনেক বেশি:
একটি পজিশন 30 দিন কিছুই না করলে—কোনো প্রতিকূল মুভ নেই, ট্রেড নেই—তার জামানতের প্রায় এক-পঞ্চমাংশ খরচ হয়ে গেছে, আর লিকুইডেশন প্রাইসও উল্লেখযোগ্যভাবে কাছে চলে এসেছে। ভুলের তৃতীয় ও চতুর্থ দিক হলো: পজিশনের আকার বাড়ালে টিয়ার বদলে যায়, তাই 0.5% টিয়ারে শুরু করে বাড়াতে বাড়াতে 1.0% টিয়ারে ওঠা পজিশনের লিকুইডেশন প্রাইস এন্ট্রির সময় হিসাব করা দামের চেয়ে খারাপ হয়; আর ক্রস মার্জিনে একাধিক পজিশনের জামানত একসঙ্গে মেলে, তাই আপনার BTC লং টিকে থাকবে কি না, তা নির্ভর করে আপনার ETH শর্ট কী করছে তার ওপর। ক্রস মার্জিনকে যদি একগুচ্ছ স্বাধীন আইসোলেটেড পজিশন হিসেবে সিমুলেট করেন, তবে নিজের অ্যাকাউন্টের পারস্পরিক সম্পর্কের কাঠামোটাই উল্টো করে দেখছেন।
ভুল ধরন তিন: ভুল দামে, ভুল সময়ে, ভুল ফিলে লিকুইডেশন নিষ্পত্তি করা
ধরা যাক, ট্রিগার লেভেল ঠিক পেয়েছেন। এবার প্রশ্ন: কোন দাম সেটি অতিক্রম করে, কখন পরীক্ষা করেন, আর আপনার অর্ডার কোন দামে পূরণ হয়?
লিকুইডেশন ট্রিগার হয় মার্ক প্রাইসে; এটি কয়েকটি স্পট ভেন্যুর সূচক, সঙ্গে মসৃণ করা বেসিস উপাদান, যা বিশেষভাবে একটি ভেন্যুর একক উইকের প্রভাব ঠেকানোর জন্য তৈরি। আপনার স্টপ-লস, সেটআপের ওপর নির্ভর করে, সম্ভবত শেষ ট্রেড হওয়া দামে ট্রিগার হয়। সবচেয়ে গুরুত্বপূর্ণ সময়ে এই 2টি সংখ্যা একমত হয় না। বাজার ধসে পড়ার সময় পারপের শেষ দাম কয়েক দশ সেকেন্ডের জন্য মার্কের চেয়ে 1–2% নিচে সরে যেতে পারে। একই OHLCV লো থেকে স্টপ আর লিকুইডেশন চালানো ব্যাকটেস্ট এমন এক ভেন্যুর মডেল করছে, যার বাস্তবে অস্তিত্ব নেই।
এখানে দুটো ভুলই আছে, আর তারা একে অন্যকে বাতিল করে না। শেষ দাম ধরলে, ভেন্যু উপেক্ষা করা উইকেও লিকুইডেট হবেন। মার্ক প্রাইস ধরলে, মার্ক নিজেই সরে যাওয়ার ঘটনাটি বাদ পড়বে—স্পট ভেন্যুতে ইনডেক্স সরে যাওয়া বাস্তবেই আপনাকে এমন দামে লিকুইডেট করতে পারে, যে দাম আপনি যে পারপ ট্রেড করছিলেন তাতে কখনও ছাপা হয়নি।
তারপর অর্ডার পূরণের দাম। সরল ইঞ্জিনগুলো পজিশনকে লিকুইডেশন প্রাইসে বন্ধ করে এবং ক্ষতিটা স্টপ-লসের মতো নথিভুক্ত করে। আসলে যা ঘটে: লিকুইডেশন ইঞ্জিন পজিশনটি দেউলিয়া দামে—যে স্তরে আপনার মার্জিন ঠিক শূন্য—নিজের দখলে নেয়; এই দাম ট্রিগার স্তরের চেয়ে খারাপ। এর ওপর লিকুইডেশন ক্লিয়ারেন্স ফি-ও যোগ হয়, যা টিয়ারভেদে বদলায় এবং নিম্ন টিয়ারগুলোতে নোশনালের প্রায় 1%। 20x-এ নোশনালের 1% মানে আপনার অবশিষ্ট মার্জিনের 20%। ইঞ্জিন দেউলিয়া দামের চেয়েও নিচে অর্ডার পূরণ করলে বীমা তহবিল ঘাটতি মেটায়; কিছু ভেন্যুতে তহবিল শেষ হয়ে গেলে সামাজিকীকৃত ক্ষতি লাভজনক দিকের অর্ডার বুকেও পৌঁছায়। আপনার বাস্তবায়িত ক্ষতি লিকুইডেশন প্রাইস পর্যন্ত ড্রডাউন নয়। তা আরও বেশি, আর যে দিনগুলোতে বুক পাতলা থাকায় ক্ষতি সবচেয়ে খারাপ হওয়ার কথা, সেদিনই অতিরিক্ত ক্ষতিটা সবচেয়ে বড় হয়।
ইন্ট্রাবার মেকানিক্সের সময়সংক্রান্ত প্রশ্নটি এখানেও প্রযোজ্য, তবে এর প্রভাব আরও তীব্র। একটি 1-minute বারে আপনার take-profit আর লিকুইডেশন লেভেল—দুটোই থাকলে, মার্জিনের আগে এক্সিট পরীক্ষা করা ব্যাকটেস্ট অনায়াসে লাভ নথিভুক্ত করবে। ভেন্যু প্রতি মার্ক প্রাইস আপডেটে, মোটামুটি প্রতি সেকেন্ডে, আপনার কাঙ্ক্ষিত অন্য সবকিছুর আগে মার্জিন পরীক্ষা করে।
এর বদলে ইঞ্জিনে যা যা হিসাব রাখতে হবে
এর কোনোটাই জটিল হওয়ার দরকার নেই। দরকার অবস্থাভিত্তিক হিসাব। অ্যাকাউন্ট একটি ব্যালান্সসহ অবজেক্ট, রিটার্ন সিরিজ নয়; আর প্রতিটি বারে ভেন্যু যেভাবে আপডেট করত, সেই ক্রমেই এটি আপডেট হয়:
- ওয়ালেট ব্যালান্স ও অবাস্তবায়িত PnL আলাদাভাবে। মার্জিন রেশিও হলো মেইনটেন্যান্স মার্জিন ভাগ মার্জিন ব্যালান্স; আর মার্জিন ব্যালান্সে অবাস্তবায়িত PnL অন্তর্ভুক্ত। দুটোকে এক করে ফেললে লোকসানি পজিশনকে বাস্তবের চেয়ে ভালো জামানতযুক্ত মনে হয়।
- প্রতিটি সিম্বলের টিয়ার টেবিল, তারিখ অনুযায়ী সংস্করণসহ। টিয়ার সংশোধন করা হয়। 2023 সালের ব্যাকটেস্ট 2026 সালের টিয়ার দিয়ে চালালে সূক্ষ্মভাবে ভবিষ্যতের তথ্য ঢুকে পড়ে—সাধারণত অনুকূলে, কারণ সময়ের সঙ্গে ভেন্যুগুলো প্রধান কয়েনগুলোর শর্ত সাধারণত শিথিল করেছে।
- শুধু ক্যান্ডেল নয়, মার্ক প্রাইস সিরিজও। মার্ক প্রাইসের ইতিহাস সংগ্রহ করতে না পারলে ফলাফলে তা স্পষ্ট করে বলুন এবং সতর্কতামূলক প্রক্সি ব্যবহার করুন। চুপিসারে শেষ দাম বসাবেন না।
- বারের ইভেন্টের ক্রমে সবার আগে মার্জিন পরীক্ষা, স্টপ, টার্গেট, সিগন্যাল বা রিব্যালান্সের আগে।
- দেউলিয়া দামে অর্ডার পূরণ, সঙ্গে ক্লিয়ারেন্স ফি; MMR-এর জন্য যে টিয়ার সারি ব্যবহার করেছেন, সেই সারি থেকেই ফি রেট নিন।
- ফেরানো যায় না এমন সমাপ্ত অবস্থা। ইকুইটি শূন্যে পৌঁছালে রান শেষ। নতুন করে ভিত্তি নির্ধারণ নয়, “ধরে নিন ট্রেডার আরও টাকা জমা দেবে” নয়, নতুন নোশনাল থেকে সিরিজ চালিয়ে যাওয়াও নয়।
শেষের বিষয়টি নিয়েই সবচেয়ে বেশি তর্ক হয়। কেউ না কেউ সব সময় বলে, বাস্তব ট্রেডিং ডেস্ক আরও জামানত জমা দিত, তাই সিমুলেশন শেষ করে দেওয়া অবাস্তবভাবে কঠোর। হতে পারে। কিন্তু “এই স্ট্র্যাটেজি কাজ করে, যদি উড়ে যাওয়ার পরও এতে টাকা ঢালতে থাকেন”—এমন দাবির কথা ঠিক এই ভাষাতেই বলা এবং ইচ্ছাকৃতভাবে পরীক্ষা করা দরকার, যেখানে অতিরিক্ত জমা ইনপুট হিসেবে স্পষ্ট করে দেওয়া হবে; ডিফল্ট ধরে নিয়ে আড়াল করা হবে না। সৎভাবে লিখে ফেললে বেশির ভাগ মানুষ বুঝতে পারেন, তাঁরা আসলে তা বোঝাতে চাননি।
এর ব্যবহারিক লাভ হলো: একই স্ট্র্যাটেজি কাগজে-কলমে লাইভ ভেন্যুর বিপরীতে চালালে, এক্সচেঞ্জে দেখানো মার্জিন রেশিও আর আপনার সিমুলেটরের হিসাব করা রেশিও সারাদিনে 1 বা 2 বেসিস পয়েন্টের মধ্যে মেলার কথা। প্রতি মিনিটে, প্রতিটি খোলা পজিশনে, বিনা খরচে এই মিল যাচাই করা যায়। পুরো স্ট্যাকে এটিই সবচেয়ে সস্তা প্যারিটি পরীক্ষা, অথচ প্রায় কেউই চালায় না—আর 2টি সংখ্যার অমিল দেখা দিলে এক্সচেঞ্জের সংখ্যাটিই ঠিক; ড্রডাউন সেটা ধরিয়ে দেওয়ার আগেই খুঁজে পাওয়ার মতো একটি বাগ আপনার আছে।
← সব পোস্ট


