সোমবার আমরা দায়িত্বশীল কাজটাই করলাম। এজেন্টের হাতে ছিল একটি মিড-ক্যাপ USDT-M পারপেচুয়ালে মোমেন্টাম স্ট্র্যাটেজি, প্রতি ট্রেডে 25,000 USDT ক্লিপ, আর ভলিউম ফিল্টার ছাড়া প্রথম ব্যাকটেস্ট প্রতিটি সিগন্যাল এমনভাবে ফিল করল যেন বুকটা BTC। তাই পাঠ্যবইয়ের গেটটা বসালাম: অর্ডার বেরোনোর আগে বিশটি 1-মিনিট বারের ডলার ভলিউম ক্লিপের বিশ গুণ ছাড়িয়ে যেতে হবে। বিশ মিনিট, আধ মিলিয়ন ডলারের টেপ। ব্যস্ত দিনে কয়েনটা প্রায় $40 million ছাপাত। ফিল্টার বেশিরভাগ সিগন্যাল রেখে দিল। ইকুইটি কার্ভ কম খাঁজকাটা হল। আমরা পেপারে পাঠালাম।
এগারো ঘণ্টা পরে একটি 25,000 USDT বাই বিডের 8,400 খেয়ে থেমে গেল। সেই মিনিটের বিশ-বার ভলিউম ছিল $1.14 million। ফিল্টার হ্যাঁ বলেছিল।
সোমবার: যে ফিল্টার আমাদের সৎ বোধ করাচ্ছিল
পুল রিকোয়েস্টে এজেন্টের নোট ছিল "ক্যাপাসিটি চেক যোগ করা হয়েছে, 20× নোশনাল।" আমি অ্যাপ্রুভ করলাম। এই বাক্য আমি আগেও অ্যাপ্রুভ করেছি। এমন নিয়ম লিখতে হয় যখন কেউ দেখায় একটি ব্যাকটেস্ট $4,000-OI কয়েনে $50,000 ক্লিপে ট্রেড করেছে, ঘরের সবাই মুখ কুঁচকেছে, আর আপনি একটি ভলিউম মাল্টিপল যোগ করেন যাতে আর না ঘটে।
সোমবার নিয়মটা ব্যাকটেস্টে যা সবসময় করে, তাই করল। মৃত ঘণ্টাগুলো ফেলে দিল। যে ঘণ্টায় এক্সচেঞ্জের নিজস্ব ভলিউম সংখ্যা জোরালো দেখাচ্ছিল, সেগুলো রাখল। টার্নওভার প্রায় এক তৃতীয়াংশ কমল। গড় ট্রেড সাইজ 25,000-ই রইল কারণ ফিল মডেল কাপুরুষ: গেট খোলা থাকলেই last-plus-a-few-bps-এ পুরো ক্লিপ নিয়ে নেয়। কেউ বুককে জিজ্ঞেস করেনি 25,000 আসলে সেখানে বসে আছে কিনা।
কোনো কয়েনের 24h ভলিউম পাতলা ওপেন ইন্টারেস্টের পাশে রাউন্ড সংখ্যা হলে এখনও শিউরে উঠি। এটা 2021-এর অবশিষ্ট, যখন Discord-এর "মার্কেট মেকিং" বট মানে দুটো সাবঅ্যাকাউন্ট একে অপরের সঙ্গে ট্রেড করত আর #brag-এ ভলিউমের স্ক্রিনশট পেস্ট করত। টেপ দেখতে পার্টির মতো। বুকটা কার্ডবোর্ড। নিজেকে বলেছিলাম 1-মিনিট বারে 20× ফিল্টার সেই অভ্যাস কাটিয়ে ওঠার উপায়। তা নয়। এটা কার্ডবোর্ডকে আরও মসৃণ সংখ্যায় গড় করে ফেলার উপায়।
মঙ্গলবার: পেপার, তারপর একটি অবশিষ্ট
পেপার শুরুতে দয়ালু ছিল। প্রথম পাঁচটি ক্লিপ আস্কের নিচে 2–4 ধাপে ফিল হল। কুৎসিত, কিন্তু হয়ে গেল। তারপর 14:07 UTC, একটি লং সিগন্যাল, 25,000 USDT, টপ অফ বুক 1,100, পরের লেভেল 2,400, তারপর হাওয়া। আমরা taker হিসেবে 8,400 ফিল পেলাম আর 16,600 রেস্টিং। চল্লিশ সেকেন্ড পরে আমাদের নিজস্ব time-in-force-এ অবশিষ্টটা ক্যানসেল হয়ে গেল। স্ট্র্যাটেজি ভাবল সে পুরো ক্লিপ লং। অ্যাকাউন্ট লং ছিল একটির এক তৃতীয়াংশ।
কিন্তু ফিল্টার হ্যাঁ বলেছিল। আমি বারটা টেনে দেখলাম। 14:07 পর্যন্ত বিশ মিনিটের ডলার ভলিউম ছিল $1.14 million, স্বস্তিতে $500k-এর ওপরে। সেই $1.14 million-এর মধ্যে মোটামুটি $380k ছিল জোড়া প্রিন্ট: একই দাম, একই সাইজ, উল্টো aggressor ফ্ল্যাগ, 2–8 মিলিসেকেন্ড ব্যবধানে, আর সেই দামে bid/ask সাইজ এক চুলও নড়েনি। সেই ট্রেডগুলো একে অপরকে ফি দিয়েছে। আমাদের 25,000 USDT-র গর্ত দেয়নি।
বুধবার: টেপকে বুকের সঙ্গে মেলানো
বুধবার ছিল ধীর দিন, পরের বার যার জন্য আমি দ্বিগুণ সময় বরাদ্দ করব। একই পারপেচুয়ালে পাঁচটি কর্মদিবসের ট্রেড আর L2 স্ন্যাপশট নিলাম, 100ms বুকের ছবি, আর প্রতিটি প্রিন্টকে এক স্ন্যাপশট আগে ও এক স্ন্যাপশট পরে বুকের বিপরীতে শ্রেণিবদ্ধ করলাম।
- ট্রেডের দামে সাইজ প্রায় ট্রেড সাইজের সমান কমলে, এটা বুক ছুঁয়েছে। গুনুন।
- একই দামে সমান সাইজের একটি বাই ও একটি সেল প্রিন্ট হয়ে বুকে কোনো পরিবর্তন না থাকলে, ওয়াশ বলুন আর যেকোনো ক্যাপাসিটি সংখ্যা থেকে বাদ দিন।
- কোনো ট্রেড কয়েকটি লেভেল পেরিয়ে গিয়ে সেই লেভেলগুলো অদৃশ্য হয়ে গেলে, সেটা আসল taker। গুনুন, আর ভান করবেন না যে আপনিও সেই লিকুইডিটি নিতে পারবেন; কেউ ইতিমধ্যে নিয়ে নিয়েছে।
- ট্রেডটা লিকুইডেশন হিসেবে ট্যাগ করা থাকলে, সাইজ আসল, আর সেটাই শেষ সাইজ যা দিয়ে প্রমাণ করতে চাইবেন যে আপনি 25,000 ক্লিপ করতে পারেন। ফোর্সড অর্ডার আপনার সঙ্গে দৌড়চ্ছে।
স্ন্যাপশটগুলো একটু মিথ্যা বলে। 100ms-এর মধ্যে যা ফিল হয়ে আবার পূরণ হয় তা ভূতের মতো দেখায়, আর কিছু আসল মার্কেট-মেকার তত দ্রুত cancel-replace করে। পরে কয়েক মিনিটের 10ms বুক স্যাম্পল করলাম আর ওয়াশের অংশ কয়েক পয়েন্ট নড়ল, দুই গুণ নয়। কয়েক পয়েন্ট নিয়ে বাঁচতে পারি। এক্সচেঞ্জ ভলিউম টিকারকে লিকুইডিটির আদমশুমারি ধরে বাঁচতে পারি না।
AggTrades ইতিমধ্যে এক দামে এক taker-এর কয়েকজন maker-কে হিট করাকে গুটিয়ে ফেলে। দুটো সাবঅ্যাকাউন্টের ওয়াশকে গুটায় না। আপনার "পরিষ্কার" ফিড যদি aggregated ট্রেড হয়, এই সমস্যা তবু থাকে। শুধু কম সারিতে থাকে।
আর টিকার API-এর 24h ভলিউম সেই একই নোংরা যোগফল, দেরিতে আসা, তাই রিসার্চ এজেন্টরা এটা ভালোবাসে। একটি ফিল্ড। সবসময় উপস্থিত। ফিচারের মতো দেখায়। এটা একটি মার্কেটিং পরিসংখ্যান যা ঘটনাক্রমে মার্কেট-ডেটা protobuf-এ আছে।
বৃহস্পতিবার: এক টেবিলে পুরো সপ্তাহ
পাঁচটি সেশন, একই ক্লিপ, একই 20× নিয়ম, ব্যাকটেস্টে একই ফিল মডেল। পেপার ফিল রেশিও হল সেই সেশনে আমরা যে অর্ডার আসলে পাঠিয়েছি তার ফিল্ড নোশনাল ভাগ ইন্টেন্ডেড নোশনাল। সোমবারের পেপার ফাঁকা কারণ আমরা তখনও ব্যাকটেস্টে ছিলাম।
| সেশন | এক্সচেঞ্জ টেপ | বুক-মুভিং | ওয়াশ-সদৃশ | লিক. প্রিন্ট | ফিল্টার বলেছে যাও | পেপার ফিল |
|---|---|---|---|---|---|---|
| সোম | $38.4m | $22.6m | $13.5m | $2.3m | 41 / 48 সিগন্যাল | n/a |
| মঙ্গল | $41.1m | $24.2m | $15.2m | $1.7m | 36 / 40 | 0.61 |
| বুধ | $29.6m | $20.1m | $8.1m | $1.4m | 22 / 31 | 0.77 |
| বৃহস্পতি | $44.8m | $25.6m | $17.4m | $1.8m | 39 / 44 | 0.54 |
| শুক্র | $33.2m | $22.3m | $9.4m | $1.5m | 28 / 35 | 0.71 |
ওয়াশ-সদৃশ প্রিন্ট ছিল সপ্তাহের টেপের 34%। সমান ছড়ানো ছিল না। বৃহস্পতিবার, যে সেশনটা আগের ফিল্টার সবচেয়ে পছন্দ করেছিল, সেটাই সবচেয়ে নোংরা। যে ফেইলিউর মোড নিয়ে আমি চিন্তিত, সেটাই এটা। গেট শুধু গড়ে লিকুইডিটি বাড়িয়ে বলে না। যেদিন ওয়াশ বট কাজ করে সেদিন আরও চওড়া খোলে, কারণ সেই দিনগুলোতেই কাঁচা সংখ্যা সবচেয়ে সুস্থ দেখায়।
শুধু বুক-মুভিং ভলিউম দিয়ে, একই 20× মাল্টিপল রেখে ব্যাকটেস্ট আবার চালালাম। সিগন্যাল সপ্তাহে 198 থেকে 121-এ নামল। বাদ পড়া অনেকগুলো সেই বৃহস্পতিবার-ধাঁচের ঘণ্টায় বসেছিল যেখানে টেপ জোরালো আর টপ অফ বুক ছিল 1,100 USDT। আগের Sharpe ব্যবহার করেছিল 198টি পূর্ণ ফিল। নতুনটা এমনভাবে উদ্ধৃত করব না যেন স্ট্র্যাটেজি সম্পর্কে কোনো ফাইন্ডিং। এটা ফিল মডেল সম্পর্কে ফাইন্ডিং: বুক যে দামে রাখেনি সেখানে 25,000 USDT দেওয়া বন্ধ করলে, "এজ"-এর একটা অংশ শুধু সম্পূর্ণ অর্ডার যা আসলে অবশিষ্ট থেকে যেত।
শুক্রবার: আমরা আসলে যা শিপ করি, আর যা আমি বাদ দিতাম
আমরা যে গেট রাখলাম সেটা সাদামাটা। রোলিং বুক-মুভিং নোশনাল, শুধু যে প্রিন্টগুলো কোনো লেভেল থেকে সাইজ তুলেছে সেগুলো থেকে গোনা, ক্লিপের 20× ছাড়াতে হবে, আর আমরা মাপি ডিসিশন বারের আগের বারগুলোতে যাতে চলতি মিনিটের ওয়াশ ভোট দিতে না পারে। লিকুইডেশন প্রিন্টের আলাদা ক্যাপ: সাম্প্রতিক বুক-মুভিং ভলিউমের এক চতুর্থাংশের বেশি লিকুইডেশন হলে স্ট্র্যাটেজি দাঁড়িয়ে থাকে। ফোর্সড ফ্লো আসল সাইজ যা আপনার সঙ্গে দৌড়চ্ছে।
ইমপ্যাক্টও একই ডায়েট পেল। পুরনো মডেল এক্সচেঞ্জ ভলিউম আর আমাদের ক্লিপ থেকে Kyle lambda অনুমান করত। ওয়াশ খাওয়ালে lambda কমে যায়, কারণ মার্কেট গভীর দেখায়। বুক-মুভিং ভলিউম খাওয়ালে একই ক্লিপ বুক যা আসলে বদলেছে তার অনেক বড় অংশ হয়ে দাঁড়ায়। পরের কয়েক সেশনে পেপার স্লিপেজ সেই কুৎসিত সংখ্যার কাছাকাছি বসল। কাছাকাছি, অভিন্ন নয়। আমরা এখনও কিউ দেখি না, আর 100ms ছবি এখনও কিছু আসল সাইজ মিস করে।
পরের বার যা বাদ দিতাম সেটা পুরো প্রথম সোমবার। টিকার থেকে শুরু করবেন না, 24h ভলিউম থেকে শুরু করবেন না, এজেন্টকে ফিচার স্টোর আর গেটে কাঁচা ডলার ভলিউম এমনভাবে রাখতে দেবেন না যেন সেগুলো দুটো আলাদা আইডিয়া। সেগুলো একটাই নোংরা সিরিজ, দুবার ব্যবহৃত। আগে বুক-সঙ্গতিপূর্ণ টেপ বানান, এমনকি তার মানে একটিমাত্র মিড-ক্যাপ নিয়ে দুই দিন রিসার্চ করে তারপর ইউনিভার্স পাওয়া। ওয়াশ দিয়ে ফিল্টার করা ইউনিভার্স মানে ব্যস্ত দেখাতে পটু কয়েনের তালিকা।
আরেকটি বাদ: যেকোনো ফিল মডেল যা পাস করা ভলিউম চেককে ফিল ধরে নেয়। মঙ্গলবারের অবশিষ্টই ছিল স্ট্র্যাটেজি। ফিল্টার শুধু উত্তর দিতে পারে "কেউ কি ট্রেড করছিল।" উত্তর দিতে পারে না "আপনার 25,000 বুকে বসবে নাকি উধাও হয়ে যাবে।" দ্বিতীয় প্রশ্নের দরকার বুক, একটি remainder, আর একটি time-in-force, যা আলাদা ডায়েরি, আর এইটা লেখার আগে সেটাই লেখা উচিত ছিল।
← সব পোস্ট


