شاخص هر بورس، می‌تواند نماینده‌ی خوبی برای نمایش میزان رشد سهام‌های موجود در بورس و خوب و یا بد بودن وضعیت سرمایه‌گذاری در آن باشد. این شاخص در طول زمان نوساناتی را تجربه می‌کند که بسیاری از متخصصین بر این باور هستند، که این نوسانات در شرایط عادی از الگوهای مشخصی پیروی می‌کنند. حتی برخی از این الگوها به صورت فرموله شده نیز تحت عنوان «تحلیل تکنیکال بورس» تبیین شده است. اگر این فرض را بپذیریم، پس باید بتوانیم با کنکاش در گذشته شاخص یک بورس، آینده نوسانات آن را پیش‌بینی کنیم. تکنیک‌های هوش مصنوعی و یادگیری ماشین هم می‌توانند یک ابزار بسیار قدرتمند در استخراج الگو و پیش‌بینی آینده بازار بورس باشند. چیزی که هدف از این پروژه خواهد بود، شکل ساده شده‌ای از مسئله پیش‌بینی شاخص بورس می‌باشد، آن هم این که با مشاهده وضعیت شاخص بورس در بازه‌های مشخص زمانی گذشته (مثلا هفته‌های پیش)، پیش‌بینی کنید که آیا شاخص بورس در بازه زمانی پیش رو (هفته آتی) مثبت است یا منفی. در واقع مسئله در این پروژه یک رده‌بندی دو کلاسه خواهد بود، که داده‌های آن مربوط به شاخص بورس هستند. مجموعه داده‌های متعددی در این زمینه وجود دارد که از یکی از آن‌ها برای انجام پروژه می‌توانید استفاده کنید. مثلا مجموعه داده شاخص بورس داوجونز.

۱. مقدمه

در ابتدای سال 2008 میلادی حجم سرمایه بازار بورس ایالات متحده امریکا به 36.6 تریلیون دلار رسید و در همین زمان حجم سرمایه بازارهای بورس جهان 731 تریلیون دلار تخمین زده شد که حجم قابل توجهی است.
با توجه به این اعداد و ارقام مساله زمان خرید و فروش سهام به یکی از چالش برانگیز ترین موضوعات تبدیل شده است؛ حال مساله بزرگتر این است که آیا راهی وجود دارد که بهترین زمان را برای خرید و فروش انتخاب کنیم ، جواب این است که بله راه هایی وجود دارد که ما از بهترین زمان ها برای خرید و فروش آگاه شویم؛اما چگونه؟برای این کار دو روش وجود دارد:
1) تحلیل بنیادی : این تحلیل که بیشتر مخصوص مدیران مالی است که توانایی تجزیه و تحلیل گزارشات مالی را دارند و می‌توانند با استفاده از این گزارشات به پیش بینی راجع به آینده شاخص بورس برسند.علاوه بر این نرخ سهام یک شرکت فقط به مسائل مالی آن شرکت وابسته نیست. بلکه عواملی از قبیل خبر های انتشار یافته ، شرایط اجتماعی ، مالی و سیاسی موجود در جامعه و ... می‌توانند در ارزش سهام سهیم باشند.
2) تحلیل تکنیکال:[6] این تحلیل شامل بررسی و تجزیه و تحلیل نمودارهای ارزش سهام می‌باشد؛ از آنجایی که این نمودار ها با روند خاصی ادامه می‌یابند پس با تجزیه و تحلیل آنها میتوانیم ادامه یک نمودار را پیش بینی کنیم. [1]
از آنجایی که تجزیه و تحلیل این نمودار ها برای انسان کار زیاد آسانی نیست به دنبال این است که این وظیفه را به کامپیوتر محول کند . پس اکنون ما می‌توانیم با استفاده از روش های هوش مصنوعی از کامپیوتر برای تجزیه و تحلیل نمودار ها استفاده کنیم.

۲. مسئله و راهکار ها

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

راهکار حل مسئله : راهکاری که ما در این پروژه قصد استفاده از آن را داریم استفاده از روش شبکه های عصبی مصنوعی می‌باشد. و همچنین برای استفاده از این روش از الگوریتم ژنتیک نیز کمک میگیریم.[2]

شرح راهکار:
1)شبکه های عصبی مصنوعی[3]: در ابتدا توضیح خلاصه ای راجع به شبکه های عصبی مصنوعی و الگوریتم ژنتیک می‌دهیم وسپس به شرح راهکار می‌پردازیم.
روش شبکه های عصبی اصولا از شبکه های عصبی موجود در مغز الهام گرفته شده است. شبکه های عصبی داخل مغز انسان بدین صورت کار می‌کنند که یکسری داده وارد این شبکه می‌شود و بعد از پردازش با استفاده از الگوهای خاصی این داده ها به خروجی منتقل می‌شوند.مجموعه این اعمال باعث حل یک مسئله می‌شود، و ما اکنون نیز میخواهیم با شبیه سازی این شبکه های عصبی به صورت مصنوعی مسئله پیش بینی شاخص بورس را حل کنیم.
شبکه های عصبی از سه سطح اصلی تشکیل شده اند : سطح ورودی ، سطح پنهان ، سطح خروجی
شبکه عصبی 4 وظیفه مهم دارد که عبارتنداز:

  1. هر شبکه عصبی شامل چندین واحد پردازش می‌باشد که هرکدام از این پردازشگر ها در هر سطح و در هر زمانی کار به خصوص خود را انجام می‌دهند.

  2. ارتباط وزن دار بین سطح های مختلف و پردازشگرهای مختلف است که باعث می‌شود نتیجه کار یکی بر کار دیگری تاثیر گذارد.

  3. قانون عملکرد پردازشگر است که مشخص می‌کند یک سیگنال ورودی به چه سیگنال خروجی تبدیل شود.

  4. قوانین یادگیری است که مشخص می‌کند با چه احتمالی اطلاعات به چه پردازشگری فرستاده شود.
    اثبات شده است که اگر تعداد سطح های لایه پنهان به 3 برسد تقریبا هرگونه داده ای را می‌توان طبقه بندی و تجزیه کرد.

    توضیح تصویر

    شرح الگوریتم ژنتیک: این الگوریتم یک الگوریتم جستوجو می‌باشد که قابلیت این را داردکه بهترین راه حل را برای مسائل پیدا کند. این الگوریتم بسیار شبیه الگوریتم های به کار برده شده در بدن انسان و حتی در محیط بیرون می‌باشد . از جمله وراثت ، جهش و سایر عملکرد هایی که در محیط و در انسان رخ میدهد.
    در این الگوریتم از چند پارامتر استفاده میکنیم از جمله مقدار مناسب1 ، میزان تاثیر گزاری در پیش بینی 2 .
    در این الگوریتم ما تغییراتی را روی ورودی اعمال میکنیم و این تغییرات را آنقدر ادامه می‌دهیم که تا به داده ای که مد نظرمان است برسیم.
    این تغییرات شامل جابجایی بعضی از بیت های اطلاعات و شاید تغییر کامل یک قسمت از اطلاعات باشد.که به مورد اولی دورگه ای3 و به مورد دوم جهش 4 می‌گویند.
    { p }_{ i }=\frac { { f }_{ i } }{ \sum _{ j=1 }^{ n }{ { f }_{ i } } }

    که دراینجا f همان مقدار مناسب و p مقدار اندکی است که به اطلاعات ما در هر مرحله اضافه می‌شود؛و n نیز کل جامعه انتخابی ما می‌باشد که در این جا برابر 100 می‌باشد.
    توضیح تصویر

    فرض مسئله: ابتد باید فرض هایی را برای مسئله خود متصور شویم و سپس به حل آن بپردازیم. ابتدا فرض می‌کنیم که 8 شرکت با ارزش سهام های متفاوت وجود دارند که قیمت سهام آنها را از 6 جنبه میتوان مورد بررسی قرار داد. حال باید ببینیم که هرکدام از این صفت ها چقدر در پیش بینی ما تاثیر گذارند که این همان مقدار تاثیر گذار می‌باشد؛ و سپس باید مقدار مناسب را بدست آوریم که این مقدار مناسب برابر است با تعداد دفعاتی که ما توانسته ایم برای هر صفت پیش بینی درستی انجام دهیم.
    شرح الگوریتم اصلی[9]:حال که با شبکه های عصبی و الگوریتم ژنتیک آشنا شدیم می‌توانیم به حل مسئله بپردازیم.
    بعد از این که ما با استفاده از الگوریتم ژنتیک توانستیم مقدار تاثیر گذاری هر صفت را پیدا کنیم و با آزمایشات پی در پی مقدار مناسب را پیدا کردیم وقت آن است که پیش بینی کنیم که آیا ارزش سهام بورس این شرکت ها حرکت صعودی دارند یا نزولی ! که این پیش بینی نیز با استفاده از فرمول زیر که نشئت گرفته از شبکه های عصبی می‌باشد قابل انجام است.
    t\quad =\quad \sum _{ i=1 }^{ 6 }{ { p }_{ i }*{ f }_{ i } }

    { p }(t)=\frac { 1 }{ 1+{ e }^{ -t } }

    که در این فرمول ها p برابر بامقدار تاثیر گذاری صفت در پیش بینی می‌باشد و f مقدار تخمین زده شده برای آن صفت و f نیز یک متغیر است که در فرمول اول تعریف شده است و در تعریف دوم استفاده شده است.
    ما برای آزمایش این روش از دو مجموعه اطلاعاتی5 استفاده می‌کنیم که مطمئن شویم اطلاعاتی که از این الگوریتم بدست می‌آوریم درست است.
    مجموعه اطلاعاتی: مجموعه اطلاعاتی ما شامل اطلاعات بازار بورس 5 سال شرکت های اپل،گوگل ،مایکروسافت، Oracle،Symantec،Sony،IBM Adobe می‌باشد.
    نتیجه : نتیجه ای که پژوهشگران این تحقیق بدست آوردند این بود که الگوریتم ژنتیک توانسته بود با دقت 73.87 درصد ارزش سهام بورس این شرکت هارا به درستی تشخیص دهد و این نتیجه نشان دهنده این است که الگوریتم ژنتیک به عنوان یک الگوریتم کارآمد می‌تواند عمل پیش بینی را انجام دهد.

دقت پیش بینی روی داده های ثانویه دقت پیش بینی روی داده های اولیه نام شرکت
73.22% 72.09% Adobe
70.80% 73.70% Apple
69.35% 75.00% Google
70.80% 70.64% IBM
70.32% 75.32% Microsoft
72.90% 71.77% Oracle
69.51% 66.45% Sony
73.87% 70.96% symantec

شاید برای شما خیلی عجیب باشد که چگونه با الگوریتم ژنتیک و بدون استفاده از هیچ گونه الگوریتم دیگری می‌توانیم با این دقت آینده بورس را پیش بینی کنیم ؛ لازم است بدانید که این اتفاق بخاطر این است که افراد برای تصمیم گیری خرید سهام نیز در ذهن خود تقریبا به صورت خودکار از همین الگوریتم استفاده می‌کنند. و شرایط اجتماعی و سیاسی محیط نیز تقریبا بر اساس همین الگوریتم ژنتیک کار میکنند . پس ما می‌توانیم با کمال آرامش از این الگوریتم استفاده کنیم

۳. کارهای مرتبط

نویسندگان این مقاله همچنین از روش دیگری برای پیش بینی ارزش سهام استفاده کردند با نام استراتژی ارزیابی6 که پایه آن بر روی مقادیر تکرار شونده و مدوام است . در عین حال که این الگوریتم دارای ساختار پیچیده تری نیز هست ولی دقت الگوریتم ژنتیک همچنان بالا تر از این الگوریتم است.
الگوریتم دیگری در زمینه پیش بینی شاخص وجود دارد به نام روش عقبگرد 7و تفاوت این روش با روش قبل این است که برای پیش بینی در این الگوریتم باید مستقیما به نتیجه پیش بینی های گذشته بازرگردیم و با توجه به آنها پیش بینی کنیم.'[4]
در سال 2007 نیز تحقیقاتی راجع به مشکلات سیستم شبکه عصبی بیان شد که از جمله آن می‌توان به نادیده گرفتن بعضی شرایط برای پیش بینی ارزش سهام اشاره کرد.[5].

۴. آزمایش‌ها

۵. کارهای آینده

۶. مراجع

[1]Yuzheng Zhai, Arthur Hsu, and Saman K Halgamuge(2007)Combining News and Technical Indicators in
Daily Stock Price Trends Prediction
[2]Ganesh Bonde,Rasheed Khaled , Stock price prediction using genetic algorithms and evolution
strategie
[3]Dr. Sunil Kumar Dhal, Artificial Neural Network (ANN) for Stock Market Predictions
[4]Lev Blynski and Alex Faseruk (2006) Journal of Financial Management and Analysis,19 (2), 46-58.
[5]Olivier Coupelon (2007) Neural network Modeling for Stock Movement Prediction, 11.
[6]کتاب تحلیل تکنیکال بازار سرمایه نوشته دکتر لنگرودی،مقدمه

پیوندهای مفید


  1. fitness value

  2. connection weight

  3. crossover

  4. mutation

  5. data set

  6. Evolution Strategies

  7. backpropogation

تایید شده

سلام.
خسته نباشید.
زحمت مناسبی کشیدید که جا داره ازتون تشکّر کنم. مسئله رو به خوبی بیان کردید و لزوم پرداختن بهش برای خواننده کاملاً روشن می‌شه.
ایدهٔ توضیح دادن شبکهٔ عصبی و الگوریتم ژنتیک در ابتدای امر، ایدهٔ خوبی بود امّا به خوبی از پس بیان روشن این دو مفهوم بر نیومده بودید.
کارهای مرتبط رو هم به سرعت بیان کردید و خیلی از جزئیات لازم برای فهم رویکرد حل مسئله و روش پیشنهادی نویسنده‌ها برای خوانندهٔ شما گنگ و نامفهوم باقی می‌مونه. این کار رو باید بسیار با حوصله‌تر انجام می‌دادید.
در خصوص نوشتار، جای کار زیادی دارید. از مباحث درس شیوهٔ ارائه استفاده کنید و قواعد نگارش زبان فارسی رو هم به صورت جدی‌تری در نوشته‌تون رعایت کنید.
برخی از اصطلاحات علمی که دست به ترجمهٔ اون‌ها زدید (مثل fitness یا crossover)، در حال حاضر دارای کلمات جایگزین هستند و بهتره از همون کلمات رایج استفاده کنید. (کلمهٔ evolution رو هم با evaluation اشتباه گرفتید)
منتظر نتایج کارهای شما در فازهای آینده هستم.