روش گسترش تصادفی برای معاملات جفت توسط الیوت و همسایه. آل (2005) - فیلتر کالمن + الگوریتم EM در MATLAB ، آیا من کار اشتباهی انجام می دهم؟

ساخت وبلاگ

من در حال اجرای روش گسترش تصادفی برای معاملات جفت توسط الیوت ET هستم. آل (2005). این روش شامل مدل سازی گسترش بین دو سهام ، log (p1) -log (p2) ، به عنوان یک فرآیند بازگرداندن ، کالیبره شده از مشاهدات بازار است. فرآیند حالت پنهان برای پخش می تواند مانند این نوشته شود: x_ = a + bx_t + ce_ فرآیند مشاهده: y_t = x_t + d*w_t هر دو e_t و w_t i. i. d. Gauusian n (0،1). الیوت معادلات فیلتر کالمن را در مقاله خود ارائه می دهد ، که من برای مرحله به روزرسانی در کد خود اجرا کرده ام:

تابع [XT_T ، ST_T ، XT_TM ، KT ، ST_TM] = EMUPDATE (DATA_T ، XT_T_M1 ، ST_T_M1 ، A ، B ، C2 ، D2) ST_TM = B^2*ST_T_M1+C2 ؛kt = st_tm/(st_tm+d2) ؛xt_tm = a+b*xt_t_m1 ؛xt_t = xt_tm+kt*(data_t-xt_tm) ؛st_t = st_tm-kt*st_tm ؛ 

signals

جایی که xt_t x_ استxt_t_m1 x_ استxt_tm x_ استst_t s_ است(MSE ، به عنوان P در E. G. Hamilton (1994) مشخص شده است) ST_T_M1 S_ استST_TM S_ استKT افزایش Kalman برای Time T Data_T داده های مشاهده شده برای زمان T ، Y_T A ، B ، C2 ، D2 پارامترهای تخمین زده شده است (که من با استفاده از الگوریتم EM در کد دیگری تخمین زده ام). این مرحله به روزرسانی هر بار که یک نقطه داده جدید وارد می شود انجام می شود. من تمام X ، S و K را در بردارها ذخیره می کنم. من قرار است y_t را با x_ مقایسه کنمو با توجه به انحراف بزرگ این دو ، تجارت باید آغاز شود. با این حال ، این دو از نزدیک یکدیگر را دنبال می کنند ، و من مطمئن نیستم که آیا من کار اشتباهی انجام داده ام: آیا کسی می تواند ببیند که من اشتباه کرده ام؟لطفاً به من بگویید که آیا باید بیشتر کد خود را پیوند دهم. بروزرسانی: روش من: (P همان S در بالا است)

  1. برای تولید گسترش بین دو سهام ، تفاوت بین قیمت های ورود به سیستم را می گیرم: y = log (p1) -log (p2).
  2. من یک دوره آموزش 252 روز را تعیین کردم ، جایی که پارامترهای اولیه (A ، B ، C2 و D2) را با استفاده از الگوریتم EM تخمین می زنم. من الگوریتم EM را با استفاده از تمام داده ها برای دوره آموزش پیاده سازی می کنم. این y (1) ، y (2) است. y (252) و همچنین حدس های اولیه برای A ، B ، C2 و D2:

 

2aمن x_ را تنظیم کردم<1|1>= y (1). علاوه بر این من MSE ، P_ را تنظیم کردم<1|1>= D2 ، حدس اولیه من برای d^2.

2bمن به صورت بازگشتی فیلترهای کالمن ، x_ را محاسبه می کنم، ایکس_، پ_، پ_و k_ برای همه t = 1. 252 (کل دوره آموزش) با استفاده از حدس های اولیه من برای A ، B ، C2 و D2.

2Cبعد از اینکه فیلترهای کالمن را برای کل دوره آموزش محاسبه کردم ، من (عقب مانده) به صورت بازگشتی Smoothers کالمن را برای کل دوره آموزش محاسبه می کنم: T = 1. 252. اینها X_ هستند، پ_، پ_و j_.

سپس مقدار ورود به سیستم و مقادیر به روز شده برای A ، B ، C2 و D2 را محاسبه می کنم. سپس مراحل 1 را تکرار می کنم تا اینکه احتمال ورود به سیستم همگرا شود و مقادیر بهینه ای را برای A ، B ، C2 و D2 بدست می آورم.

آیا محاسبه فیلترهای کالمن برای کل دوره آموزشی قبل از شروع محاسبه Smoothers Kalman صحیح است؟یا باید به عنوان مثال ، فیلترهای کالمن را تا T = 2 محاسبه کنم ، سپس کالمن Smoothers برای t = 2 ، سپس کالمن تا t = 3 فیلتر می کند ، سپس Smoothers برای t = 3 و غیره؟

  1. اکنون مقادیری برای A ، B ، C2 و D2 دارم و می توانم آزمایش خود را نیز 252 روز شروع کنم. من تخمین های خود را برای A ، B ، C2 و D2 به روز نمی کنم ، اما آنها را ثابت نگه دارم. برای هر مشاهده جدید می توانم فیلترهای کالمن را محاسبه کنم (همان در 2B). سرانجام می توانم y (t) را با x _ مقایسه کنمبرای دوره آموزش

نتایج من به این شکل است:

My results

در حالی که مقاله ای از چن ، رن و لو نتایج زیر را دارند:

Their results

NB: همان امنیت نیست. اما تفاوت با این وجود آشکار است.

فارکس وکسب درامد...
ما را در سایت فارکس وکسب درامد دنبال می کنید

برچسب : نویسنده : آرش اصل زاد بازدید : <-PostHit-> تاريخ : سه شنبه 17 مرداد 1402 ساعت: 0:40