স্ট্যাটিক রুলস ব্যর্থ হলে মেশিন লার্নিং আমার প্রাণ বাঁচিয়েছে
আলগোরিদমিক ট্রেডিং সম্পর্কে কেউ আপনাকে যা বলে না তা হল: বিশ্বের সেরা কৌশলও তখন মূল্যহীন হয়ে যায় যখন বাজারের রেজিম পরিবর্তন হয়। আমি ২০১৮ সালের ফেব্রুয়ারিতে এই শিক্ষা ব্যয়বহুলভাবে পেয়েছিলাম যখন আমার মিন রিভার্সন সিস্টেম — যা টানা ৩ বছর লাভজনক ছিল — VIX বিস্ফোরণের সময় ৮ দিনে ২৩% ক্ষতিগ্রস্ত হয়েছিল।
Two Sigma-তে আমাদের একটি কথা ছিল: "বাজারের স্মৃতি আছে, কিন্তু তারা সিজোফ্রেনিকও বটে।" নিজের মূলধন নিয়ে ট্রেড করতে চলে আসার পর, আমি ১৮ মাস ধরে তৈরি করেছি যা পরে আমার রেজিম ডিটেকশন ফ্রেমওয়ার্কে পরিণত হয়। কারণ আমি চেয়েছিলাম বলে নয় — বরং করতে বাধ্য হয়েছিলাম বলে।
প্রচলিত পদ্ধতি? বিভিন্ন বাজার পরিস্থিতির জন্য আলাদা কৌশল হার্ড-কোড করা। সমস্যা? আপনি যখন বুঝতে পারবেন যে রেজিম পরিবর্তিত হয়েছে, ততক্ষণে আপনার P&L ইতিমধ্যেই রক্তক্ষরণ শুরু করেছে। প্রকৃত রেজিম ডিটেকশন হয় মুভের আগে, পরে নয়।

হিডেন মার্কভ মডেল যা সবকিছু বদলে দিয়েছে
মার্চ ২০২০। সবাই যখন বিতর্ক করছিল COVID "শুধু একটি ফ্লু" কিনা, আমার রেজিম ডিটেকশন মডেল একটি আকর্ষণীয় কাজ করেছিল — এটি ২১শে ফেব্রুয়ারিতে "ট্রেন্ডিং" থেকে "ক্রাইসিস" মোডে স্যুইচ করেছিল, প্রকৃত ক্র্যাশের পুরো ১০ দিন আগে। কারণ এটি মহামারীর পূর্বাভাস দিয়েছিল বলে নয়, বরং বাজারের মাইক্রোস্ট্রাকচার ইতিমধ্যেই চিৎকার করছিল।
এখানে সরলীকৃত সংস্করণ যা আমার পোর্টফোলিও বাঁচিয়েছে:
def detect_regime(features):
# ফিচার: ভোলাটিলিটি রেশিও, কোরিলেশন ম্যাট্রিক্স, ভলিউম প্যাটার্ন
regime_probabilities = hmm_model.predict_proba(features)
if regime_probabilities['crisis'] > 0.7:
return 'defensive'
elif regime_probabilities['trending'] > 0.6:
return 'momentum'
else:
return 'mean_reversion'
জাদুটি মডেলে নয় — এটি ফিচারে। বেশিরভাগ রেজিম ডিটেকশন ব্যর্থ হয় কারণ লোকেরা এতে ভুল ইনপুট দেয়। মুভিং এভারেজ? অকেজো। RSI? আরও খারাপ। আপনার এমন ফিচার দরকার যা বাজারের মাইক্রোস্ট্রাকচার ক্যাপচার করে:
- একাধিক টাইমফ্রেম জুড়ে রিয়েলাইজড/ইমপ্লায়েড ভোলাটিলিটি রেশিও
- ক্রস-অ্যাসেট কোরিলেশন ম্যাট্রিক্স (যখন বন্ড এবং স্টক একসাথে চলে, রেজিম পরিবর্তন হচ্ছে)
- অর্ডার ফ্লো ইমব্যালেন্স পার্সিস্টেন্স (দিকনির্দেশক চাপ কতক্ষণ স্থায়ী হয়)
- ইন্ট্রাডে ভোলাটিলিটি ক্লাস্টারিং (ভয় ডেইলি চার্টের আগে ১৫-মিনিটের বারে দেখা দেয়)
আমার বর্তমান মডেল ৪৭টি ফিচার ব্যবহার করে, কিন্তু এই চারটি রেজিম ক্লাসিফিকেশন নির্ভুলতার ৭১% জন্য দায়ী।

তিনটি রেজিম স্টেট যা আসলে গুরুত্বপূর্ণ
৭টি ভিন্ন বাজার রেজিম নিয়ে আলোচনা করা একাডেমিক পেপারগুলো ভুলে যান। ফিউচার, ফরেক্স এবং ক্রিপ্টো জুড়ে ৮ বছরের টিক ডেটা প্রসেস করার পর, শুধুমাত্র তিনটি রেজিম আপনার P&L-কে প্রভাবিত করে:
১. মোমেন্টাম রেজিম (বাজারের ৩৮% সময়)
বৈশিষ্ট্যযুক্ত ৩৮.২% ফিবোনাচির নিচে পুলব্যাক সহ স্থায়ী দিকনির্দেশক মুভ। কোরিলেশন ইতিবাচক থাকে, ভোলাটিলিটি ধীরে ধীরে বাড়ে। এখানেই ট্রেন্ড ফলোয়িং অর্থ ছাপায়। আমার মোমেন্টাম অ্যালগো এখানে পূর্ণ পজিশন সাইজে চলে।
২. মিন রিভার্সন রেজিম (বাজারের ৪৯% সময়)
বেশিরভাগ অ্যালগো ট্রেডারদের জন্য রুটির মাখন। ভোলাটিলিটি সংকুচিত হয়, রেঞ্জ ধরে রাখে, কোরিলেশন মিন-রিভার্ট করে। কিন্তু এখানে একটি ধরা আছে — এই রেজিমের দুটি উপ-অবস্থা রয়েছে যাকে আমি "স্বাস্থ্যকর চপ" এবং "সংকুচিত স্প্রিং" বলি। পরেরটি হিংস্র মুভের পূর্বাভাস দেয়।
৩. ক্রাইসিস রেজিম (বাজারের ১৩% সময়)
সমস্ত কোরিলেশন ১ বা -১-এ চলে যায়। ভোলাটিলিটি বিস্ফোরিত হয়। লিকুইডিটি অদৃশ্য হয়ে যায়। প্রচলিত কৌশলগুলি কেবল কম পারফর্ম করে না — তারা বিস্ফোরিত হয়। ক্রাইসিস রেজিমের সময়, আমি পজিশন সাইজ ৭৫% কমিয়ে ফেলি এবং শুধুমাত্র ভোলাটিলিটি আরবিট্রেজে স্যুইচ করি।
মূল অন্তর্দৃষ্টি? রেজিমগুলি ক্লাস্টার করে। ৭৩% সময় কম্প্রেশন অনুসরণ করে ক্রাইসিস। ৬৭% সময় ক্রাইসিস অনুসরণ করে মোমেন্টাম। এই সিকোয়েন্সিং আপনাকে একটি এজ দেয়।
নিজের রেজিম ডিটেকশন সিস্টেম তৈরি করা
আমি আপনাকে ৬ মাসের ট্রায়াল এবং ত্রুটি থেকে বাঁচাই। এখানে সেই ফ্রেমওয়ার্ক যা প্রোডাকশনে আসলে কাজ করে:
class RegimeDetector:
def __init__(self, lookback=252, retrain_frequency=30):
self.features = ['vol_ratio', 'correlation_eigenvalue',
'flow_persistence', 'intraday_clustering']
self.model = HiddenMarkovModel(n_states=3)
self.scaler = RobustScaler() # আউটলায়ারগুলি আরও ভালভাবে হ্যান্ডেল করে
def calculate_features(self, data):
# এখানেই জাদু ঘটে
features = {}
# ভোলাটিলিটি রেজিম
features['vol_ratio'] = data['realized_vol'] / data['implied_vol']
# কোরিলেশন স্ট্রাকচার
corr_matrix = calculate_rolling_correlation(data, window=21)
features['correlation_eigenvalue'] = np.max(np.linalg.eigvals(corr_matrix))
# মাইক্রোস্ট্রাকচার
features['flow_persistence'] = calculate_order_flow_autocorrelation(data)
return self.scaler.transform(features)
বেশিরভাগ টিউটোরিয়াল যে সমালোচনামূলক অংশগুলি এড়িয়ে যায়:
- StandardScaler নয়, RobustScaler ব্যবহার করুন। বাজারের ডেটার ফ্যাট টেল থাকে যা স্বাভাবিক স্ট্যান্ডার্ডাইজেশন ভেঙে দেয়।
- প্রতিদিন নয়, মাসিক রিট্রেইন করুন। রেজিম মডেলগুলি নয়েজের উপর ওভারফিটিংয়ের জন্য সংবেদনশীল।
- সর্বোচ্চ ৩টি স্টেট দিয়ে শুরু করুন। বেশি স্টেট = ইন-স্যাম্পল পারফরম্যান্স দিয়ে নিজেকে বোকা বানানোর আরও উপায়।

ওভারফিটিং ফাঁদ যা বেশিরভাগ ML ট্রেডারকে মেরে ফেলে
এখানেই আমি ML ইভাঞ্জেলিস্টদের রাগিয়ে দিতে যাচ্ছি: ট্রেডিংয়ে বেশিরভাগ মেশিন লার্নিং হল জটিল কার্ভ-ফিটিং। আমি ৯৩% ইন-স্যাম্পল নির্ভুলতা সহ মডেল তৈরি করেছি যা প্রোডাকশনে অর্থ হারিয়েছে। কেন? তারা সিগন্যাল নয়, নয়েজ শিখেছে।
আমার প্রথম রেজিম ডিটেকশন মডেলে ২০০+ ফিচার ছিল এবং নিউরাল নেটওয়ার্কের একটি জটিল এনসেম্বল ব্যবহার করেছিল। এটি ২০০৮ সালের সংকটকে পুরোপুরি "পূর্বাভাস" দিতে পারত। ব্যাকটেস্টিংয়ে। লাইভ ট্রেডিংয়ে? এটি প্রতি দুই দিন পর পর রেজিমের মধ্যে সুইচ করত, আলফার চেয়ে বেশি ট্রানজেকশন খরচ তৈরি করত।
সমাধান কম ML নয় — এটি স্মার্ট ML:
- মডেল জটিলতার চেয়ে ফিচার ইঞ্জিনিয়ারিং বেশি গুরুত্বপূর্ণ। একটি সাধারণ HMM দুর্দান্ত ফিচার সহ আবর্জনা ইনপুট সহ নিউরাল নেটওয়ার্ককে হারায়।
- ওয়াক-ফরোয়ার্ড ভ্যালিডেশন অ-আলোচনাযোগ্য। ২০১৯-২০২০-এ ট্রেইন করুন, ২০২১-এ ভ্যালিডেট করুন, ২০২২-এ টেস্ট করুন। যদি এটি বিভিন্ন বাজার চক্র জুড়ে সাধারণীকরণ না করে, তবে এটি মূল্যহীন।
- নির্ভুলতার চেয়ে রেজিম স্থিতিশীলতা বেশি গুরুত্বপূর্ণ। দেরিতে রেজিম সনাক্ত করা কিন্তু সেগুলিতে থাকা প্রতিটি ভোলাটিলিটি স্পাইকে দুলতে থাকার চেয়ে ভাল।
আমার বর্তমান মডেল ২০% তাত্ত্বিক নির্ভুলতা বিসর্জন দেয় ৮০% বেশি স্থিতিশীলতার জন্য। এই ট্রেড-অফ অর্থ ছাপায়।
লাইভ ট্রেডিং ফলাফল: ভাল, খারাপ এবং কুৎসিত
গত ১৮ মাসে আমার রেজিম-অ্যাডাপ্টিভ কৌশলগুলি থেকে প্রকৃত সংখ্যা নিয়ে কথা বলি:
ভাল: অক্টোবর ২০২৪-এর ট্রেজারি ভোলাটিলিটি স্পাইকের সময়, রেজিম ডিটেক্টর ২ দিন আগে ক্রাইসিস মোডে স্যুইচ করেছিল। ফলাফল? +৮.৭% যেখানে বাই-এন্ড-হোল্ড ১২% হারিয়েছে।
খারাপ: গ্রীষ্ম ২০২৪-এর "চপ জোন" চলাকালীন মিথ্যা সিগন্যাল ৭টি অপ্রয়োজনীয় রেজিম স্যুইচ ঘটিয়েছে। প্রতিটি স্যুইচের খরচ প্রায় ০.৩% ট্রানজেকশন খরচ এবং স্লিপেজে। এটি -২.১% ডেড ওয়েট লস।
কুৎসিত: মডেলটি জানুয়ারি ২০২৫-এর ক্রিপ্টো ফ্ল্যাশ ক্র্যাশ সম্পূর্ণভাবে মিস করেছে। কেন? ক্রিপ্টো মাইক্রোস্ট্রাকচার ঐতিহ্যবাহী বাজার থেকে আলাদা, এবং আমার ফিচারগুলি ফিউচার ডেটার উপর ক্যালিব্রেট করা হয়েছিল। ম্যানুয়াল ওভাররাইডের আগে ৪.২% হারিয়েছি। শিক্ষা নিয়েছি — রেজিম ডিটেকশন সব অ্যাসেট ক্লাসের জন্য এক-আকার-ফিট-সব নয়।
সামগ্রিক কর্মক্ষমতা: +৩১.৪% বনাম স্ট্যাটিক কৌশলের জন্য +১৯.২%। কিন্তু প্রকৃত মূল্য অতিরিক্ত রিটার্ন নয় — এটি ভাল ঘুমানো জেনে যে আমার অ্যালগো বাজার পাগল হলে মানিয়ে নেয়।
রিয়েল ট্রেডিং সিস্টেমের সাথে ইন্টিগ্রেশন
তত্ত্ব ভাল। বাস্তবায়নই বিল পরিশোধ করে। এখানে কিভাবে রেজিম ডিটেকশন প্রকৃত ট্রেডিং অবকাঠামোর সাথে একীভূত হয়:
# ঝুঁকি ব্যবস্থাপনা স্তর
position_size = base_size * regime_risk_multiplier[current_regime]
if current_regime == 'momentum':
active_strategies = ['trend_following', 'breakout']
disable_strategies(['mean_reversion', 'arbitrage'])
elif current_regime == 'mean_reversion':
active_strategies = ['range_trading', 'pairs']
disable_strategies(['trend_following'])
else: # crisis
active_strategies = ['volatility_arb']
reduce_all_positions(0.25)
সমালোচনামূলক বাস্তবায়ন বিবরণ:
- রেজিম ট্রানজিশনের বাফার প্রয়োজন। প্রথম সিগন্যালেই কৌশল পরিবর্তন করবেন না — পরপর ২-৩টি পিরিয়ডের নিশ্চিতকরণ প্রয়োজন।
- কৌশল পরিবর্তনের আগে পজিশন সাইজিং সামঞ্জস্য করুন। প্রথমে ঝুঁকি কমিয়ে ফেলুন, পরে প্রশ্ন করুন।
- সর্বদা একটি "রেজিম-নিরপেক্ষ" হেজ বজায় রাখুন। আমারটি অনিশ্চয়তার সময় লং ভোলাটিলিটি।
ট্রেডারদের জন্য যারা FibAlgo-এর ইন্ডিকেটর ব্যবহার করেন, মাল্টি-টাইমফ্রেম সিগন্যাল আসলে রেজিম ডিটেকশনের সাথে ভালভাবে পরিপূরক হয় — তারা নিশ্চিত করতে সাহায্য করে কখন ছোট টাইমফ্রেমগুলি ডেইলি চার্ট ধরার আগে রেজিম পরিবর্তনের সাথে সারিবদ্ধ হতে শুরু করে।

সাধারণ ব্যর্থতার মোড এবং কীভাবে এড়ানো যায়
আমি আপনাকে সেই ভুলগুলি থেকে বাঁচাই যা আমার ছয় অঙ্কের খরচ করেছে:
ব্যর্থতার মোড ১: ফিচার লিকেজ
ভোলাটিলিটি রেজিম সনাক্ত করতে ইমপ্লায়েড ভোলাটিলিটি ব্যবহার করা স্মার্ট মনে হয় যতক্ষণ না আপনি বুঝতে পারেন যে IV ইতিমধ্যেই রেজিম প্রত্যাশা মূল্য নির্ধারণ করে। আপনি অতীতের পূর্বাভাস দিচ্ছেন। রিয়েলাইজড মেট্রিক্স এবং মাইক্রোস্ট্রাকচারে লেগে থাকুন।
ব্যর্থতার মোড ২: রেজিম ট্রানজিশন হুইপস
বাজারগুলি পরিষ্কারভাবে রেজিম পরিবর্তন করে না। সর্বদা একটি জগাখিচুড়ি ট্রানজিশন পিরিয়ড থাকে। আমার সমাধান? একটি "ট্রানজিশন স্টেট" যা নতুন রেজিম স্থিতিশীল না হওয়া পর্যন্ত পজিশন ন্যূনতম রাখে।
ব্যর্থতার মোড ৩: অ্যাসেট-নির্দিষ্ট ক্যালিব্রেশন
S&P ফিউচারে প্রশিক্ষিত একটি রেজিম ডিটেক্টর ফরেক্সে দর্শনীয়ভাবে ব্যর্থ হবে। প্রতিটি অ্যাসেট ক্লাসের অনন্য মাইক্রোস্ট্রাকচার রয়েছে। আলাদা মডেল তৈরি করুন বা সাবধানে ট্রান্সফার লার্নিং ব্যবহার করুন।
ব্যর্থতার মোড ৪: ম্যাক্রো ইভেন্ট উপেক্ষা করা
কোনো ML মডেল ব্রেক্সিট বা সুইস ফ্রাঙ্ক ডিপেগের পূর্বাভাস দেয়নি। রেজিম ডিটেকশন আপনাকে দ্রুত প্রতিক্রিয়া জানাতে সাহায্য করে, ব্ল্যাক সোয়ানের পূর্বাভাস দিতে নয়। "অসম্ভব" ঘটনার জন্য সর্বদা সার্কিট ব্রেকার বজায় রাখুন।
অ্যাডাপ্টিভ ট্রেডিংয়ের ভবিষ্যৎ
৮ বছর রেজিম ডিটেকশন সিস্টেম তৈরি এবং ভাঙার পর, এখানে আমার বিপরীতমুখী মতামত: ভবিষ্যৎ আরও জটিল মডেল নয় — এটি সহজ মডেল যা দ্রুত মানিয়ে নেয়।
বাজারগুলি হাই-ফ্রিকোয়েন্সি স্তরে আরও দক্ষ হচ্ছে কিন্তু ডেইলি/উইকলি স্তরে আরও রেজিম-নির্ভর হচ্ছে। কেন্দ্রীয় ব্যাংকের হস্তক্ষেপ, অ্যালগোরিদমিক হার্ডিং, প্যাসিভ ফ্লো আধিপত্য — এগুলি স্বতন্ত্র রেজিম তৈরি করে যা সহজ অ্যাডাপ্টিভ সিস্টেমগুলি কাজে লাগাতে পারে।
আমার পরবর্তী প্রকল্প? সম্পূর্ণরূপে প্রকাশ পাওয়ার আগে রেজিম ট্রানজিশন পূর্বাভাস দিতে লিকুইডিটি-ওয়েটেড বিশ্লেষণ এর সাথে রেজিম ডিটেকশন একত্রিত করা। প্রাথমিক ফলাফল বড় পরিবর্তনের উপর ৪-৬ ঘন্টা লিড টাইম দেখায়।
২০২৬ সালে এজ সেরা মডেল থাকার মধ্যে নয় — এটি এমন একটি মডেল থাকার মধ্যে যা স্বীকার করে যখন এটি ভুল এবং মানিয়ে নেয়। স্ট্যাটিক কৌশলগুলি মৃত। আপনি যদি অ্যাডাপ্টিভ আচরণ কোড করতে না পারেন, তবে আপনি আগামীকালের বাজারে গতকালের সরঞ্জাম দিয়ে ট্রেড করছেন।
আপনার পরবর্তী পদক্ষেপ
সহজভাবে শুরু করুন। নিউরাল নেটওয়ার্ক ভুলে যান এবং রেজিমের মূল বিষয়গুলিতে মনোযোগ দিন:
- আপনার প্রধান ট্রেডিং ইন্সট্রুমেন্টের জন্য রোলিং ২০-দিনের রিয়েলাইজড/ইমপ্লায়েড ভোলাটিলিটি অনুপাত গণনা করুন
- যখন অনুপাতটি তার ৯০-দিনের মুভিং এভারেজ অতিক্রম করে, তখন রেজিম ট্রানজিশন চিহ্নিত করুন
- প্রতিটি রেজিমে আপনার বর্তমান কৌশল কেমন পারফর্ম করে তা ব্যাকটেস্ট করুন
- রেজিমের ভিত্তিতে পজিশন সাইজিং অ্যাডজাস্টমেন্ট বাস্তবায়ন করুন (এখনই কৌশল পরিবর্তন নয়)
- এটি কাজ করার পরেই, আরও উন্নত ফিচার এবং মডেল যুক্ত করুন
মনে রাখবেন: রেজিম ডিটেকশন একটি টুল, কোনো কৌশল নয়। এটি আপনাকে বলে কখন কোন কৌশল চালাতে হবে। আলফা আসে প্রতিটি রেজিমের জন্য ভালো কৌশল থাকা এবং সেগুলির মধ্যে পদ্ধতিগতভাবে পরিবর্তন করার শৃঙ্খলা থেকে।
বাজারগুলো আরও অদ্ভুত হতে থাকবে। আপনার ট্রেডিং সিস্টেমগুলোকে মানিয়ে নেওয়ার জন্য প্রস্তুত থাকতে হবে, নাহলে আপনি সেই উজ্জ্বল কৌশলগুলোর কবরস্থানে যোগ দেবেন যা কাজ করেছিল যতক্ষণ না তারা কাজ করা বন্ধ করে দেয়। টু সিগমায় আমাদের আরেকটি প্রবাদ ছিল: "বাজার আপনার পিএন্ডএল নিয়ে চিন্তা করে না।" কিন্তু সঠিক রেজিম ডিটেকশনের মাধ্যমে, অন্তত আপনি ট্রাকটি আসার আগেই দেখতে পাবেন।


