Application of Deep Learning Architectures in Stock Price Forecasting: A Convolutional Neural Network ‎Approach

Document Type : Research Paper

Authors

1 Ph. D. Student, Department of Financial Management, Faculty of Management and Economics, Science and Research Branch, Islamic ‎Azad University, Tehran. Iran. ‎

2 Assistant Professor, Department of Business Management, Faculty of Management and Economics, Science and Research Branch, Islamic Azad University, Tehran. Iran.

3 Associate Professor, Department of Industrial Management. Faculty of Management and Accounting, Allameh Tabataba'i University, ‎Tehran. Iran.‎

4 Associate Professor, Department of Financial Management, Faculty of Management, Central Tehran Branch, Islamic Azad University, Tehran, Iran.

Abstract

Algorithms based on a Convolutional Neural Network (CNN), which is a branch of Deep Learning (DL), have seen significant progress in picture and video analyses in recent years. Success of these new models has led to widespread use of them in various fields, including text mining and time series data. DL is part of a broader family of machine learning methods that attempts to model high-level concepts using learning at multiple levels and layers and extract features of higher levels from the raw input. This survey investigated the abilities of different CNN architectures to predict stock prices. Upon running the model with various architectures and parameters for the stock price of Esfahan Steel Company, the results showed that a CNN with max-pooling layers (a combination of Batch size=64, filters=256, and ReLU Activation Function) and Mean Absolute Percentage Error (MAPE) of 1.79% and Normalized Root Mean Square Error (NRMSE) of 2.71% had a higher prediction accuracy than other CNN architectures and Recurrent Neural Network (RNN).
Introduction
Among the various deep learning techniques that have many applications in different sciences, specific algorithms like Recurrent Neural Network (RNN), Long Short-Term Memory (LSTM), and Convolutional Neural Network (CNN) have been used by researchers due to their characteristics of financial time series (Sezer, Gudelek, & Ozbayoglu, 2020). CNN is a feed-forward Artificial Neural Network (ANN) that takes its inputs as 2-D matrices. Unlike a fully connected neural network like Multi-Layer Perception (MLP) neural network, the locality of data within its input vector (or matrix) is important (Sezer & Ozbayoglu, 2018).
CNN has different architectures. Usually one specific architecture is focused on in each study conducted in this field. In this study, however, the architectures used in various studies were surveyed in the first level and each selected architecture was optimized by using different parameters in the second level. Finally, the best performances of the architectures with various parameters were compared to choose the optimized model. The effective studies in model development are shown in Table 1.
 
 
 
 
Table (1) Effective studies in model development




Art.


Method


Dataset


Feature Set


Horizon




Livieris, E. Pintelas, & P. Pintelas (2020)


Using  two convolutional layers with different filters


Gold


Price data


1 day




Gao, Zhang, &Yang (2020)


Simple CNN


S & P500
CSI300
Nikkei225


Price data, volume, technical indicators
 


1 day




CNN with a dropout layer




Gudelek, Boluk, & Ozbayoglu (2017)


CNN with dropout and max-pooling layers


ETF


Price data, technical indicators


1 day




Ji, Zou, He, & Zhu (2019)


CNN with a max-pooling layer


Future carbon price


Price data


7 days




Li & Dai (2020)


CNN with a max-pooling layer


Bitcoin


Price data


1 day




 
Method and Data
Based on the previous studies on CNN application, three different architectures of CNN were investigated as shown in Figure 1.
 
 
Figure (1) The process of choosing an optimal CNN algorithm
 
For selecting the best CNN architecture, all the three models were surveyed with various parameters. It is worth noting that the parameters that affected CNN included items like number of filters in the CNN layer, Batch size, and Activation Function. In this study, the data obtained from Esfahan Steel Company during the period of 2018-2021were used. The input data consisted of two categories, including price data (Open, High, Low, Close, and Volume) and technical indicators based on the surveys of Kara et al. (2011) and Patel et al., (2015). Python 3.8 with Keras Library was used to execute the model. In this study, the dataset was divided into a training set and a testing set, which covered about the first 80% and last 20% of the raw dataset, respectively.
 
Findings
Comparison of the three defined architectures with various parameters led to the optimized model. It should be noted that the selected model was the result of running it 54 times with different layers and parameters. In this study, the two performance measures of Mean Absolute Percentage Error (MAPE) and Normalized Root Mean Square Error (NRMSE) were selected to evaluate the predictive power of our proposed models. In Table 2, the errors of the best performances of each of the three architectures with different parameters and the RNN model (another DL model) were compared to choose the optimized model. Based on the results, the accuracy of the best performance of the second CNN architecture was higher than those of the others.
 
Table (2) Comparison of the errors of the selected models




                                                                                                                     Error
Method


MAPE


NRMSE




RNN


2.46%


2.79%




Best performance of the first CNN architecture


2.13%


3.09%




Best performance of the second CNN architecture


1.79%


2.71%




Best performance of the third CNN architecture


2.18%


3.26%




Conclusion and discussion 
In this paper, the predictive powers of the various architectures of CNN models were investigated. The results demonstrated that the best performance of the second CNN architecture with the Max-Pooling layer and combination of Batch size of 64, filter of 256, and ReLU Activation Function and MAPE and NRMSE errors of 1.79 and 2.71%, respectively, provided higher prediction accuracy than other CNN and RNN architectures. The outcome of this survey was supported by research of Ji et al. (2019) on Carbon future price forecasting and that of Li & Dai (2020) on Bitcoin price forecasting by using a CNN model with convolutional and Max-Pooling layers.                 However, Gao et al. (2020) proposed a convolutional layer with a dropout layer and Gudelek et al. (2017) used a convolutional layer with dropout and Max-Pooling layers for predicting ETF prices. Their results were not confirmed by this paper since using a convolutional layer with a Max-Pooling layer had a better performance than other architectures.

Keywords

Main Subjects


مقدمه

فعالین بازار سرمایه به‌منظور کسب بالاترین بازده از سرمایه‌گذاری خود همواره به‌دنبال پیش‌بینی قیمت سهام‌اند و این امر توجه بسیاری از پژوهش‌گران دانشگاهی و کارشناسان این حوزه را به خود جلب کرده است؛ به‌طور کلی فرآیندهای سری زمانی را می‌توان به دو طبقۀ خطی و غیرخطی دسته‌بندی کرد که بر این اساس الگو‌های خطی با روش‌های ساده و الگوهای غیرخطی (تصادفی و آشوبناک) با الگوریتم‌های پیچیده و قوی قابل پیش‌بینی است؛ الگوریتم‌های قیمت‌گذاری دارایی‌های سرمایه‌ای (CAPM)[1]، سه عاملی فاما و فرنچ و قیمت‌گذاری آربیتراژ (APT)[2] از نظریه‌های بنیادی و اولیه حوزۀ مالی است که با فرض خطی‌بودن رابطۀ بین متغیرها سعی در پیش‌بینی بازده دارد (Gordon & Francis, 1986)؛ اما از آنجا که مهم‌ترین ویژگی سری‌های زمانی مالی مانند: قیمت سهام، نرخ تورم، نرخ ارز و قیمت نفت غیرخطی‌بودن آنهاست، استفاده از روش‌های خطی برای پیش‌بینی سری‌های زمانی مالی نتایج مطلوبی به همراه نخواهد داشت؛ از این رو، درخصوص مسائلی همچون پیش‌بینی قیمت در بازار سرمایه، اغلب الگوریتم‌های مبتنی بر رویکرد بی‌نظمی و پویایی غیرخطی نظیر یادگیری ماشین[3]، ازجمله روش‌های مورد اقبال پژوهش‌گران در سال‌های اخیر بوده است (Raei, 2003).

یادگیری ماشین که زیرمجموعۀ هوش مصنوعی است، به علت خاصیت اکتشافی خود، بدون هیچ فرض اولیه‌ای شروع به الگوسازی رفتار داده‌ها می‌کند و به‌مرور زمان و با جلو رفتن الگوریتم، الگو پررنگ‌تر خواهد شد؛ ساختار غیرخطی و مقاوم این روش‌، توانایی شبیه‌سازی رفتار محیط واقعی را فراهم کرده است (Mitchell, 1997). در یادگیری ماشینی از طریق به‌کارگیری یک‌سری از الگوریتم‌های خاص سعی می‌‌شود الگوهای پنهان بین داده‌ها کشف شود؛ در صورتی که تعداد متغیرهای مستقل و وابسته زیاد باشد و بین آنها ارتباط خطی برقرار نباشد، این روش در زمرۀ بهترین گزینه‌ها برای پیش‌بینی است.

یادگیری عمیق، زیرشاخه‌ای از یادگیری ماشینی و از حوزه‌های نوین این بخش است. یادگیری عمیق معرف سلسله‌ای از الگوریتم‌هاست که در آن از چندین لایۀ پردازش اطلاعات به‌ویژه اطلاعات غیرخطی استفاده می‌شود تا بهترین ویژگی‌های مناسب از ورودی خام استخراج شود (Deng & Yu, 2014). از میان تکنیک‌های مختلف یادگیری عمیق که در علوم مختلف کاربردهای فراوانی دارد، پژوهش‌گران حوزۀ مالی برای پیش‌بینی قیمت با توجه به ویژگی‌های سری‌های زمانی مالی، اغلب از الگوریتم‌های به‌خصوصی نظیر شبکۀ عصبی بازگشتی (RNN)[4]، حافظۀ کوتاه‌مدت ماندگار (LSTM)[5] و شبکۀ عصبی پیچشی (CNN)[6] استفاده کرده‌اند (Sezer and et al., 2020).

در این پژوهش ضمن معرفی انواع روش‌های یادگیری عمیق که در پیش‌بینی سری‌های زمانی مالی استفاده می‌شود، مقایسۀ توانایی معماری‌های مختلف الگوریتم CNN در پیش‌بینی قیمت سهام بررسی شده است. طبق بررسی‌های انجام‌شده الگوریتم CNN معماری‌های متفاوتی دارد و در هریک از پژوهش‌های انجام‌شده در گذشته اغلب بر یکی از معماری‌ها تمرکز شده است؛ در حالی که در این مطالعه در سطح اول معماری‌های مختلف CNN استفاده‌شده در پژوهش‌های مختلف استخراج شده و در سطح دوم هریک از معماری‌های شناسایی‌شده با پارامترهای مختلف بهینه‌سازی شده است. درنهایت بهترین عملکرد هر معماری با پارامترهای مختلف برای انتخاب معماری بهینه مقایسه شده است که در مطالعه‌های گذشته این موضوع با جامعیت حاضر بررسی نشده است.

 

 

 

مبانی نظری

به موازات کاربرد انواع روش‌های مختلف برای پیش‌بینی سری‌های زمانی مالی، پژوهش‌گران حوزۀ یادگیری ماشینی نیز با استفاده از الگوریتم‌های متنوع موجود در این بخش سعی در پیش‌بینی قیمت داشته‌اند. یادگیری ماشینی به مفهوم مطالعۀ الگوریتم‌های کامپیوتری است که براساس تجربه می‌آموزد و پیشرفت می‌کند (Mitchell, 1997). این دانش زمینۀ پژوهشی به‌نسبت جدیدی از هوش مصنوعی است که در گسترۀ وسیعی از علوم مختلف اعم از کنترل ربات، تشخیص چهره و گفتار، شناسایی متن، پردازش داده‌های اینترنتی، داده‌کاوی و پیش‌بینی سری‌های زمانی کاربرد فراوان دارد. پژوهش‌گران مالی نیز از روش‌های متعددی در حوزۀ یادگیری ماشینی نظیر محاسبات تکاملی (ECs)[7]، الگوسازی عامل بنیان[8] و شبکۀ عصبی مصنوعی برای بررسی داده‌های سری زمانی استفاده کرده‌اند (Sezer and et al., 2020).

یادگیری عمیق، گونه‌ای از شبکه‌های عصبی مصنوعی است که شامل چندین لایه پردازش اطلاعات است که به الگوریتم توانایی بیشترین همگامی را با داده‌ها می‌دهد. مهم‌ترین مزیت الگوریتم‌های یادگیری عمیق نسبت‌به روش سنتی شبکۀ عصبی، استخراج خودکار ویژگی‌های مناسب از ورودی‌های خام است که از آن برای روند یادگیری الگو[9] استفاده می‌‌شود. مطالعات انجام‌شده در حوزۀ پیش‌بینی سری‌های زمانی مالی که در آنها از الگوریتم‌های یادگیری عمیق استفاده شده است، براساس نوع خروجی موردانتظار اغلب به دو دستۀ اصلی تقسیم می‌شود که یکی پژوهش‌هایی است که با هدف پیش‌بینی قیمت سهام (Chong and et al., 2017; Chen and et al., 2015; Dezsi & Nistor, 2016) و دیگری با هدف پیش‌بینی روند قیمت (صعودی، نزولی یا خنثی) انجام شده است (Das and et al., 2018;. Zhou and et al., 2019).

در پژوهش‌های مرتبط با هدف پیش‌بینی قیمت سهام، از روش‌های متنوعی در حوزۀ یادگیری عمیق استفاده شده است که از آن جمله می‌توان به الگوریتم شبکۀ عصبی مکرر یا بازگشتی (RNN) (and et al., 2018; Lee & Yoo, 2020)، حافظۀ کوتاه‌مدت ماندگار (LSTM) و شبکۀ عصبی پیچشی (CNN) اشاره کرد که در این میان پژوهش‌گران به الگوریتم‌های LSTM و CNN به دلیل دارا بودن برخی ویژگی‌ها بیشتر از بقیۀ روش‌ها توجه کرده‌اند؛ برای مثال، گائو[10] و همکاران (2020) مقایسۀ قدرت انواع الگوریتم‌های LSTM، MLP و CNN را درخصوص پیش‌بینی شاخص‌های S&P500 و Nikkei225 در افق زمانی یک‌روزه بررسی کرده‌اند؛ آنها از متغیرهای ورودی شاخص‌های تکنیکال، داده‌های قیمتی و شاخص‌های کلان اقتصادی برای پیش‌بینی استفاده کرده‌اند. درنهایت با استفاده از خطای RMSE بهترین عملکرد به‌ترتیب الگوریتم‌های CNN، LSTM و MLP بوده است. دیپرسیو و هانچر[11] (2016) نیز با استفاده از الگوریتم‌های CNN، LSTM و MLP، داده‌های تاریخی قیمت پایانی شاخص S&P500 را بررسی کرده‌اند که نتایج حکایت از عملکرد بهتر الگوریتم CNN داشته است. در جدول (1) برخی از پژوهش‌های انجام‌شده با استفاده از الگوریتم‌های یادگیری عمیق آورده شده است.

 

 

 

 

 

 

جدول (1) مطالعات مرتبط با به‌کارگیری معماری‌های مختلف یادگیری عمیق برای پیش‌بینی قیمت سهام

Table (1) Studies using different deep learning algorithms for stock price forecasting.

        حوزه‌های مطالعاتی

 

پژوهش‌های مرتبط

جامعۀ آماری

دورۀ زمانی مورد بررسی

داده‌های مورد استفاده

قالب زمانی

افق زمانی پیش‌بینی

الگوریتم مورد استفاده

ژو[12] و همکاران،

 (2018)

42 شرکت در SSE

2016

داده‌های قیمتی، شاخص‌های تکنیکال

242 دقیقه

یک دقیقه

CNN

LSTM,

هیرانشا[13] و همکاران،

 (2018)

۵ شرکت در NSE

1997-2016

داده‌های قیمتی، گردش مالی، تعداد دفعات معاملات

200 روز

یک الی ده روز

LSTM, RNN, CNN, MLP

لی و یو[14]،

 (2020)

10 شرکت در S&P500

1997-2016

داده‌های قیمتی

36 دقیقه

یک دقیقه

RNN, LSTM, GRU

حسین زاده و هراتی‌زاده[15]، (2019)

۵ شاخص بازار سهام آمریکا

2010-2017

داده‌های قیمتی، شاخص‌های تکنیکال، قیمت طلا و نفت

-

یک روز

CNN

لیو[16] و همکاران،

 (2017)

بازار سهام چین

2007-2017

داده‌های قیمتی

30 روز

یک الی پنج روز

CNN, LSTM

خارو[17] و همکاران،

 (2017)

10 شرکت در NYSE

2017

داده‌های قیمتی، شاخص‌های تکنیکال

بیست دقیقه

یک دقیقه

LSTM, MLP

گوندوز[18] و همکاران، (2017)

100 شرکت در بازار سهام استانبول

2011-2015

داده‌های قیمتی، شاخص‌های تکنیکال

10 روز

یک روز

CNN

 

در بخش داخلی، مطالعات انگشت‌شماری در حوزۀ کاربرد معماری‌های مختلف یادگیری عمیق در مباحث مالی انجام شده است. ازجمله پژوهش شوشتریان[19] و همکاران (۱۳۹۷) که سعی در پیش‌بینی قیمت فلزات گران‌بها با استفاده از دو روش LSTM و RNN داشتند؛ نتایج پژوهش حاکی از برتری روش RNN است. علاوه بر این، دامی و خدابخش[20] (1397) با استفاده از بازنمایی‌های عددی و متنی با روش LSTM اثرات زمانی وقایع گذشته را بر قیمت‌های موجود بررسی کرده‌اند.

روش شبکۀ عصبی پیچشی (CNN) یک شبکۀ عصبی مصنوعی (ANN) پیش‌خور محسوب می‌شود که ورودی‌های آن به‌صورت ماتریس دوبعدی است و برخلاف یک شبکۀ عصبی دارای اتصال کامل مانند MLP، موقعیت داده‌ها در بردار ورودی (یا ماتریس) حائز اهمیت است (Sezer & Ozbayoglu, 2018). به دلیل ویژگی تحلیل ماتریسی شبکۀ کانولوشنی یا پیچشی[21]، این روش کاربرد وسیعی در حوزه‌های گوناگون اعم از تشخیص تصویر، فیلم، پردازش زبان طبیعی و سیستم‌های خبره دارد. یکی از زمینه‌هایی که به‌تازگی موردتوجه پژوهش‌گران قرار گرفته است، تحلیل سری‌های زمانی مانند قیمت سهام با استفاده از این روش نوین است. در معماری CNN از لایه‌های مختلفی استفاده می‌شود که به‌ترتیب عبارت است از: پیچشی، ادغام[22]، حذف تصادفی[23] و تمام‌ متصل[24]. در رابطه با عملکرد CNN به‌طور خلاصه می‌توان گفت در سطح اول، لایۀ پیچشی قرار دارد که ورودی آن یک آرایه از اعداد است؛ در این لایه با استفاده از فیلترهای[25] متنوع ویژگی‌های جدیدی از ماتریس استخراج می‌شود[26]. شایان ذکر است فیلترها نیز خود آرایه‌ای از وزن‌ها هستند که در حین مراحل آموزش به‌روز می‌شوند و به‌دنبال آن عملیات ادغام انجام می‌شود که در آن وظیفۀ کاهش ابعاد و تعداد پارامترهای شبکه را انجام می‌شود (Sezer and et al., 2020). شبکه‌های عصبی عمیق اغلب در معرض بیش‌برازش[27] هستند؛ چون تعداد لایه‌های اضافه‌شده این امکان را ایجاد می‌کند که وابستگی‌های نایاب در داده‌های آموزشی حساب شود. با استفاده از روش حذف تصادفی می‌توان به از بین بردن بیش‌برازش کمک کرد؛ در این شیوه درصد مشخصی از واحدها به‌صورت تصادفی از لایه‌های مخفی حذف می‌شود. این کار به از بین بردن وابستگی‌های نادر در داده‌های آموزشی کمک می‌کند (Poorzaker Arabani & Ebrahimpour Komleh, 2019). خروجی این لایه بعد از تبدیل به بردار یک‌بعدی به لایۀ شبکه اتصال کامل ارسال و در آن از الگوریتم‌های رایج شبکه‌های عصبی استفاده می‌شود. عملکرد لایۀ پیچشی در فرمول زیر نشان داده شده است.

 

(1)

 

 

در رابطۀ (1) متغیرهای t، s، w، x و  به‌ترتیب نشان‌دهندۀ زمان، نقشۀ ویژگی[28]، فیلتر، داده ورودی و شمارنده هستند. در این پژوهش با تمرکز بر معماری‌های مختلف الگوریتم CNN به پرسش‌های زیر پاسخ داده می‌شود. پیش‌بینی قیمت سهام در بورس اوراق بهادار تهران با استفاده از معماری‌های مختلف الگوریتم  CNNچگونه است؟ کدام معماری CNN عملکرد بهتری در پیش‌بینی قیمت سهام دارد؟ درنهایت اینکه عملکرد معماری‌های منتخب الگوریتم CNN در مقایسه با الگوریتم RNN چگونه است؟

 

روش پژوهش

سهام شرکت ذوب‌آهن اصفهان به دلیل حجم معاملات روزانۀ به‌نسبت بالا در مقایسه با سایر شرکت‌ها و همچنین درصد مناسب سهام شناور آزاد برای تحلیل انتخاب شده است. از این رو، نمونۀ آماری، قیمت‌های روزانۀ شرکت ذوب‌آهن اصفهان از سال 1396 تا سال 1399 است. در راستای لزوم همسان‌بودن دورۀ زمانی متغیرها و افق زمانی پیش‌بینی قیمت در پژوهش (که به‌صورت روزانه است)، این مهم در انتخاب متغیرهای ورودی در نظر گرفته شده است و از دو دسته داده‌های قیمتی (اولین قیمت، بالاترین قیمت، پایین‌ترین قیمت، آخرین قیمت و حجم معاملات) و شاخص‌های تکنیکال استفاده شده است که مجموع متغیرهای داده‌های قیمتی از نرم‌افزار TseClient و شاخص‌های تکنیکال براساس پژوهش‌های کارا[29] و همکاران (2011) و پاتل[30] و همکاران (2015) به شرح جدول (2) محاسبه شده است. درنهایت برای طراحی الگو از نرم‌افزار Python نسخۀ 8.3 همراه با توابع کتابخانه‌ای کراس استفاده شده است.

 

 

 

 

 

 

جدول (2) معادلات شاخص‌های تکنیکال

Table (2) Technical indicators equation.

نحوۀ محاسبه

نام شاخص

 

Weighted 10-day moving average

 

Momentum

 

Stochastic K%

 

Stochastic D%

 

Relative strength index (RSI)

 

Moving average convergence divergence (MACD)

 

MACD Signal

 

Larry William’s R%

 

On Balance Volume (OBV)

 

CCI (Commodity channel index)

 

که در آن Ct آخرین قیمت در زمان t، Ht بالاترین قیمت در زمان t، UPt تغییرات قیمت صعودی در زمان t، Lt پایین‌ترین قیمت در زمان t، LLt , HHt بیشترین و کمترین قیمت در t روز آخر و DWt تغییرات قیمت نزولی در زمان t است. علاوه بر این، نحوۀ محاسبۀ Mt ، SMt و Dt به شرح ذیل است.

 

 

 

 

 

بررسی پژوهش‌های مرتبط با پیش‌بینی قیمت با استفاده از روش CNN نشان‌دهندۀ آن است که به‌طور معمول از سه معماری (لایه‌چینی) به شرح شکل (1) استفاده شده است که در این پژوهش نیز هر سه معماری بررسی شده است.

 

شکل (1) فرآیند انتخاب معماری بهینه CNN

Figure (1) The process of choosing optimal CNN algorithm

 

شایان ذکر است انتخاب معماری‌های مختلف و پارامترهای مورد استفاده با مدنظر قراردادن مطالعات مختلف انجام‌شده در این حوزه به شرح جدول ذیل است:

جدول (3) مطالعات مؤثر در طراحی الگوی پژوهش

Table (3) Effective studies in model development  

پژوهش

معماری مورد استفاده

حوزۀ مطالعاتی

داده‌های مورد استفاده

افق زمانی پیش‌بینی

لویریس[31] و همکاران، (2020)

استفاده از دو لایۀ پیچشی با تعداد فیلترهای متفاوت

پیش‌بینی دلاری قیمت طلا

داده‌های قیمتی

یک روز

گائو[32] و همکاران، (2020)

CNN ساده

پیش‌بینی شاخص S&P500

CSI300

Nikkei225

داده‌های قیمتی، حجم معاملات، شاخص‌های تکنیکال

یک روز

CNN همراه با لایۀ حذف تصادفی

گودلک[33] و همکاران، (2017)

CNN همراه با لایه‌های حذف تصادفی و ادغام بیشینه[34]

پیش‌بینی قیمت صندوق‌های سرمایه‌گذاری ETF

داده‌های قیمتی، شاخص‌های تکنیکال

یک روز

جی[35] و همکاران، (2019)

CNN همراه با لایۀ ادغام بیشینه

پیش‌بینی قیمت قردادهای آتی کربن

داده‌های قیمتی

هفت روز

لی و دای[36]، (2020)

CNN همراه با لایۀ ادغام بیشینه

پیش‌بینی قیمت رمزارز بیت‌کوین

داده‌های قیمتی

یک روز

 

برای انتخاب معماری بهینۀ CNN نیاز است که هر سه روش استفاده‌شده با پارامترهای مختلف بررسی شود. شایان ذکر است پارامترهای اثرگذار در ساخت معماری بهینۀ CNN شامل مواردی نظیر تعداد فیلتر‌ها[37] در لایۀ CNN، اندازۀ دسته[38] و تابع فعال‌سازی[39] است. برای مثال، تعداد کم فیلتر‌ها باعث ایجاد خطای بیشتری می‌شود و شبکه همگرا نمی‌شود. از طرفی تعداد فیلترهای زیاد به دلیل ایجاد بیش‌برازش منجر به خطای بالا می‌شود. از این رو، موارد مذکور با توجه به خروجی اخذشده بهینه‌سازی شده است. انتخاب پارامترهای مختلف در جدول (4) براساس نتایج مطالعات انجام‌شده در این حوزه است (Gudelek and et al., 2017; Livieris and et al Pintelas., 2021; Livieris and et al., 2020).

 

جدول (4) پارامترهای مختلف مورد استفاده در اجرای الگو

Table (4) The parameters used to run the model  

پارامتر

مقادیر

تعداد فیلتر

64، 128، 256

اندازه دسته

32، 64، 128

optimizer

Adam

Loss

Mean Square Error

توابع فعال‌سازی

رابطۀ ریاضی

تابع یکسو ساز (ReLU)

 

تانژانت هیپربولیک

(Tanh)

 

 

برای اجرای الگوریتم، داده‌ها به دو بخش آموزش (80 درصد) برای ساخت الگو و آزمایش (20 درصد) برای آزمون تقسیم شده است؛ برای بهترشدن فرآیند یادگیری، مرحلۀ آموزش به تعداد50 مرتبه تکرار[40] شده است. علاوه بر این، باید توجه داشت که تفاوت مقیاس‌ها در متغیرهای مختلف، نتایج را تحت‌تأثیر قرار می‌دهد و به‌طور معمول برای از بین بردن تأثیر نامطلوب مذکور، نرمال‌سازی داده نیاز است که در این پژوهش برای نرمال‌سازی از روش کمینه – بیشینه[41] جهت تبدیل داده‌ها به مجموعۀ جدیدی استفاده شده است که در آن همۀ مقادیر بین 0 و 1 است.

 

یافته‌ها

برای انتخاب معماری بهینه CNN، هر سه معماری معرفی‌شده با پارامترهای مختلف مندرج در جدول (4) اجرا شده است. درنهایت بهترین نتایج حاصل از هر معماری مقایسه شده است؛ بنابراین معماری منتخب، حاصل از اجرای الگوریتم به تعداد 54 دفعه با لایه‌ها و پارامترهای متفاوت است. در مرحلۀ اول، روش CNN با معماری لایه‌های ذیل اجرا شده است (معماری اول CNN).

 

 

شکل (2) معماری اول CNN

Figure (2) First CNN architecture

در جداول (5) و (6) خطاهای میانگین قدر مطلق درصد خطا ([42]MAPE) و مجذور میانگین مربعات خطای نرمال ([43]NRMSE) در اجرای الگو به تعداد 18 دفعه با استفاده از جایگشت‌های مختلف تعداد فیلتر، اندازۀ دسته و استفاده از دو تابع فعال‌سازی ReLU و Tanh آورده شده است.

 

جدول (5) خطای اجرای معماری اول CNN به تفکیک پارامترهای مختلف با تابع فعال‌سازی ReLU

Table (5) Error of first CNN architecture in terms of different parameters with ReLU function

تابع فعال‌سازی ReLU

نوع خطا

تعداد فیلتر

64

128

256

اندازۀ دسته

32

MAPE

99/2

00/3

83/11

NRMSE

10/4

94/3

28/12

64

MAPE

70/4

52/2

85/3

NRMSE

18/6

56/3

00/5

128

MAPE

95/3

43/2

18/3

NRMSE

93/4

47/3

09/4

 

جدول (6) خطای اجرای معماری اول CNN به تفکیک پارامترهای مختلف با تابع فعال‌سازی Tanh

Table (6) Error of first CNN architecture in terms of different parameters with Tanh function

تابع فعال‌سازی Tanh

نوع خطا

تعداد فیلتر

64

128

256

اندازۀ دسته

32

MAPE

99/2

50/2

06/4

NRMSE

12/4

33/3

37/4

64

MAPE

74/5

35/2

13/2

NRMSE

10/6

19/3

09/3

128

MAPE

00/4

21/3

25/3

NRMSE

15/5

37/4

75/3

 

نتایج به‌دست‌آمده از اجرای معماری اول حاکی از آن است که ترکیب پارامترها با تعداد فیلتر 256، اندازۀ دسته 64 و با تابع فعال‌سازی Tanh بهترین دقت پیش‌بینی را دارد. در مرحلۀ دوم، روش CNN با معماری لایه‌های ذیل اجرا شده است (معماری دوم CNN با لحاظ لایۀ ادغام بیشینه).

شکل (3) معماری دوم CNN

Figure (3) Second CNN architecture

 

قراردادن یک لایۀ ادغام بین چندین لایۀ پیچشی پشت سر هم در یک معماری CNN امری رایج است. کارکرد این لایه کاهش تعداد پارامترها و محاسبات در داخل شبکه و کنترل بیش‌برازش[44] است. لایۀ ادغام به‌صورت مستقل بر هر برش عمقی از تودۀ ورودی عمل می‌کند و آن را با استفاده از عملیات بیشینه[45] ازلحاظ مکانی تغییر اندازه[46] می‌دهد. رایج‌ترین نحوۀ استفاده از این لایه به‌صورت استفادۀ آن با فیلترهایی با اندازه 3×1 به‌همراه گام[47]=3 است که همانند شکل (4)، عملیات بیشینه در این قسمت، بزرگ‌ترین عدد بین 3 عدد (یک ناحیه 3×1 در برش عمقی) را انتخاب می‌کند و باعث حذف 67 درصد مقادیر موجود در آن برش عمقی می‌شود؛ گفتنی است بُعد عمق بدون تغییر باقی می‌ماند.

 

 

شکل (4) عملکرد لایه ادغام بیشینه

Figure (4) The function of Max-Pooling Layer

 

نتایج اجرای الگوریتم CNN با لحاظ کردن لایۀ ادغام بیشینه به شرح جداول (7) و (8) است.

 

جدول (7) خطای اجرای معماری دوم CNN به تفکیک پارامترهای مختلف با تابع فعال‌سازی ReLU

Table (7) Error of second CNN architecture in terms of different parameters with ReLU function

تابع فعال‌سازی ReLU

نوع خطا

تعداد فیلتر

64

128

256

اندازۀ دسته

32

MAPE

79/2

00/3

 26/2

NRMSE

65/3

37/4

46/3

64

MAPE

40/2

99/1

79/1

NRMSE

16/3

88/2

71/2

128

MAPE

03/3

66/3

17/2

NRMSE

33/4

27/4

05/3

 

جدول (8) خطای اجرای معماری دوم CNN به تفکیک پارامترهای مختلف با تابع فعال‌سازی Tanh

Table (8) Error of second CNN architecture in terms of different parameters with Tanh function

تابع فعال‌سازی Tanh

نوع خطا

تعداد فیلتر

64

128

256

اندازه دسته

32

MAPE

89/2

61/2

25/5

NRMSE

10/4

22/3

46/7

64

MAPE

01/4

81/2

27/7

NRMSE

99/4

47/3

78/9

128

MAPE

64/3

08/3

85/3

NRMSE

52/4

91/3

39/4

 

نتایج به‌دست‌آمده از اجرای معماری دوم نشان‌دهندۀ آن است که ترکیب پارامترها با اندازۀ دسته 64، تعداد فیلتر 256 و با تابع فعال‌سازی ReLU بهترین دقت پیش‌بینی را دارد؛ همان‌گونه که مشخص است خطای به‌دست‌آمده با پارامترهای مذکور از نتایج منتخب معماری اول نیز به‌مراتب بهتر است. در مرحلۀ سوم، روش CNN با معماری لایه‌های ذیل اجرا شده است (معماری سوم CNN با لحاظ لایۀ ادغام بیشینه و حذف تصادفی).

 

شکل (5) معماری سوم CNN

Figure (5) Third CNN architecture

 

از معایب مربوط به شبکه‌های عصبی عمیق، مشکل بیش‌برازش و زمان محاسباتی بالاست. شبکه‌های عصبی عمیق در معرض بیش‌برازش هستند؛ چون تعداد لایه‌های اضافه‌شده این امکان را ایجاد می‌کند که وابستگی‌های نایاب در داده‌های آموزشی حساب شود. با استفاده از روش حذف تصادفی می‌توان به از بین بردن بیش‌برازش کمک کرد؛ در این شیوه درصد مشخصی از واحدها به‌صورت تصادفی از لایه‌های مخفی حذف می‌شود. این کار به از بین بردن وابستگی‌های نادر در داده‌های آموزشی کمک می‌کند (Poorzaker and et al., 2019). در شکل (6) نحوۀ عملکرد لایۀ حذف تصادفی نشان داده می‌شود.

 

 

شکل (6) عملکرد لایه حذف تصادفی (Cao and et al., 2019)

Figure (6) The function of Dropout Layer (Cao and et al., 2019)

 

نتایج اجرای الگوریتم CNN با لحاظ‌کردن لایۀ حذف تصادفی و ادغام بیشینه به شرح جداول (9) و (10) است.

 

جدول (9) خطای اجرای معماری سوم CNN به تفکیک پارامترهای مختلف با تابع فعال‌سازی ReLU

Table (9) Error of third CNN architecture in terms of different parameters with ReLU function

تابع فعال‌سازی ReLU

نوع خطا

تعداد فیلتر

64

128

256

اندازۀ دسته

32

MAPE

57/4

72/2

57/4

NRMSE

68/5

12/4

49/5

64

MAPE

76/3

24/3

18/2

NRMSE

84/4

29/4

26/3

128

MAPE

97/2

49/3

52/4

NRMSE

02/4

46/4

46/5

 

جدول (10) خطای اجرای معماری سوم CNN به تفکیک پارامترهای مختلف با تابع فعال‌سازی Tanh

Table (10) Error of third CNN architecture in terms of different parameters with Tanh function

تابع فعال‌سازی Tanh

نوع خطا

تعداد فیلتر

64

128

256

اندازۀ دسته

32

MAPE

%88/3

%77/7

%82/3

NRMSE

%00/5

%48/9

%40/5

64

MAPE

%17/8

%71/2

%01/3

NRMSE

%94/8

%43/3

%26/4

128

MAPE

%44/3

%60/3

%77/3

NRMSE

%32/4

%80/4

%63/4

 

نتایج به‌دست‌آمده از اجرای معماری سوم حاکی از آن است که ترکیب پارامترها با اندازۀ دسته 64، تعداد فیلتر 256 و با تابع فعال‌سازی ReLU بهترین دقت پیش‌بینی را در این بخش دارد.

همان‌طور که در بخش‌های قبلی اشاره شد، RNN یکی دیگر از الگوریتم‌های یادگیری عمیق است که استفاده از آن در پیش‌بینی سری‌های زمانی امری متداول است؛ از این رو، در جدول (11) نتایج حاصل از معماری‌های منتخب و الگوریتم RNN آورده شده است. برای ارزیابی عملکرد، معیارهای MAPE و NRMSE معماری‌های منتخب اول، دوم و سوم CNN با الگوریتم RNN مقایسه شده است.

جدول (11) مقایسۀ خطای اجرای الگوهای منتخب

Table (11) Comparing the error of selected models

                       نوع خطا

نام روش

MAPE

NRMSE

RNN

46/2

79/2

منتخب معماری اول CNN

13/2

09/3

منتخب معماری دوم CNN

79/1

71/2

منتخب معماری سوم CNN

18/2

26/3

 

براساس نتایج جدول (11)، دقت منتخب معماری دوم CNN نسبت‌به روش‌های دیگر بالاتر است. مقادیر NRMSE برای هر چهار روش کمتر از سطح 05/0 است که نشان از برازش مناسب الگوریتم‌های مذکور دارد (Kiyani Mavi & Sayadi Nik, 2015).

در ادامه به‌منظور بررسی رابطۀ بین مقدار واقعی قیمت سهام و مقدار پیش‌بینی‌شده از ضریب همبستگی پیرسون استفاده شده است که نتایج آن در جدول (12) آورده شده است. با توجه به اینکه سطح معنا‌داری برای هر چهار روش از سطح خطای یک درصد کمتر است، وجود همبستگی بین مقدار واقعی قیمت سهام و مقدار پیش‌بینی‌شده به لحاظ آماری تأیید شده است.

 

جدول (12) ضریب همبستگی پیرسون بین مقدار واقعی قیمت سهام و مقدار پیش‌بینی‌شده

Table (12) Pearson's correlation coefficient between real & predicted stock price 

                     نام روش

شرح

RNN

منتخب معماری اول CNN

منتخب معماری دوم CNN

منتخب معماری سوم CNN

ضریب همبستگی پیرسون

922/0

982/0

985/0

903/0

سطح معناداری

000/0

000/0

000/0

000/0

تعداد دادۀ آزمایش

91

91

91

91

نظر به اینکه براساس نتایج جدول (11)، منتخب معماری دوم CNN نسبت‌به روش‌های دیگر عملکرد بهتری داشته است، در ادامه نتایج حاصل از اجرای این روش آورده شده است. فرآیند کاهش خطا در مرحلۀ آموزش معماری منتخب با تکرار 50 مرتبه بهینه‌سازی در شکل (7) مشخص است.

 

 

شکل (7) فرآیند کاهش خطا برای مرحلۀ آموزش در معماری منتخب CNN

Figure (7) The process of error reduction for selected CNN architecture in train step

 

نمودار قیمت واقعی سهام شرکت ذوب‌آهن اصفهان به‌همراه قیمت پیش‌بینی به تفکیک داده‌های آموزش و آزمایش در شکل (8) نشان داده شده است:

 

شکل (8) داده‌های واقعی قیمت سهام شرکت ذوب‌آهن اصفهان به‌همراه نمودار پیش‌بینی با استفاده از معماری منتخب

Figure (8) The chart of real stock price compared with the prediction graph using selected model

(ZobAhan Esfahan stock price)

 

نتایج و پیشنهادها

به موازات انواع روش‌های مختلف استفاده‌شده برای پیش‌بینی قیمت سهام، پژوهش‌گران حوزۀ یادگیری ماشینی نیز با استفاده از الگوریتم‌های متنوع موجود در این بخش سعی در پیش‌بینی قیمت داشته‌اند. یادگیری عمیق، گونه‌ای از الگوریتم‌های یادگیری ماشینی است که تلاش می‌کند مفاهیم انتزاعی سطح بالا را با استفاده از یادگیری در سطوح و لایه‌های مختلف لحاظ کند و شامل چندین لایه پردازش اطلاعات است که باعث بیشترین همگامی الگوریتم با داده‌ها می‌شود. در پژوهش حاضر از سه معماری مختلف CNN با ترکیب پارامترهای مختلف برای انتخاب الگوریتم بهینه پیش‌بینی قیمت استفاده شده است؛ بررسی‌ها حاکی از آن بود که پارامترهای اثرگذار در ساخت معماری بهینه CNN شامل مواردی نظیر اندازۀ دسته، تعداد فیلتر و تابع فعال‌سازی است؛ از این رو، در مرحلۀ اول با استفاده از ترکیبات مختلف پارامترهای مذکور، مقادیر بهینه برای هر معماری به دست آمد و در مرحلۀ نهایی مقایسۀ نتایج حاصل از هر سه معماری منتخب نشان‌دهندۀ آن بود که منتخب معماری دوم CNN همراه با لایۀ ادغام بیشینه با ترکیب پارامترهای اندازۀ دسته 64، تعداد فیلتر 256 و با تابع فعال‌سازی ReLU، دارای خطاهای درصد 79/1 = MAPE و درصد 71/2 =  NRMSE است که نشان‌دهندۀ عملکرد بهتر آن نسبت‌به سایر معماری‌ها و روش RNN است. معماری به‌دست‌آمده از این پژوهش با نتایج حاصل از مطالعات جی و همکاران (2019) برای پیش‌بینی قیمت قراردادهای آتی کربن و همکاران (2020) درخصوص پیش‌بینی قیمت رمزارزها، در استفاده از لایۀ پیچشی همراه با لایۀ ادغام بیشینه مطابقت دارد. بنابراین در مطالعۀ گائو و همکاران (2020) از لایۀ پیچشی همراه با لایۀ حذف تصادفی استفاده شده است و گودلک و همکاران (2017) نیز برای پیش‌بینی قیمت صندوق‌های سرمایه‌گذاری ETF پیشنهاد استفاده از لایۀ پیچشی را همراه با لایه‌های حذف تصادفی و ادغام بیشینه دادند که در این پژوهش با بررسی معماری‌های بالا، نتایج آنها تأیید نشد و دقت معماری منتخب در استفاده از لایۀ پیچشی همراه با لایۀ ادغام بیشینه بهتر از معماری‌های دیگر بوده است.

در پژوهش حاضر با توجه به افق زمانی پیش‌بینی که یک روز آتی است، از دو دسته متغیرهای ورودی شامل داده‌های قیمتی (اولین قیمت، بالاترین قیمت، پایین‌ترین قیمت، آخرین قیمت و حجم معاملات) و ده شاخص تکنیکال استفاده شده است. حال آنکه در پژوهش‌های آتی می‌توان از طیف گسترده‌تری از متغیرهای ورودی نظیر متغیرهای بنیادی استفاده کرد و تأثیر هر گروه از انواع مختلف ورودی‌ها را بر دقت پیش‌بینی بررسی کرد یا به پیش‌بینی قیمت در افق‌های زمانی مختلف پرداخت و توانایی الگو را در پیش‌بینی افق‌های زمانی مختلف با یکدیگر مقایسه کرد. علاوه بر این، می‌توان عملکرد روش پیشنهادی این پژوهش را با سایر الگوریتم‌های هوش مصنوعی مقایسه کرد. از طرفی، تعداد بالای متغیرهای ورودی به‌طور معمول باعث افزایش پیچیدگی و به تبع آن کاهش کارایی الگو می‌شود. از این رو، استفاده از تکنیک‌های کاهش ابعاد داده‌های ورودی ممکن است به افزایش دقت الگوریتم کمک کند. در پژوهش‌های آتی می‌توان از تکنیک‌های مختلف کاهش بعد مانند تجزیه‌وتحلیل مؤلفه‌های اساسی (PCA)[48]، تجزیۀ مقادیر منفرد(SVD) [49]یا تحلیل تفکیک‌کنندۀ تعمیم‌یافته (GDA)[50] استفاده و نتایج را در افزایش دقت الگوریتم بررسی کرد. برخی از پژوهش‌گران نیز با ترکیب الگوریتم CNN با سایر الگوریتم‌های یادگیری عمیق مانند شبکۀ حافظۀ کوتاه‌مدت ماندگار (LSTM)، استفاده از روش‌های ترکیبی را پیشنهاد داده‌اند (Livieris and et al., 2021) که در پژوهش‌های آتی نیز می‌توان از ترکیب روش ارائه‌شده در این پژوهش با سایر الگوریتم‌های یادگیری عمیق استفاده کرد یا با ترکیب روش پیشنهادی با الگوریتم‌های فراابتکاری بهینه‌سازی مانند الگوریتم ازدحام ذرات (PSO)[51] و الگوریتم رقابت استعماری (ICA)[52] توانایی آنها را در قدرت پیش‌بینی قیمت مقایسه کرد.

از محدودیت‌های این نوشتار می‌توان به این نکته اشاره کرد که با توجه به وجود طیف وسیع شاخص‌های تکنیکال، متغیرهای تکنیکال استفاده‌شده در پژوهش حاضر نمایندۀ کل شاخص‌های تکنیکال نیست. علاوه بر این، با در نظر گرفتن عمدۀ پژوهش‌های گذشته در این حوزه، برای اجرای الگوریتم تنها از توابع فعال‌سازی ReLU و Tanh استفاده شده است؛ علاوه بر این، سیاست‌های مدیریتی شرکت‌ها و استفاده از معاملات بلوکی برای کنترل دستوری قیمت که بر حجم معاملات و قیمت کوتاه‌مدت اثرگذار است، ممکن است بر نتایج پژوهش اثرگذار باشد.

 

 

[1]. Capital Asset Pricing Model

[2]. Arbitrage Pricing Theory

[3]. Machine Learning

[4]. Recurrent Neural Network

[5]. Long Short-Term Memory

[6]. Convolutional Neural Network

[7]. Evolutionary Computations

[8]. Agent-based models

[9]. Model

[10]. Gao

[11]. Di Persio & Honchar

[12]. Zhou

[13]. Hiransha

[14]. Lee & Yoo

[15]. Hoseinzade & Haratizadeh

[16]. Liu

[17]. Khare

[18]. Gunduz

[19]. Shoushtarian

[20]. Dami & Khodabakhsh

[21]. Convolution

[22]. Pooling

[23]. Dropout

[24]. Fully Connect or Dense Layer

[25]. Filter or Kernel

[26]. Feature Extraction

[27]. Over Fitting

[28]. Feature map

[29]. Kara

[30]. Patel

[31]. Livieris

[32]. Gao

[33]. Gudelek

[34]. Max-Pooling

[35]. Ji

[36]. Li & Dai

[37]. Filters

[38]. Batch Size

[39]. Activation Function

[40]. Epochs

[41]. Min-Max normalization

[42]. Mean Absolute Percentage Error

[43]. Normalized Root Mean Square Error

[44]. Over Fitting

[45]. Max

[46]. Resize

[47]. Stride

[48]. Principal Component Analysis

[49]. Singular Value Decomposition

[50]. Generalized Discriminant Analysis

[51]. Particle Swarm Optimization

[52]. Imperialist Competitive Algorithm

Cao, J., Li, Z., & Li, J. (2019). Financial time series forecasting model based on CEEMDAN and LSTM. Physica A: Statistical Mechanics and its Applications, 519, 127-139. https://doi.org/10.1016/j.physa.2018.11.061
Chen, K., Zhou, Y., & Dai, F. (2015). A LSTM-based method for stock returns prediction: A case study of china stock market. In 2015 IEEE International Conference on Big Data (Big Data), 2823-2824. https://doi.org/10.1109/BigData.2015.7364089
Chong, E., Han, C., & Park, F. C. (2017). Deep learning networks for stock market analysis and prediction: Methodology, data representations, and case studies. Expert Systems with Applications, 83,187-205. https://doi.org/10.1016/j.eswa.2017.04.030
Dami, S., & Khodabaksh, J. F. (2017). Predicting the price of stock market using deep learning. National Conference on Modern Knowledge and Technology in Engineering in the Technology Era. Tehran. (In Persian) 
Das, S. R., Mokashi, K., & Culkin, R. (2018). Are markets truly efficient? Experiments using deep learning algorithms for market movement prediction. Algorithms, 11(9), 138-157. https://doi.org/10.3390/a11090138
Deng, L., & Yu, D. (2014). Deep learning: Methods and applications. Foundations and Trends in Signal Processing, 7(3–4), 197-387. http://dx.doi.org/10.1561/2000000039
Dezsi, E., & Nistor, I. A. (2016). Can deep machine learning outsmart the market? A comparison between econometric modelling and long- short term memory. Romanian Economic Business Review, 11(4.1), 54-73.
Gao, P., Zhang, R., & Yang, X. (2020). The application of stock index price prediction with neural network. Mathematical and Computational Applications, 25(3), 53-69. https://doi.org/10.3390/mca25030053
Gordon, J. A., & Francis, J. C. (1986). Portfolio Analysis, (3th. Ed.). California: Prentice-Hall.
Gudelek, M. U., Boluk, S. A., & Ozbayoglu, A. M. (2017). A deep learning based stock trading model with 2-D CNN trend detection. In 2017 IEEE Symposium Series on Computational Intelligence (SSCI), 1-8.
Gunduz, H., Yaslan, Y., & Cataltepe, Z. (2017). Intraday prediction of Borsa Istanbul using convolutional neural networks and feature correlations. Knowledge-Based Systems, 137, 138-148. https://doi.org/10.1016/j.knosys.2017.09.023
Hiransha, M., Gopalakrishnan, E. A., Menon, V. K., & Soman, K. P. (2018). Nse stock market prediction using deep-learning models. Procedia Computer Science, 132, 1351-1362. https://doi.org/10.1016/j.procs.2018.05.050
Hoseinzade, E., & Haratizadeh, S. (2019). CNNpred: CNN-based stock market prediction using a diverse set of variables. Expert Systems with Applications, 129, 273-285. https://doi.org/10.1016/j.eswa.2019.03.029
Ji, L., Zou, Y., He, K., & Zhu, B. (2019). Carbon futures price forecasting based with ARIMA-CNN-LSTM model. Procedia Computer Science, 162, 33-38. https://doi.org/10.1016/j.procs.2019.11.254
Kara, Y., Boyacioglu, M. A., & Baykan, Ö. K. (2011). Predicting direction of stock price index movement using artificial neural networks and support vector machines: The sample of the Istanbul Stock Exchange. Expert systems with Application, 38 (5), 5311-5319. https://doi.org/10.1016/j.eswa.2010.10.027
Khare, K., Darekar, O., Gupta, P., & Attar, V. Z. (2017). Short term stock price prediction using deep learning. In 2017 2nd IEEE International Conference on Recent Trends in Electronics, Information & Communication Technology (RTEICT), 482-486. https://www.doi.org/10.1109/RTEICT.2017.8256643
Kiyani Mavi, R., & Sayadi Nik, K. (2015). Using different learning algorithms in the stock price prediction by using neural networks. Journal of Development and Evolution Management, 1393, 75-81. (In Persian)
Lee, S. I., & Yoo, S. J. (2020). Threshold-based portfolio: The role of the threshold and its applications. The Journal of Supercomputing, 76(10), 8040-8057. https://doi.org/10.1007/s11227-018-2577-1
Li, Y., & Dai, W. (2020). Bitcoin price forecasting method based on CNN-LSTM hybrid neural network model. The Journal of Engineering, 2020(13), 344-347. https://doi.org/10.1049/joe.2019.1203
Liu, S., Zhang, C., & Ma, J. (2017). CNN-LSTM neural network model for quantitative strategy analysis in stock markets. International Conference on Neural Information Processing, Springer, Cham. https://doi.org/10.1007/978-3-319-70096-0_21
Livieris, I. E., Kiriakidou, N., Stavroyiannis, S., & Pintelas, P. (2021). An advanced CNN-LSTM model for cryptocurrency forecasting.  Electronics, 10(3), 287. https://doi.org/10.3390/electronics10030287
Livieris, I. E., Pintelas, E., & Pintelas, P. (2020). A CNN–LSTM model for gold price time-series forecasting. Neural Computing & Applications, 32(23), 17351–17360. https://doi.org/10.1007/s00521-020-04867-x
Mitchell, T. (1997). Machine Learning. New York: McGraw Hill. 
Patel, J., Shah, S., Thakkar, P., & Kotecha, K. (2015). Predicting stock market index using fusion of machine learning techniques. Expert Systems with Applications, 42(4), 2162-2172. https://doi.org/10.1016/j.eswa.2014.10.031
Persio, L. D., & Honchar, O. (2016). Artificial neural networks architectures for stock price prediction: Comparisons and applications. International Journal of Circuits, Systems and Signal Processing, 10, 403-413. https://doi.org/10.1007/s40745-020-00305-w
Poorzaker Arabani, S., & Ebrahimpour Komleh, H. (2019). The optimization of forecasting ATMs cash demand of Iran banking network using LSTM deep recursive neural network. Journal of Operational Research and Its Applications, 16(3), 69-88. (In Persian)
Raei, R., & Chavoshi, K. (2003). Predicting the stock price: Artificial neural network and multi-factor model. Financial Research Journal, 15(5), 97-120. (In Persian)
Sezer, O. B., Gudelek, M. U., & Ozbayoglu, A. M. (2020). Financial time series forecasting with deep learning: A systematic literature review: 2005–2019. Applied Soft Computing Journal, 90, 106181. https://doi.org/10.1016/j.asoc.2020.106181
Sezer, O. B., & Ozbayoglu, A. M. (2018). Algorithmic financial trading with deep convolutional neural networks: Time series to image conversion approach. Applied Soft Computing Journal, 70, 525-538. https://doi.org/10.1016/j.asoc.2018.04.024
Shoushtarian, B., Zahedi, E., Yazdinejad, M., & Hormozan, S. (2018). Predicting the price of precious metal by deep learning algorithms. International Conference on Innovation & Research on Engineering Sciences. Tbilisi. (In Persian)
Zhou, F., Zhou, H. M., Yang, Z., & Yang, L. (2019). EMD2FNN: A strategy combining empirical mode decomposition and factorization machine based neural network for stock market trend prediction. Expert Systems with Applications, 115, 136-151. https://doi.org/10.1016/j.eswa.2018.07.065
Zhou, X., Pan, Z., Hu, G., Tang, S., & Zhao, C. (2018). Stock market prediction on high frequency data using generative adversarial nets. Mathematical Problems in Engineering, 2018, 1–11.