11 নভেম্বর, 2026 · এক্সিকিউশন

কৌশলটি পরীক্ষায় উত্তীর্ণ হয়েছিল। তারপর এক্সচেঞ্জ টিক সাইজ বদলে দিল।

কৌশলটি পরীক্ষায় উত্তীর্ণ হয়েছিল। তারপর এক্সচেঞ্জ টিক সাইজ বদলে দিল।

মঙ্গলবার 08:00 UTC-তে একটি ক্রিপ্টো ভেন্যু মাঝারি দামের একটি পারপেচুয়াল কন্ট্র্যাক্টের টিক সাইজ বদলে দিল। আমাদের বেসিস কৌশল তা টেরই পেল না। সিগন্যাল স্পট ও ফিউচার্সের মধ্যে একই স্প্রেড দেখছিল, ঝুঁকির সীমা অপরিবর্তিত ছিল, আর ব্যাকটেস্ট আগের মতোই একই ফল দেখাচ্ছিল।

পেপার ট্রেডিংয়ে সমস্যাটি ধরা পড়ল। অর্ডার অ্যাডাপ্টার বাই লিমিটকে নিচের দিকের নিকটতম অনুমোদিত দামে রাউন্ড করল। ফলে অর্ডারটি ব্যাকটেস্টে ধরা দামের চেয়ে এক টিক নিচে চলে গেল। বাজার আগের দামে পৌঁছাল, সিমুলেট করা অর্ডারটি ফিল হলো, কিন্তু পেপার অর্ডারটি পড়ে রইল, ফিল হলো না। দুপুরের মধ্যে কৌশলটির ইনভেন্টরি একদিকে হেলে পড়েছিল।

ঘটনাটি প্রথমে সামান্য রাউন্ডিং ত্রুটি বলে মনে হয়েছিল। আসলে এটি ছিল মডেলের সীমানা-সংক্রান্ত সমস্যা: কৌশলটি দাম জানত, কিন্তু ব্যাকটেস্ট ভেন্যুর প্রাইস গ্রিড জানত না।

আমরা একটি সহজ বেসিস সিগন্যাল ট্রেড করছিলাম: ফিউচার্সের প্রিমিয়াম একটি সীমা ছাড়িয়ে বাড়লে স্পট কিনে পারপেচুয়াল বিক্রি করা। অর্ডারগুলো প্যাসিভ ছিল, কারণ প্রত্যাশিত বেসিস এজ ছিল ছোট। এন্ট্রি থেকে যথেষ্ট আয় হয়ে ফি ও শেষের এক্সিটের খরচ মেটানো যাবে কি না, তা কয়েকটি টিকই ঠিক করে দিতে পারত।

টিক সাইজ বদলালে কী পরিবর্তন হলো?

আপডেটের আগে পারপেচুয়ালে 0.01-এর ধাপে দাম দেওয়া যেত। পরে সংশ্লিষ্ট প্রাইস ব্যান্ডে 0.05-এর ধাপে দাম দিতে হতো। সিগন্যালটি 42,318.03 দামে বিক্রির লক্ষ্য নির্ধারণ করেছিল, যা পুরোনো নিয়মে বৈধ ছিল। নতুন নিয়মে সেই দাম অবৈধ ছিল।

এক্সচেঞ্জ অবৈধ দাম প্রত্যাখ্যান করত, কিন্তু আমাদের অ্যাডাপ্টারে একটি বিকল্প ব্যবস্থা ছিল: বিক্রির দাম নিচের দিকে রাউন্ড করে 42,318.00 করা। সেটিও অবৈধ ছিল। দ্বিতীয় বিকল্প ব্যবস্থায় আবার রাউন্ড করে 42,318.05 করা হলো। এটি বৈধ হলেও বিক্রেতার জন্য কম আগ্রাসী দাম ছিল। অর্ডারটি আর মডেলে ধরা দামে বিক্রি করতে পারত না। কোডপথটি অন্য একটি মার্কেটের জন্য লেখা হয়েছিল এবং নীরবে প্রত্যাখ্যানকে নতুন দামের অর্ডারে পরিণত করেছিল।

একটি অর্ডারেই দুটি আলাদা প্রশ্ন উঠে এসেছিল। প্রথমত, ভেন্যু কোন দাম গ্রহণ করতে পারে? দ্বিতীয়ত, কৌশলের কাঙ্ক্ষিত দাম গ্রিডে না থাকলে কৌশলটির কী করা উচিত? প্রথম প্রশ্নের উত্তর দেয় এক্সচেঞ্জ। দ্বিতীয়টির উত্তর দিতে হবে কৌশলকে বা এক্সিকিউশন নীতিকে।

অর্ডারের উদ্দেশ্যগ্রিডের নিয়মসাধারণত রাউন্ড করার দিকযে পরিবর্তন হতে পারে
বাই লিমিটদাম টিকের গুণিতক হতে হবেলিমিটের সমান বা নিচে রাখতে নিচের দিকেফিল হওয়ার সম্ভাবনা কমে
সেল লিমিটদাম টিকের গুণিতক হতে হবেলিমিটের সমান বা ওপরে রাখতে ওপরের দিকেফিল হওয়ার সম্ভাবনা কমে
মার্কেটেবল লিমিটদামের সীমাও মানতে হবেসর্বোচ্চ গ্রহণযোগ্য দামের ওপর নির্ভর করেঅর্ডারটি স্প্রেড পার হবে কি না

রাউন্ড করার কোনো সর্বজনীনভাবে সঠিক নিয়ম নেই। বাই অর্ডার নিচের দিকে রাউন্ড করলে ক্রেতার দামের সীমা বজায় থাকে, তবে ফিল হওয়ার সম্ভাবনা কমতে পারে। ওপরের দিকে রাউন্ড করলে অর্ডারটি মার্কেটেবল হয়ে যেতে পারে, যার ফলে ফি ও ইমপ্যাক্ট বদলে যায়। আমাদের প্যাসিভ বেসিস এন্ট্রির ক্ষেত্রে নীরবে অর্ডারের দাম সরিয়ে দেওয়া ভুল ছিল। কৌশলটি একটি লক্ষ্য ঠিক করেছিল; অ্যাডাপ্টার তার অর্থনীতি বদলে দিয়েছিল।

ব্যাকটেস্টের ফল তখনও ভালো দেখাচ্ছিল কেন?

আমাদের ঐতিহাসিক অর্ডার সিমুলেটর লিমিটের দামকে অবিচ্ছিন্ন সংখ্যা হিসেবে ধরত। বারের লো যদি বাই দামে পৌঁছাত, বা হাই যদি সেল দামে পৌঁছাত, তাহলে অর্ডার ফিল হয়েছে বলে গণ্য হতো। প্যাসিভ অর্ডারের জন্য এটি এমনিতেই বেশ উদার অনুমান, কারণ লিমিট দামে ট্রেড হয়েছে জানলেই কিউতে অর্ডারের অবস্থান জানা যায় না। কিন্তু টিক আপডেটে সমস্যাটি আরও মৌলিক হয়ে উঠল: ওই দামে অর্ডারটি আদৌ দেওয়া সম্ভব ছিল না।

কার্যকর হওয়ার সময় থেকে নতুন গ্রিড প্রয়োগ করে আমরা একই সিদ্ধান্তগুলো আবার চালালাম। কয়েকটি ফিল আর হলো না। কিছু অর্ডার এমন দামে রাউন্ড হলো যা স্প্রেড পার হয়ে গিয়ে maker ফি-র বদলে taker ফি নিল। ফলে পজিশনের গতিপথ বদলে গেল, তাই পরের হেজ ও এক্সিটগুলোও পাল্টে গেল। মেটাডেটা মনে হওয়া একটি নিয়ম পুরো ট্রেডের ধারাকেই বদলে দিয়েছিল।

আর পরিবর্তনটি কোনো চার্টে লুকানো অপ্রত্যাশিত ঘটনা ছিল না। ভেন্যু কার্যকর হওয়ার সময়সহ ইনস্ট্রুমেন্টের নিয়ম পরিবর্তনের ঘোষণা দিয়েছিল। আমরা মার্কেট ডেটা যত্ন করে সংরক্ষণ করেছিলাম, কিন্তু ইনস্ট্রুমেন্টের মেটাডেটা স্টার্টআপে রিফ্রেশ হওয়া ক্যাশে রাখা ছিল। ব্যাকটেস্ট সব ঐতিহাসিক তারিখের জন্য আজকের নিয়ম পড়েছিল; পেপার ট্রেডিংয়ে প্রক্রিয়াটি পুনরায় চালু না হওয়া পর্যন্ত পুরোনো নিয়ম ছিল। কোনো পরিবেশই প্রতিটি সময়ে ভেন্যু কী অনুমোদন করেছিল তা দেখায়নি।

ব্যাকটেস্টে টিক সাইজের পরিবর্তন কীভাবে মডেল করা উচিত?

অন্যান্য পয়েন্ট-ইন-টাইম ইনপুটের মতো বৈধতার সময়সীমাসহ ইনস্ট্রুমেন্টের নিয়মের সংস্করণ রাখুন। অন্তত কার্যকর হওয়ার সময় এবং অর্ডার যাচাইয়ের জন্য দরকারি নিয়মের মানগুলো সংরক্ষণ করুন: টিক সাইজ, কোয়ান্টিটি স্টেপ, ন্যূনতম কোয়ান্টিটি এবং প্রযোজ্য প্রাইস ব্যান্ড। সিমুলেটরে সিদ্ধান্ত নেওয়ার সময়ে যে নিয়ম কার্যকর ছিল, সেটিই লোড করা উচিত।

এরপর অর্ডার সামলানোর পদ্ধতিটি স্পষ্ট করুন। লক্ষ্য দাম অবৈধ হলে সেটি প্রত্যাখ্যান করুন, নথিভুক্ত নীতি অনুযায়ী রাউন্ড করুন, অথবা গ্রিডে মানানসই করে লক্ষ্যটি নতুন করে হিসাব করুন। কোনটি হয়েছে তা রেকর্ড করুন। নির্দিষ্ট একটি এক্সিকিউশন নীতি অনুমান করতে ব্যাকটেস্টে প্রতিটি অর্ডার স্বয়ংক্রিয়ভাবে সংশোধন করা কাজে লাগতে পারে, কিন্তু সেই নীতিকে এক্সচেঞ্জের ফিল বলে আড়াল করা উচিত নয়।

প্যাসিভ অর্ডারের ক্ষেত্রে ফিল হওয়ার জন্য টিক-সম্মত দাম কেবল প্রথম শর্ত। বাজার আপনার দাম পার হয়ে ট্রেড করেছে কি না, আপনার আগে কিউতে কারা ছিল, ক্যানসেলেশন এবং আপনি কোন ফি স্তর পেতেন—এসবেরও মডেল দরকার।

আমরা দুটি যাচাই যোগ করেছি। প্রথমটি তৈরি হওয়া প্রতিটি অর্ডারকে পয়েন্ট-ইন-টাইম ইনস্ট্রুমেন্টের নিয়ম দিয়ে যাচাই করে এবং দাম বা সাইজ অবৈধ হলে স্পষ্টভাবে ব্যর্থ হয়। দ্বিতীয়টি ব্যাকটেস্ট ও পেপার অ্যাডাপ্টারের চূড়ান্ত নরমালাইজ করা অর্ডার মিলিয়ে দেখে: সাইড, দাম, কোয়ান্টিটি, time-in-force এবং ফি-সংক্রান্ত অভিপ্রায়। এগুলো না মিললে রানটিকে তুলনাযোগ্য ধরা হয় না।

এরপর মঙ্গলবারের পরিবর্তনটি আবার চালালাম। গ্রিড আপডেটের পর ব্যাকটেস্ট আর 42,318.03 দামে ফিল দাবি করল না। পেপার ট্রেডিং ও সিমুলেশন প্রতিটি অবৈধ লক্ষ্যের ক্ষেত্রে একই সিদ্ধান্ত নিল, এমনকি সেই সিদ্ধান্ত অর্ডারটি বাদ দেওয়া হলেও।

সিগন্যালটি নষ্ট হয়নি। যে বস্তুটি নিয়ে ট্রেড করা যায়, তার সম্পর্কে সিগন্যালের অনুমানগুলো পুরোনো হয়ে গিয়েছিল। নতুন টিক সাইজ এলেও কৌশল টিকে থাকতে পারে, তবে গবেষণা ব্যবস্থাকে সিমুলেট করা মার্কেটের অংশ হিসেবে ভেন্যুর নিয়ম ধরতে হবে।

এক্সচেঞ্জের নিয়মটিক সাইজঅর্ডার রাউন্ডিংব্যাকটেস্টিংপেপার ট্রেডিং
শেয়ার করুনXLinkedInFacebookRedditHacker NewsWhatsAppTelegramEmail
← সব পোস্ট