پیش بینی بازار سهام با RNN با استفاده از متغیرهای بازار روزانه

  • 2022-05-22

در این پروژه من سعی می کنم یک RNN (به ویژه LSTM) برای پیش بینی بازده بازار سهام بسازم. این پیش‌بینی بر روی شاخص S& P500 انجام می‌شود که یکی از پرکاربردترین شاخص‌ها برای معاملات و محک زدن بازده بازار سهام است. سپس اجرای استراتژی تجارت پایه بر اساس پیش بینی ها اجرا می شود و عملکرد آن نسبت به شاخص S& P500 معیار موفقیت ما است.

بازارهای سهام به طور کلی به دلیل فضای ابعادی بالا، پیش‌بینی آن‌ها بسیار دشوار است و S& P500 احتمالاً کارآمدترین شاخص سهام در بازار جهانی است. به همین دلیل وظیفه پروژه بیش از چالش برانگیز است. بنابراین می توان آن را بیش از هر چیز به عنوان یادگیری نویسنده از تکنیک های یادگیری ماشین و به ویژه شبکه های عصبی در تحلیل سری زمانی در نظر گرفت.

این پروژه مراحل زیر را طی می کند: تولید داده، پیش پردازش داده و انتخاب ویژگی، پیش بینی خط پایه، آموزش LSTM و نمایش نتایج. این پروژه به زبان برنامه نویسی پایتون با کتابخانه Keras برای شبکه های عصبی ساخته شده است.

تولید داده برای مجموعه های آموزشی و آزمایشی

بیش از 20 متغیر بازار (ویژگی) با فرکانس روزانه در پروژه استفاده شده است، با سابقه داده از آغاز سال 2006 تا آوریل 2019. منبع داده ها از ترمینال بلومبرگ است. ویژگی‌های مورد استفاده عمدتاً شاخص‌های فنی مختلف S& P500 هستند، اما متغیرهای بازار مانند تخمین‌های پیش‌روی اجماع درآمد، بازده اوراق قرضه خزانه‌داری ایالات متحده برای دو سال و ۱۰ سال، شاخص دلار، شاخص کالا و شاخص نوسانات هستند. دسته سومی که استفاده می شود، سیگنال شاخص S& P500 Close و Open، High، Low معروف به مجموعه OHLC و حجم معاملات است. انتخاب ویژگی اولیه سعی در ایجاد تنوع و بازنمایی بیشتر در مقایسه با اکثر پروژه های مشابه در این زمینه دارد که عمدتاً از سیگنال قیمت یا OHLC شاخص استفاده می کنند. مجموعه ای از ویژگی های مختلف در طول پروژه آزمایش شده است، اما در مجموع 10 ویژگی برای آموزش در پایان انتخاب شده است. خروجی برای پیش بینی، بازده روز بعد شاخص S& P500 (تغییر قیمت) است.

پیش پردازش داده ها از اصول توالی سری زمانی پیروی می کند که در مورد RNN ها مورد نیاز است. این بیش از 13 سال داده مداوم روزانه است که به 43 دوره مطالعه تقسیم می شود که هر دوره 3 سال (با فرض 240 روز معاملاتی در سال) برای آموزش و 60 روز (تقریباً 3 ماه) برای آزمایش است. 10 سال و 9 ماه افق پیش بینی مداوم را ارائه می دهد. شکل 1 زیر آرایش داده ها را نشان می دهد.

علاوه بر این، هر دوره مطالعه (آموزش و آزمایش) به عنوان نمونه ای از تصویر در شکل 2 از نظر پنجره ویژگی های نورد و خروجی مربوطه ترتیب داده شده است.

طول گام های زمانی مختلف در محدوده 5 تا 20 روز در طول پروژه آزمایش شده است، اما طول گام زمانی 10 روزه برای ارائه در اینجا انتخاب شده است. مجموعه داده کامل به ترتیب ابعاد زیر مرتب شده است - مطالعات، نمونه ها، مراحل زمانی، ویژگی ها.

پیش پردازش داده ها و انتخاب ویژگی

داده‌های ورودی خام برای آموزش با نمره z برای هر دوره مطالعه استاندارد شده است، به طوری که هر ویژگی در داده‌های آموزشی دارای میانگین 0 و انحراف معیار 1 است.

برای تعیین اهمیت نسبی ویژگی ها، رگرسیور از کتابخانه XGBoost بر روی ویژگی های استاندارد و خروجی پیاده سازی شده است. شکل 4. در زیر اهمیت ویژگی ها را نشان می دهد که از بین آنها 10 ویژگی با بالاترین اهمیت برای استفاده در آینده انتخاب شده اند. با این حال، هنگام انتخاب ویژگی‌هایی با بالاترین اهمیت، در خطر از دست دادن روابط نشان‌داده‌شده در مجموعه کامل ویژگی‌ها هستیم.

پس از پیش پردازش داده ها، مجموعه داده ها دارای اشکال زیر هستند و آماده استفاده برای آموزش و آزمایش هستند.

پیش‌بینی پایه - K-نزدیک‌ترین همسایگان

به منظور ارزیابی توانایی RNN در پیش بینی بازار سهام ، ما پیش بینی پایه را با الگوریتم همسایگان K-Nearest (K-NN) با استفاده از رگرسیون Scikit-Learn اجرا می کنیم. K-S مختلف در محدوده 1 تا 200 در دوره های آموزشی رکود شده است و K-S در نتیجه با کمترین میانگین خطای مربع در طول دوره اعتبار سنجی در دوره مطالعه خاص در آزمایش استفاده شده است. شکل 5. در زیر در پانل فوقانی S & P500 واقعی و بازده پیش بینی شده را نشان می دهد. پانل پایین عملکرد معاملات (قبل از هرگونه هزینه واقعی زندگی) را در طول دوره آزمایش نشان می دهد. در اینجا ما از قانون متقارن 150 ٪ سرمایه گذاری در شاخص استفاده می کنیم اگر بازده پیش بینی شده مثبت باشد و در صورت منفی بودن 50 ٪ سرمایه گذاری کند. نتیجه به همراه عملکرد خرید و نگهدارنده شاخص S & P500 ، در طول کامل تمام دوره های آزمایش با بیش از 2500 روز معاملاتی ترسیم شده است. حتی اگر دقت اندازه گیری سنتی برای ارزیابی مدلهای طبقه بندی باشد ، ما در اینجا و در مرحله بعدی از عملکرد استفاده می کنیم تا توانایی پیش بینی K-NN و RNN را مقایسه کنیم. مدل K-NN با عملکرد بهتر در دوره کامل ، 3. 5 برابر سرمایه گذاری اولیه در مقایسه با 3. 0 بار برای استراتژی خرید و نگهدارنده S & P500 بازگردد. علائم قرمز در پانل پایین نشان دهنده سیگنال های موقعیت طولانی (1) و کوتاه (-1) (در محور alt y) با توجه به سرمایه گذاری کامل شاخص است. حتی اگر نتیجه برای K-NN در کل دوره مثبت باشد ، سازگار نیست زیرا دوره های طولانی (در سالها) عدم عملکرد در ابتدا و نیمه دوم زمان وجود دارد.

پیش بینی LSTM

مشکل به عنوان طبقه بندی باینری و تعیین مقدار 1 برای مثبت و 0 برای بازده منفی روزانه تعیین شده است. تنظیمات و معماری شبکه LSTM که استفاده می شود در شکل 6 ارائه شده است.

برای قرار دادن پارامترها اندازه دسته 32 ، اعتبار سنجی 20 ٪ و 200 دوره. نتایج از دست دادن آموزش و اعتبار سنجی برای هر دوره مطالعه در شکل 7. و دقت مربوط به شکل 8 است. اینها نشان می دهد که شبکه برای بهبود اعتبارسنجی در دوره ها مشکل دارد. نکته مهم این است که تعداد کمی از مجموعه های مطالعه دورتر با ضرر کمتری و دقت بالاتر وجود دارد که می تواند در دوره آزمایش با توجه به عملکرد معاملات تفاوت ایجاد کند. با این وجود ، روابط تقریبی در طول دوره آموزش به نظر می رسد که در طول اعتبار سنجی نیز به طور حاشیه ای در نظر گرفته شده است زیرا میانگین دقت اعتبارسنجی در طول دوره های مطالعه پس از آخرین دوره 53. 75 ٪ است.

عملکرد تجارت مبتنی بر مدل LSTM

هنگام اعمال قانون معاملاتی مشابه برای خروجی LSTM مانند K-NN، عملکرد حاصل در شکل 9 ارائه شده است. می‌توان مشاهده کرد که نتیجه معاملات 4 برابر سرمایه‌گذاری اولیه در مقایسه با 3 برابر S& P500 خرید و 3. 5 برابر K است.-NN (شکل 5). بنابراین عملکرد معاملاتی مبتنی بر LSTM از شاخص S& P500 و الگوریتم K-NN در این پروژه بهتر عمل کرده است.

این پروژه نتیجه می گیرد که شبکه عصبی LSTM می تواند جایگزین خوبی برای پیش بینی سری های زمانی بازار سهام در میان سایر روش های یادگیری ماشین باشد. موفقیت کلی تنظیم LSTM ارائه شده در حل تکلیف در این پروژه مشکوک است، زیرا در تمام دوره های آزمایشی، دقت آزمون 51. 6 درصد ممکن است کافی نباشد. آزمایش بیشتر تنظیمات پارامترها و معماری مختلف برای بهبود دقت مورد نیاز است.

کار آینده: شبکه های عصبی برای استخراج ویژگی

در مرحله بعد، برنامه تولید ویژگی های استخراج شده با استفاده از رمزگذار خودکار در شبکه عصبی کانولوشنال (CNN) است. ایده این است که از ویژگی های استخراج شده به عنوان ورودی برای شبکه LSTM استفاده شود. به دلیل محدودیت های زمانی، زیان های حاصله، دقت ها و عملکرد معاملاتی در اینجا ارائه نشده است، اما شرح ساخت رمزگذار خودکار و استخراج ویژگی های فشرده در زیر ارائه شده است. ایده استفاده از CNN برای مقاصد خاص از مقاله خوبی در اینجا گرفته شده است که مقایسه و نتایج شبکه های مختلف را برای رمزگذارهای خودکار ارائه می دهد و در میان آنها به نظر می رسد CNN جایگزین امیدوارکننده ای باشد.

معماری شبکه رمزگذار خودکار که برای پروژه ساخته شده است در شکل 10 نشان داده شده است. همانطور که مشاهده می شود تلاش برای رمزگذاری 10 ویژگی در 5 ویژگی است. پس از نصب خروجی رمزگذار از اولین لایه کانولوشن، از آن برای تولید ویژگی های فشرده استفاده شده است، که سپس به LSTM تغذیه می شود.

ایده های بیشتر شامل تبدیل ورودی با موجک ها و آزمایش با روش های مختلف پردازش داده ها و فراپارامترها است.

سلب مسئولیت: مطالب ارائه شده در داستان نباید به عنوان توصیه یا توصیه در رابطه با نگهداری، خرید یا فروش اوراق بهادار یا سایر محصولات مالی تلقی شود و توصیه یا توصیه ای برای ایجاد یا استفاده از هر تکنیک یا استراتژی ذکر شده در داستان نیست.

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : ۰
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.