ট্রিপল-ব্যারিয়ার পদ্ধতি: আর্থিক ইভেন্ট লেবেলিং ব্যাখ্যা
ভোলাটিলিটি-ভিত্তিক লাভ ও ক্ষতির সীমা এবং সর্বোচ্চ সময়সীমা দিয়ে কীভাবে আর্থিক ইভেন্টের প্রথম স্পর্শ করা বাধাকে মেশিন-লার্নিং লেবেলে রূপান্তর করা হয় তা জানুন।
এই গাইডেট্রিপল-ব্যারিয়ার পদ্ধতি কোন প্রশ্নের উত্তর দেয়?
সংক্ষিপ্ত সারাংশ
ট্রিপল-ব্যারিয়ার পদ্ধতিতে কোনো ইভেন্ট শুরুর পরের দামের গতিপথকে লেবেল করা হয়—প্রথমে লাভের সীমা ছোঁয়া হয়েছে, ক্ষতির সীমা ছোঁয়া হয়েছে, নাকি নির্দিষ্ট সময় শেষ হয়েছে। এই ব্যাখ্যায় সময়সীমা শেষ হওয়ার আগে কোনো অনুভূমিক সীমা না ছুঁলে লেবেল 0, এমনকি শেষ রিটার্ন ধনাত্মক বা ঋণাত্মক হলেও। ইভেন্ট শুরুর সময় লক্ষ্য ভোলাটিলিটি জানা থাকতে হবে; পরের দাম শুধু লক্ষ্য y তৈরি করবে, ফিচার X নয়।
ট্রিপল-ব্যারিয়ার পদ্ধতি কোন প্রশ্নের উত্তর দেয়?
আর্থিক মেশিন লার্নিংয়ে ফিচারের প্রতিটি সারির জন্য এমন একটি ফলাফল দরকার যা মডেল শিখতে পারে। কিন্তু নির্দিষ্ট সংখ্যক দিনের পরের রিটার্ন দিয়ে সব পর্যবেক্ষণকে লেবেল করলে গবেষকের আসল প্রশ্নটি ধরা নাও পড়তে পারে: দাম কি কোনো এক দিকে যথেষ্ট নড়েছে, কত দ্রুত নড়েছে, অথবা লাভের লক্ষ্য ছোঁয়ার আগেই ক্ষতির সীমায় পৌঁছেছে? ট্রিপল-ব্যারিয়ার পদ্ধতি একটি ইভেন্টের চারপাশে দুটি অনুভূমিক মূল্যসীমা এবং একটি সময়সীমা বসায়।
ইভেন্ট শুরু হয় রেফারেন্স মূল্য P₀ থেকে। CUSUM-এর মতো ইভেন্ট-ফিল্টার বড় মূল্য পরিবর্তনে শুরুর সময় বেছে নিতে পারে। এই ফিল্টার শুধু কখন পর্যবেক্ষণ শুরু হবে তা বলে; শেষ লেবেল কী হবে তা বলে না। শুরুর পরে বাধাগুলো স্থাপন করা হয় এবং কোনটি আগে ঘটল তা পর্যবেক্ষণ করা হয়। Advances in Financial Machine Learning-এর তৃতীয় অধ্যায় এই লেবেলিং পদ্ধতি আলোচনা করে; mlfinpy-এর লেবেলিং ডকুমেন্টেশন ট্রিপল-ব্যারিয়ার ও মেটা-লেবেলিংয়ের ব্যবহার দেখায়।
ইভেন্টের শুরুতেই অনুভূমিক বাধা হিসাব করুন
ইভেন্ট শুরু হওয়ার সময় পর্যন্ত উপলভ্য তথ্য থেকে ওই ইভেন্টের লক্ষ্য ভোলাটিলিটি σᵢ অনুমান করুন। তারপর লাভ-গ্রহণের গুণক mPT এবং স্টপ-লস গুণক mSL বেছে নিন। σᵢ যদি সাধারণ রিটার্ন হিসেবে প্রকাশ করা হয়, লং দিকের বাধা হবে:
- ওপরের বাধা: P₀ × (1 + mPT × σᵢ)
- নিচের বাধা: P₀ × (1 − mSL × σᵢ)
এভাবে প্রতিটি ইভেন্টের জন্য বাজারের ঝুঁকি অনুযায়ী দূরত্ব বদলায়। শুরুর সময় ভোলাটিলিটি বেশি হলে বাধা দূরে, কম হলে কাছে থাকে। σᵢ শুরুতেই নির্দিষ্ট রাখলে পরের দামের গতিপথ দেখে বাধার মান বদলে ফেলা হয় না—যে ভবিষ্যৎ তথ্য লেবেল তৈরি করছে, তা দিয়ে লক্ষ্যও পাল্টে যায় না। কোনো বিশ্লেষণ লগ রিটার্ন ব্যবহার করলে সূত্রকে সেই রূপে সামঞ্জস্য করতে হবে এবং সর্বত্র একই রীতি মানতে হবে।
তৃতীয় বাধাটি উল্লম্ব: আগে থেকে নির্ধারিত শেষ সময় বা সর্বোচ্চ হোল্ডিং পিরিয়ড। ওই সময়ে কোনো অনুভূমিক বাধা না ছুঁলে ইভেন্ট সময়ে শেষ হয়। হোল্ডিং সময় ছোট বা বড় করলে মডেলকে জিজ্ঞেস করা প্রশ্নও বদলে যায়, তাই ফলাফল দেখার পরে সুবিধামতো সময় বেছে নেওয়া ঠিক নয়।
কৃত্রিম উদাহরণ: কোন বাধা আগে ছোঁয়া হলো?
ধরা যাক, P₀ = $100 এবং ইভেন্ট শুরুর সময় σᵢ = 2%। mPT = 2 ও mSL = 1.5 নিলে ওপরের বাধা $104: 100 × (1 + 2 × 0.02)। নিচের বাধা $97: 100 × (1 − 1.5 × 0.02)। উল্লম্ব বাধাটি তৃতীয় ভবিষ্যৎ বারের শেষে।
দাম যদি 100 → 104.50 যায়, প্রথম ভবিষ্যৎ বারেই ওপরের বাধা ভাঙে এবং লেবেল +1 হয়। পথ 100 → 96.50 হলে প্রথম ভবিষ্যৎ বারেই দাম $97-এর নিচে যায়, তাই লেবেল −1। আর পথ 100 → 101 → 102 → 101.50-এ তৃতীয় ভবিষ্যৎ বারের শেষ পর্যন্ত কোনো অনুভূমিক বাধাই ছোঁয়া হয় না; তখন সময়সীমা শেষ হয়। এখানে নির্ধারিত রীতি অনুযায়ী লেবেল 0, যদিও $100 থেকে $101.50 পর্যন্ত শেষ রিটার্ন +1.5%।
উদাহরণে প্রতিটি বারের ক্রম জানা আছে বলে প্রথম স্পর্শ চেনা যায়। বাস্তব বাজারের OHLC বারে সর্বোচ্চ ও সর্বনিম্ন দাম একই বারে দুই বাধাই অতিক্রম করলে কোনটি আগে ঘটেছে, শুধু এই মান থেকে জানা যায় না।
সময় শেষ হলে কোন লেবেল দেবেন তা লিখে রাখুন
উল্লম্ব বাধা আগে এলে একাধিক প্রচলিত নিয়ম আছে। এই লেখায় নিয়মটি হলো: নির্ধারিত সময়ের আগে লাভ বা ক্ষতির অনুভূমিক বাধা না ছুঁলে লেবেল 0—শেষ সময়ে দাম শুরু দামের ওপরে বা নিচে যাই থাকুক। mlfinpy ডকুমেন্টেশন উল্লম্ব বাধাকে সর্বোচ্চ সময়সীমা হিসেবে বর্ণনা করে; labeling.py বাস্তবায়ন-এ ওপরের বাধার জন্য 1, নিচের জন্য −1 এবং উল্লম্ব বাধার জন্য 0 দেখানো হয়েছে।
অন্য কিছু বাস্তবায়নে সময় শেষে রিটার্নের চিহ্ন ব্যবহার করা হয়: শেষ দাম বেশি হলে +1, কম হলে −1, এবং অপরিবর্তিত হলে 0। সেটি আলাদা প্রশ্নের উত্তর দেয়—সেখানে লক্ষ্য হলো শেষ রিটার্নের দিক, অনুভূমিক বাধা ছোঁয়া হয়েছিল কি না শুধু তা নয়। দুটি লাইব্রেরির ফল তুলনা করার আগে কোন রীতি ব্যবহার হয়েছে তা মিলিয়ে নিন এবং লক্ষ্য-সংজ্ঞায় তা লিখুন।

দিক-লেবেল ও মেটা-লেবেলিং আলাদা রাখুন
প্রাথমিক দিক-লেবেল হতে পারে +1, −1 বা 0: যথাক্রমে লাভের বাধা, ক্ষতির বাধা বা সময় শেষ হওয়া। কোনো প্রাথমিক মডেল আগে থেকেই কেনা বা বেচার দিক ঠিক করতে পারে; এরপর দ্বিতীয় মডেল সেই সংকেত নেওয়া হবে, নাকি বাদ দেওয়া হবে তা শেখে। এই পদ্ধতিকে মেটা-লেবেলিং বলা হয়। এখানে দ্বিতীয় মডেলের 1 সাধারণত সংকেত গ্রহণ এবং 0 সংকেত প্রত্যাখ্যান বোঝায়—এটি তিন-শ্রেণির দিক-লেবেলের সমতুল্য নয়।
যদি প্রাথমিক মডেল লং বা শর্ট দিক বেছে দেয়, দ্বিতীয় ধাপের ফল সেই দিক অনুযায়ী মূল্যায়ন করুন। দ্বিতীয় মডেলের কাজ যদি শুধু নেওয়া বা পাস করা ঠিক করা হয়, তাহলে তাকে নতুন করে বাজারের দিক অনুমান করতে বাধ্য করবেন না। লেবেলটি মোট ফল নাকি খরচ বাদে নিট ফল বর্ণনা করছে, সেটিও নির্দিষ্ট করুন।
ভবিষ্যৎ ফলাফলকে X ফিচার থেকে দূরে রাখুন
ইভেন্ট শুরুর মুহূর্তে σᵢ, গুণক এবং ফিচার X বাস্তবে জানা থাকতে হবে, অথবা শুধু তখনকার তথ্য দিয়ে গণনা করা সম্ভব হতে হবে। শুরুর পরের দাম কোন বাধা আগে ছোঁয়া হয়েছে তা জানায় এবং সেই তথ্য y তৈরি করে। ভবিষ্যৎ রিটার্ন, ইভেন্টের শেষ সময় বা তখনও অজানা অন্য তথ্য X-এ রাখলে উত্তরটি আগেই মডেলকে দেখানো হয়।
ঘন ঘন শুরু হওয়া ইভেন্ট একে অপরের আগে শেষ নাও হতে পারে। ফলে তাদের লেবেল একই ভবিষ্যৎ দামের কিছু অংশ ভাগ করে নিতে পারে। যাচাইয়ের সময় কেবল ইভেন্টের সারি এলোমেলোভাবে ভাগ করলে এই নির্ভরতা বাদ যায় না। প্রতিটি ইভেন্টের প্রকৃত শুরু-শেষ সময় ধরে test outcome-এর সঙ্গে মিলে যাওয়া training sample purging করে বাদ দিন। দরকার হলে আলাদা embargo সময় নির্ধারণ করুন। আর্থিক টাইম সিরিজে এ নিয়ে purged cross-validation ও embargo-এর ব্যাখ্যা পড়ুন।
দামের তথ্য ও খরচের নিয়ম ঠিক করুন
একই OHLC বারে high ও low যথাক্রমে লাভ এবং ক্ষতির বাধা পার হতে পারে। OHLC ডেটা দেখায় না কোনটি আগে ছোঁয়া হয়েছিল। সম্ভব হলে আরও সূক্ষ্ম সময়ের ডেটা ব্যবহার করুন; তা না হলে আগেই একটি ধারাবাহিক ও সংরক্ষণশীল নিয়ম লিখে রাখুন। কেবল close ব্যবহার করলে বারের ভেতরে বাধা পেরিয়ে পরে ফিরে আসা চলন বাদ পড়তে পারে।
লেবেল যদি বাস্তব লেনদেনের ফল বোঝায়, কমিশন, bid-ask spread, slippage, বাজারে অর্ডারের প্রভাব এবং প্রযোজ্য ক্ষেত্রে funding বা ধার নেওয়ার খরচ ধরুন। নিট রিটার্ন ধরলে মেটা-লেবেলিংয়ে সংকেত গ্রহণের সিদ্ধান্তও বদলাতে পারে। ট্রিপল-ব্যারিয়ার পদ্ধতি প্রশিক্ষণের লক্ষ্য বানায়; এটি নিজে কোনো ট্রেডিং কৌশল বা লাভের নিশ্চয়তা নয়।
সাধারণ প্রশ্ন
Q1CUSUM কি ইভেন্টের লেবেলও নির্ধারণ করে?
না। CUSUM কোনো মূল্য-পরিবর্তন নির্দিষ্ট সীমা ছাড়ালে ইভেন্টের শুরু বেছে দিতে পারে। শুরু নির্ধারিত হওয়ার পরে তিনটি বাধা ফলাফলের লেবেল তৈরি করে।
Q2উল্লম্ব বাধায় শেষ হলেই কি সবসময় লেবেল 0?
না। এই লেখার নির্ধারিত রীতি এবং উল্লেখিত mlfinpy উদাহরণে 0 ব্যবহার করা হয়েছে। অন্য কোডে শেষ রিটার্নের চিহ্ন লাগানো হতে পারে, তাই ডেটাসেট বা বাস্তবায়ন তুলনার আগে নিয়ম দেখুন।
Q3+1 লেবেল কি খরচ বাদে লাভ নিশ্চিত করে?
না। +1 মানে নির্ধারিত দামের নিয়মে ওপরের বাধা আগে ছোঁয়া হয়েছে। কমিশন, spread, slippage, funding এবং অর্ডার বাস্তবায়নের মান নিট ফল বদলে দিতে পারে।
উৎস ও আরও পড়ুন
সমস্যা জানান
এই নিবন্ধের লিংকসহ একটি ইমেল তৈরি হবে। পাঠানোর পরেই Mark প্রতিবেদনটি পাবে
দ্রুত যাচাই
গাইডটি পড়ার পর 3টি প্রশ্নে নিজেকে যাচাই করুন
প্রশ্ন 01
উদাহরণে 100 → 101 → 102 → 101.50 পথে তৃতীয় ভবিষ্যৎ বারের শেষে সময়সীমা শেষ হলে লেবেল কী?
ব্যাখ্যা দেখতে একটি উত্তর বেছে নিন
অপশন শব্দকোষ
এক্সারসাইজ নোটিশের পর চুক্তি পূরণের দায় অপশন বিক্রেতার ওপর বণ্টিত হওয়ার প্রক্রিয়া, যাতে শেয়ার দেওয়া বা কেনার বাধ্যবাধকতা তৈরি হতে পারে।
বিস্তারিত গাইড পড়ুনবিড-আস্ক স্প্রেডএকটি চুক্তির সেরা বিড ও আস্কের মধ্যকার ব্যবধান। এটি অবস্থানে ঢোকা ও বের হওয়ার একটি বাস্তব খরচ বোঝায় এবং তারল্য কমলে বড় হতে পারে।
বিস্তারিত গাইড পড়ুন