Kalman Filter হেজ অনুপাত: পেয়ার ট্রেডিংয়ের ডায়নামিক রিগ্রেশন
স্টেট-স্পেস রিগ্রেশন কীভাবে পরিবর্তনশীল হেজ অনুপাত হালনাগাদ করে, process noise কীভাবে সাড়া দেওয়ার গতি নিয়ন্ত্রণ করে, এবং filtered spread-এরও কেন out-of-sample যাচাই দরকার—তা জানুন
এই গাইডেDynamic hedge ratio পরিবর্তনশীল সম্পর্ককে model করে
সংক্ষিপ্ত সারাংশ
প্রতিটি নতুন পর্যবেক্ষণ এলে Kalman filter রিগ্রেশনের intercept ও hedge coefficient হালনাগাদ করতে পারে। পরিবর্তনশীল estimate সম্পর্ক কীভাবে বদলায় তার একটি model; এটি cointegration, mean-reverting spread বা লাভজনক signal-এর প্রমাণ নয়।
Dynamic hedge ratio পরিবর্তনশীল সম্পর্ককে model করে
Fixed hedge ratio গঠনের sample-এ একটি coefficient fit করে সেটি অপরিবর্তিত রাখে। Dynamic hedge model-এ intercept ও slope-কে সময়ের সঙ্গে বদলাতে পারে এমন latent quantity হিসেবে দেখা হয়। Kalman filter আগের estimate-এর সঙ্গে নতুন observation-এর তথ্য মিলিয়ে এই quantity-গুলো recursiveভাবে estimate করে।
দুটি সম্ভাব্য asset-এর ক্ষেত্রে একটি asset-এর log price-কে \(y_t\) এবং অন্যটির log price-কে \(x_t\) বলি। পরিবর্তনশীল long-run regression লেখা যায় \(y_t=\alpha_t+\beta_t x_t+\epsilon_t\)। Coefficient \(\beta_t\) সময় \(t\)-এ fit করা সম্পর্কটি বর্ণনা করে; এটি নিজে থেকে share count, dollar-neutral position বা স্থায়ী economic law হয়ে যায় না।
এই প্রয়োগে linear state-space model-এর সাধারণ prediction-and-update recursion ব্যবহার করা হয়। Kalman recursive filtering framework প্রবর্তন করেন; পরবর্তী econometric গবেষণায় তা সময়ের সঙ্গে বদলানো regression coefficient estimate করতে ব্যবহৃত হয়েছে। Stochastic spread দিয়ে pairs trading করা একটি প্রয়োগ, তবে trading assumption-গুলো filtering algorithm থেকে আলাদাভাবে যাচাই করতে হবে।

Regression coefficient-গুলোকে hidden state-এ রাখুন
State vector এবং observation row সংজ্ঞায়িত করি:
\[ \theta_t= \begin{bmatrix}\alpha_t\\\beta_t\end{bmatrix}, \qquad H_t=\begin{bmatrix}1&x_t\end{bmatrix}. \]
Observation equation হলো \(y_t=H_t\theta_t+\epsilon_t\)। এর অর্থ, observed log price-কে latent intercept, hedge coefficient এবং observation noise দিয়ে বর্ণনা করা হয়। প্রচলিত একটি সূচনা হলো দুই coefficient-ই random walk অনুসরণ করে:
\[ \theta_t=\theta_{t-1}+\eta_t,\qquad \eta_t\sim N(0,Q),\qquad \epsilon_t\sim N(0,R). \]
এখানে \(Q\) হলো coefficient change-এর covariance এবং \(R\) হলো observation-noise variance। \(Q=0\) হলে এই model-এ coefficient স্থির; ধনাত্মক \(Q\) তাদের drift করার সুযোগ দেয়। অন্য state transition-ও সম্ভব, তবে প্রতিটিই সম্পর্কের গতিপথ সম্পর্কে আলাদা দাবি করে।
এই সরল specification ধরে নেয় process disturbance ও observation disturbance-এর mean শূন্য, এগুলো serially uncorrelated এবং পরস্পর independent। এগুলো model-এর assumption; price observation নিজে থেকে তা পূরণ করে না।
নতুন দাম দেখার আগে state ও তার uncertainty পূর্বানুমান করুন
\(t-1\) শেষ হলে filter-এর কাছে থাকে estimate \(\hat\theta_{t-1|t-1}\) এবং covariance \(P_{t-1|t-1}\)। Random-walk state equation-এর prediction হলো:
\[ \hat\theta_{t|t-1}=\hat\theta_{t-1|t-1}, \qquad P_{t|t-1}=P_{t-1|t-1}+Q. \]
Estimate আগের মান বহন করে, আর অনুমোদিত coefficient-change covariance অনুযায়ী uncertainty বাড়ে। নির্দিষ্ট model-এর অধীনে latent regression state কতটা অনিশ্চিত, \(P\) তা বর্ণনা করে। এটি pair-এর trading loss-এর forecast বা portfolio risk-এর পূর্ণ মাপ নয়।
এক ধাপ আগের fitted observation হলো \(H_t\hat\theta_{t|t-1}\)। Prior state ব্যবহার জরুরি, কারণ নতুন \(y_t\) না দেখেই সেটি তৈরি হয়। একই observation দিয়ে coefficient update করার পর residual হিসাব করলে update ইতিমধ্যেই সেটিকে শূন্যের দিকে টেনে এনেছে।
\(H_t\)-তে \(x_t\) আছে বলে বর্তমান explanatory price \(S_t\) এবং gain—দুটোকেই প্রভাবিত করে। Slope-এর uncertainty বেশি হলে বিভিন্ন \(x_t\)-এর observation \(\beta_t\) সম্পর্কে ভিন্ন তথ্য দিতে পারে, যদিও intercept-slope covariance-ও গুরুত্বপূর্ণ। \(x_t\) কেন্দ্রায়িত বা rescale করলে intercept এবং coefficient-এর একক বদলায়। তাই \(Q\)-এর সংশ্লিষ্ট উপাদান ও initial \(P\) রূপান্তর বা পুনরায় estimate করতে হবে; অপরিবর্তিতভাবে কপি করা যাবে না।
Innovation নির্ধারণ করে filter কীভাবে hedge estimate হালনাগাদ করবে
নতুন observation এলে এক ধাপের prediction error, অর্থাৎ innovation, হলো
\[ v_t=y_t-H_t\hat\theta_{t|t-1}, \qquad S_t=H_tP_{t|t-1}H_t^{\mathsf T}+R. \]
Innovation variance \(S_t\) পূর্বানুমিত state uncertainty ও observation noise একত্র করে। Kalman gain এবং state update হলো
\[ K_t=P_{t|t-1}H_t^{\mathsf T}S_t^{-1}, \qquad \hat\theta_{t|t}=\hat\theta_{t|t-1}+K_tv_t. \]
Gain নতুন surprise-এর কতটা estimated relationship বদলাবে আর কতটা noise হিসেবে ধরা হবে, তা ভাগ করে। Gain বড় হলে ওই observation অনুযায়ী estimate বেশি বদলায়; এর মানে সম্পর্ক বেশি নির্ভরযোগ্য নয়।
ধরা যাক, একটি কাল্পনিক filter \(\hat\alpha=2.0\), \(\hat\beta=1.20\) পূর্বানুমান করে এবং \(x_t=50\), ফলে \(\hat y=62.0\)। যদি পর্যবেক্ষিত \(y_t=62.8\) হয়, innovation \(0.8\)। Model-এর gain \([0.08,0.006]^{\mathsf T}\) হলে updated intercept \(2.064\), আর slope \(1.2048\)। এগুলো শুধু হিসাব দেখানোর কাল্পনিক মান; empirical hedge ratio বা deviation ফিরে আসার প্রমাণ নয়।
Process noise ও measurement noise আলাদা ধরনের নমনীয়তা ঠিক করে
Process-noise matrix \(Q\) বলে, পরপর observation-এর মধ্যে regression coefficient কতটা নড়তে পারবে। \(Q\) বড় হলে সাধারণত gain বেড়ে estimate বেশি responsive হয়। এতে প্রকৃত সম্পর্কের পরিবর্তন দ্রুত ধরা পড়তে পারে, কিন্তু সাময়িক noise-ও ধাওয়া হতে পারে এবং hedge weight দ্রুত বদলাতে পারে। \(Q\) খুব ছোট হলে estimate মসৃণ হয়, কিন্তু প্রকৃত break-এর তুলনায় পিছিয়ে পড়তে পারে।
Observation-noise variance \(R\) সম্পর্ক দিয়ে ব্যাখ্যা না হওয়া \(y_t\)-এর variation বর্ণনা করে। অন্য সব কিছু স্থির থাকলে \(R\) বড় হলে filter প্রতিটি নতুন observation-কে কম বিশ্বাস করে। \(Q\) বা \(R\)—কোনোটিই সর্বজনীন tuning constant নয়। Model-এ price, log price, normalized series কোনটি নেওয়া হয়েছে এবং sampling interval কত, তার ওপর scale নির্ভর করে।
Analyst likelihood দিয়ে noise parameter estimate করতে পারেন বা training window থেকে আগে নির্ধারণ করতে পারেন; তবে চূড়ান্ত trading period দেখে tune করলে outcome information ফাঁস হয়। Starting state \(\hat\theta_{0|0}\) ও তার covariance \(P_{0|0}\)-ও গুরুত্বপূর্ণ: initialization অনিশ্চিত হলে শুরুতে দ্রুত adjustment দেখা যেতে পারে। Initialization, parameter-estimation sample এবং যুক্তিসঙ্গত বিকল্পের প্রতি sensitivity জানান।
Filtering ও smoothing ভিন্ন তথ্য ব্যবহার করে
Filtered estimate \(\hat\theta_{t|t}\) সময় \(t\) পর্যন্ত observation ব্যবহার করে। Smoothed estimate সময় \(t\)-এর পর আসা observation ব্যবহার করতে পারে। Historical latent state বর্ণনায় smoothing সহায়ক, কিন্তু অতীতের সিদ্ধান্ত নেওয়ার সময় trader-এর কাছে সেই তথ্য ছিল না।
\(Q\), \(R\), pair selection ও signal threshold estimate করতেও একই timing সমস্যা আছে। পুরো sample দিয়ে একবার fit করলে coefficient recursion একমুখী হলেও আগের estimate-গুলো পরের observation থেকে উপকৃত হয়। Real-time simulation-এ শুধু formation period দিয়ে hyperparameter fit করুন, তারপর স্থির রাখুন বা আগে ঘোষিত walk-forward schedule-এ update করুন। প্রতিটি position decision execution-এর আগেই উপলভ্য তথ্য দিয়ে নিন।
Observation time আর fill time এক নয়। \(v_t\) হিসাব করতে \(t\)-এর closing price লাগলে, execution process-এ তা সম্ভব না হলে backtest একই close-এ fill ধরে নিতে পারে না। পরের executable quote বা যুক্তিসঙ্গত execution model ব্যবহার করুন এবং spread, market impact, fee, borrow ও financing খরচ ধরুন।
Hedge coefficient একা portfolio weight বা spread signal নয়
Pairs study-তে update-এর আগের innovation \(v_t\) prior fitted relation থেকে surprise মাপে। \(\sqrt{S_t}\) দিয়ে ভাগ করলে model-এর অধীনে standardized innovation পাওয়া যায়। বিভিন্ন সময়ে uncertainty আলাদা হলে surprise তুলনা করতে সুবিধা হয়, কিন্তু কোন asset কতটা কেনা বা বেচা উচিত, অথবা বড় deviation ফিরবে কি না—তা বলে না।
Post-update residual \(y_t-H_t\hat\theta_{t|t}\) ভিন্ন, কারণ সেটি বর্তমান observation দিয়ে coefficient সংশোধন করে। এই residual-কে pre-update threshold-এর সঙ্গে মেশালে signal-এর অর্থ বদলে যায়। Spread, timing ও threshold স্পষ্টভাবে নির্ধারণ করুন এবং coefficient prior, filtered, না smoothed—তা জানান।
Log price থেকে \(\beta_t\) estimate করলেও order দিতে আলাদা position rule লাগে। Log-price weight সরাসরি share বা contract-এর সংখ্যা বলে না। Price, contract multiplier, currency এবং account constraint dollar exposure নির্ধারণ করে; intercept কোনো traded asset নয়। Coefficient update-এর মধ্যবর্তী rebalancing cost ও exposure drift-ও বিবেচনা করতে হবে।
পরিবর্তনশীল coefficient model-এর ব্যর্থতা আড়াল করতে পারে
ধীরে drift করা coefficient ক্রমশ বদলানো সম্পর্কের উপস্থাপনা হতে পারে, তবে ভেঙে যাওয়া সম্পর্ককেও শুষে নিতে পারে। Flexible state-এর model-এ স্থিতিশীল long-run equilibrium না থাকলেও fitted residual দেখতে ছোট হতে পারে। Filter cointegration test করে না এবং residual stationary হবে তার নিশ্চয়তা দেয় না।
Pair নির্বাচনও গুরুত্বপূর্ণ। অনেক asset যাচাই করে sample-এ সবচেয়ে মসৃণ residual-সহ pair রাখলে স্থিতিশীলতার দাবি করার একই data দিয়ে selection করা হয়। Corporate action, stale price, asynchronous close, short-sale constraint, liquidity change এবং regime shift estimated state বদলাতে বা কাগুজে hedge কার্যকর করা কঠিন করতে পারে।
Fitted line-এর পাশাপাশি residual behavior, state uncertainty, turnover ও coefficient path দেখুন। Chronological holdout period ব্যবহার করে fixed-ratio benchmark-এর সঙ্গে তুলনা করুন। বেশি adaptive estimate-এর অতিরিক্ত turnover ও estimation risk বাস্তব খরচের পরেও সার্থক হতে হবে; শুধু মসৃণ চেহারা performance নয়।
অন্য analyst যাতে ফল পুনরুৎপাদন করতে পারেন, মডেল ও যাচাই জানান
কোন price বা return series model করা হয়েছে, কী transformation, observation frequency, sample date এবং regression-এর দুই পাশে কোন asset আছে তা লিখুন। Observation ও state equation, transition matrix, \(Q\), \(R\), initialization, estimation method এবং দেখানো state filtered না smoothed—সব জানান।
Trading result হলে signal-এর innovation বা spread, normalization, decision timestamp, order delay, position sizing, rebalance rule এবং সব execution cost নির্ধারণ করুন। Pair screening, training/test window, noise parameter পুনরায় tune করার পদ্ধতি এবং break বা missing observation-এর পর strategy কী করে তা জানান। Fixed ও dynamic coefficient একই chronological split-এ তুলনা করুন।
Kalman-এর linear filtering প্রবন্ধ recursive framework গড়ে তোলে। Hatanaka সময়ের সঙ্গে বদলানো কিছু coefficient-সহ regression নিয়ে গবেষণা করেন। Elliott, van der Hoek ও Malcolm pairs trading-এর stochastic model উপস্থাপন করেন। সম্পর্কিত বিষয়ে দেখুন Kalman filter prediction ও update, pairs trading-এ cointegration বনাম correlation, Johansen rank test, এবং variance-ratio test নির্দেশিকা।
সাধারণ প্রশ্ন
Q1Kalman filter কি প্রমাণ করে যে pair cointegrated?
না। এটি state-transition ও observation assumption-এর অধীনে latent state estimate করে। Flexible hedge coefficient পরিবর্তনশীল data অনুসরণ করতে পারে, কিন্তু stable stationary combination প্রমাণ করে না।
Q2Dynamic hedge ratio কি সব সময় fixed ratio-এর চেয়ে ভালো?
না। এটি প্রকৃত পরিবর্তনে সাড়া দিতে পারে, তবে noise অনুসরণ, turnover বৃদ্ধি এবং parameter risk যোগ করতে পারে। একই chronological out-of-sample period ও বাস্তবসম্মত cost দিয়ে দুটো তুলনা করুন।
Q3Updated residual-কে innovation-এর একই signal হিসেবে ব্যবহার করা যাবে?
না। Innovation বর্তমান observation দিয়ে coefficient update করার আগের prior state ব্যবহার করে। Post-update residual সেই observation দিয়ে coefficient বদলায়, তাই এটি আলাদা quantity। ---
উৎস ও আরও পড়ুন
সমস্যা জানান
এই নিবন্ধের লিংকসহ একটি ইমেল তৈরি হবে। পাঠানোর পরেই Mark প্রতিবেদনটি পাবে
দ্রুত যাচাই
গাইডটি পড়ার পর 3টি প্রশ্নে নিজেকে যাচাই করুন
প্রশ্ন 01
State-space regression-এ process-noise covariance Q কী নিয়ন্ত্রণ করে?
ব্যাখ্যা দেখতে একটি উত্তর বেছে নিন
অপশন শব্দকোষ
A recursion predicting and updating state means and error covariances in a linear Gaussian state-space model.
বিস্তারিত গাইড পড়ুনCointegrationThe existence of a stationary linear combination among nonstationary series, implying a shared long-run equilibrium restriction under a specified model.
বিস্তারিত গাইড পড়ুন