25 সেপ্টেম্বর, 2026 · গবেষণা

ব্যাকটেস্টের বাজার-তথ্য সত্যিই লেনদেনযোগ্য ছিল কি না, বুঝব কীভাবে?

ব্যাকটেস্টের বাজার-তথ্য সত্যিই লেনদেনযোগ্য ছিল কি না, বুঝব কীভাবে?

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

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

ব্যাকটেস্টের জন্য নির্ভুল ঐতিহাসিক দামই কি যথেষ্ট?

না। নির্ভুলতা বলে, “উৎসটি শেষ পর্যন্ত কোন দাম রেকর্ড করেছে?” ব্যাকটেস্টকে আরও জানতে হয়, “সিদ্ধান্ত নেওয়ার সময় আমার কৌশল কী জানতে পারত?” এবং “কী এক্সিকিউট করতে পারত?” এগুলো আলাদা প্রশ্ন।

ধরা যাক, একটি ক্রিপ্টো লেনদেন 12:00:00.120-এ সম্পন্ন হলো, কিন্তু আপনার ডেটা ভেন্ডরের স্ট্রিম সেটি আপনার প্রসেসে পৌঁছে দিল 12:00:00.480-এ। .200-এ সিদ্ধান্ত নেওয়া কৌশলটি ওই লেনদেন ব্যবহার করতে পারে না, যদিও ইভেন্ট টাইমস্ট্যাম্প সিদ্ধান্তের আগের। ঐতিহাসিক ফাইলে যদি শুধু ইভেন্ট টাইম থাকে, ব্যাকটেস্ট নিঃশব্দে কৌশলকে এমন তথ্য দিয়ে বসতে পারে যা তার লাইভ প্রসেস তখনও পায়নি।

সময় বা ক্ষেত্রএটি কী জানায়অনুপস্থিত থাকলে ব্যাকটেস্টের ব্যর্থতা
ইভেন্ট টাইমএক্সচেঞ্জের মতে ইভেন্টটি কখন ঘটেছেবাজারের সময়কে কৌশলের তথ্য-প্রাপ্যতার সঙ্গে গুলিয়ে ফেলা
রিসিভ টাইমআপনার কালেক্টর কখন বার্তাটি পেয়েছেদেরিতে আসা ডেটাকে তাৎক্ষণিকভাবে এসেছে ধরে নেওয়া
সিকোয়েন্স বা আপডেট IDফিডের ক্রমে ইভেন্টটির অবস্থানআপডেট ভুল ক্রমে প্রয়োগ করা বা নিঃশব্দে বাদ পড়া
সংশোধনের সময়সংশোধিত ঐতিহাসিক মানটি কখন জানা গিয়েছিলমূল ফিডে যে মান ছিল না, সেটি দিয়ে ব্যাকটেস্ট করা

আপনার আর্কাইভে রিসিভ টাইম না থাকলে, এই ঘাটতির কথা স্পষ্টভাবে জানান। আপনি লেটেন্সি সম্পর্কে একটি অনুমান পরীক্ষা করতে পারেন, অথবা দাবিকে ইভেন্ট-টাইম গবেষণায় সীমিত রাখতে পারেন। যে টাইমস্ট্যাম্প কখনো সংরক্ষণই করা হয়নি, তা দিয়ে প্রকৃত তথ্য-সেট পুনর্গঠন করা সম্ভব নয়।

কোনো কোট এক্সিকিউট করা যেত কি না বুঝব কীভাবে?

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

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

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

1-মিনিটের বার থেকে জানা যায়, সর্বনিম্ন দাম আপনার লিমিট ছাড়িয়েছিল কি না। কিন্তু এতে জানা যায় না, সর্বনিম্ন দামে পৌঁছানোর আগে আপনার অপেক্ষমাণ অর্ডার ভেন্যুতে পৌঁছেছিল কি না, সেখানে কত লেনদেন হয়েছিল, বা আপনার আগে কিউতে কত অর্ডার ছিল।

বাজার-তথ্যের আর্কাইভে আস্থা রাখার আগে কী কী যাচাই করব?

আমি আগে সাধারণ বিষয়গুলো যাচাই করি। ভাঙা ফিডের ওপর জটিল এক্সিকিউশন মডেল জুড়ে দেওয়ার চেয়ে, এগুলোতেই বেশি ত্রুটিপূর্ণ গবেষণা ধরা পড়ে।

শেষের যাচাইটি শুনতে প্রায় অতিরিক্ত মৌলিক মনে হয়। একবার একটি ফিড স্থানান্তরের পর পরিমাণের একটি ক্ষেত্রের একক বদলে গিয়েছিল; সেটিকে ঘিরে দেখা আপাত ভোলাটিলিটি-রেজিম পরিবর্তনের কারণ খুঁজতে আমি এক সকাল কাটিয়েছিলাম। চার্টটি ছিল চমৎকার; এককটি ছিল ভুল।

ডেটার প্রাপ্যতা ফলাফল বদলায় কি না পরীক্ষা করব কীভাবে?

কৌশলের সিদ্ধান্তসীমার আশেপাশে একটি ছোট সেনসিটিভিটি টেস্ট চালান। বাস্তবসম্মত বিলম্ব অনুযায়ী ব্যবহারযোগ্য ডেটা পিছিয়ে দিন, সিকোয়েন্সের ধারাবাহিকতা ভাঙা আপডেট বাদ দিন, এবং প্রকৃত ভেন্যু বুক যেখানে আছে তা ব্যবহার করে ফিলের তুলনা করুন। মূল ফলাফল ও অবনমিত ফলাফল—দুটিই জানান। সামান্য বিলম্বেই প্রভাব মুছে গেলে, কৌশলটি হয়তো এমন তথ্যগত সুবিধার ওপর নির্ভর করছে যা আপনার ডেটা সংগ্রহব্যবস্থা নির্ভরযোগ্যভাবে দিতে পারে না।

একটি নির্দিষ্ট উদাহরণ ধরা যাক: সেরা বিড 1 টিক বাড়লে একটি সিগন্যাল সক্রিয় হয়। একবার এক্সচেঞ্জের ইভেন্ট টাইম দিয়ে, আরেকবার কালেক্টরের রিসিভ টাইম দিয়ে সেটি রিপ্লে করুন। ইভেন্ট-টাইম সংস্করণে যদি 40টি ট্রেড হয়, আর রিসিভ-টাইম সংস্করণে 27টি, তাহলে এই পার্থক্যও কৌশলটির প্রমাণের অংশ। প্রতিটি রিপ্লের পারফরম্যান্সও তাই। ডেটা দেখতে কম পরিপাটি বলে দুর্বল রিপ্লেটি আড়াল করবেন না।

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

বাস্তবে “লেনদেনযোগ্য ডেটা” বলতে কী বোঝায়?

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

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