ABSTRACT Nghiên cứu này tập trung vào ứng dụng các mô hình máy học, bao gồm Linear Regression, KNN, SVM và LSTM đề dự đoán giá chứng khoán của Ngân hàng TMCP Ngoại thương Việt Nam Vietco
Trang 1Môn: PHƯƠNG PHÁP NGHIÊN CỨU LIÊN NGÀNH
Đề tai: STOCK PRICE PREDICTION IN VIETNAM
GVGD: TS Nguyén Thôn Dã
NHOM SINH VIEN THUC HIEN
STT Ho va tén MSSV
1 | Tw Ha Phuc K224060808
2 | Tran Nhu Cam Ly K224060795
3 | Bui Xuan Mai K224060796
4 | Nguyễn Ngọc Gia Nghi K224060802
5 | Nguyễn Thanh Thúy Tiên K224060816
Trang 2
Tuy nhiên, do chưa có nhiều kinh nghiệm làm đề tài cũng như hạn chế về kiến thức, báo cáo không thể tránh khỏi những thiếu sót Chúng em rất mong nhận được những ý kiến, góp ý quý giá của Thầy để có thể cải thiện những thiếu sót trong báo cáo này và
học hỏi nhiều kinh nghiệm đề hoàn thành tốt hơn những bài sắp tới
Chúng em xin chân thành cảm ơn!
Trang 3MỤC LỤC
I8 1 4 PC nh ố 4
“AI; 2 5
SA ri nan 5
SN Ng 1 an 5 E279 17 1.aeeea.AAAẦẦ 7 SZ// , 167/, 186 6 4 8 KS¿ .0) n1nn6ốeốeốố.aaAẢẢ HH 10 3.3.1 Gathering machine learning data ccc c ccc tk HH 1111111 21H ng 11 ST) .HA II nh a ổ nan nh h 12 SEN 7A a4 nha 16 3.3.5 Deploying an application to predict stock price in Viet NaHH 17
"na e 17
5 Conclusion and Future Scope 0 0 0200112221112 21112211521 1112111 8k re 18 (ii nh .ẻ 20
Trang 4ABSTRACT
Nghiên cứu này tập trung vào ứng dụng các mô hình máy học, bao gồm Linear Regression, KNN, SVM và LSTM đề dự đoán giá chứng khoán của Ngân hàng TMCP Ngoại thương Việt Nam (Vietcombank) có ký hiệu là VCB trên thị trường chứng khoán Việt Nam Dữ liệu sử dụng trong nghiên cứu là thông tin lịch sử về giá chứng khoán của mã chứng khoán Các đặc trưng của đữ liệu bao gồm giá mở cửa, giá đóng cửa, khối lượng giao dịch và các chỉ số liên quan khác Các mô hình máy học được đào tạo và đánh giá sử dụng dữ liệu này để dự đoán giá chứng khoán Hiệu suất của từng mô hình được đánh giá băng các phương pháp đo đạc như sai số trung bình bình phương, độ chính xác và độ chính xác Kết quả sẽ cho thấy hiệu suất và khả năng dự đoán của từng mô hình trong việc dự đoán giá chứng khoán VCB trên thị trường chứng khoán Việt Nam
Trang 51 Introduction
Thị trường chứng khoán Việt Nam là một phần quan trọng của hệ thống tài chính quốc gia, đóng vai trò quyết định trong việc huy động vốn và cung cấp cơ hội đầu tư cho các nhà đầu tư Việc tra cứu thông tin về các mã chứng khoán, thông tin liên quan đến công ty, và so sánh các mã chứng khoán với nhau là những nhu cầu cơ bản của họ Áp dụng machine learning và deep learning để đự đoán giá chứng khoán là một trong những ứng dụng quan trọng và phức tạp của trí tuệ nhân tạo trong lĩnh vực tài chính Đến nay, đã có rất nhiều nghiên cứu về đề tài này và đã cho ra nhiều kết quả khá triển vọng trong tương lai
Gần đây, việc đự đoán thị trường chứng khoán có thê được nâng cao bằng cách sử dụng máy hoc (Machine Learning) Những kỹ thuật như Máy Vecto hé tro (Support Vector Machine - SVM), hoặc một số vectơ dựa trên mạng noron kỹ thuật như Mạng nơron nhân tạo (ANN), Mạng nơ ron tái phát (RNN) và mạng nơ ron sâu mạng lưới
thần kinh như Bộ nhớ ngan dai (Long short term memory - LSTM) [1] [2] [3] Day la
những công cụ tốt có thể giúp xử lý dữ liệu đầu vào và đầu ra của một tập dữ liệu phức tạp Trong bài báo này, chúng tôi sẽ trình bày về việc sử đụng các kỹ thuật trên
đề dự đoán giá chứng khoán Việt Nam
Các phần tiếp theo của bài báo bao gồm: phân 2 trình bày về các nghiên cứu liên quan đến bài toán Trong phần 3, chúng tôi sẽ trình bày cơ sở lý thuyết Phần 4 trình bày những kết quả thực nghiệm của mô hình đề xuất, trong đó có kết hợp so sánh với một
số kết quả của mô hình khác Cuối cùng, trong phần 5 chúng tôi nêu lên một số kết luận và những định hướng nghiên cứu tiếp theo
2 Related work
Dự đoán giá chứng khoán là một vấn đề quan trọng trong tài chính, có thế giúp nhà đầu tư đưa ra quyết định đầu tư hiệu quả hơn Đề dự đoán giá trên thị trường chứng khoán, mọi người tìm kiếm những phương pháp và công cụ như vậy sẽ làm tăng lợi nhuận của họ, đồng thời giảm thiểu rủi ro [4] Dự đoán đóng một vai trò rất quan trọng trong hoạt động kinh doanh trên thị trường chứng khoán, một quá trình được cho là rất phức tạp và đây thử thách Việc sử dụng các phương pháp truyền thông như phân tích cơ bản và kỹ thuật có thế không đảm bảo độ tin cậy của dự đoán [5] Sự phát triển mạnh mẽ của các mô hình học máy, học sâu như Linear Regression, KNN, SVM, LSTM được ứng dụng vào dự đoán giá cô phiếu và đã đạt được một số kết quả khả quan, được nêu ra trong các bài viết [6] [7] [8] Chúng tôi nhận thấy tầm quan trọng của việc so sánh các mô hình dự đoán khác nhau để tìm ra mô hình phù hợp nhất cho từng tình huống cụ thê đặc biệt là trong ngắn hạn và dài hạn Ngoài ra, chúng tôi có ý
Trang 6tưởng để bài nghiên cứu có thể ứng dụng dự đoán cho hầu hết các mã chứng khoán ở Việt Nam, thông qua dữ liệu được lấy trực tiếp nhờ vào thư viện hỗ trợ Nghiên cứu chúng tôi tập trung vào tìm kiếm giải pháp cho việc dự đoán, hỗ trợ đưa ra quyết định đầu tư ở Việt Nam bên cạnh nghiên cứu về mô hình, thuật toán
biến độc lập (X) [9]
Dữ liệu đầu vào trong bài nghiên cứu của chúng tôi là các điểm đữ liệu lấy theo chuỗi
60 ngày liên tiếp và đầu ra là giá của ngày tiếp theo, thực hiện tiếp tục cho đến hết tập
dữ liệu đầu vào Vì vậy mô hình hồi quy tuyến tính được sử dụng ở đây là hồi quy tuyến tính đa biến Mô hình nảy sử dụng nhiều biến độc lập dé dự đoán biến phụ thuộc, và mối quan hệ giữa các biến độc lập và biến phụ thuộc lả tuyến tính [10] Công thức hồi quy đa biến:
Y =0 +IXI +2X2 + + BaXn + e [LI]
Cách hoạt động của SVM sẽ có 3 bước Bước | sé 1a tim mét hé thong tuyén tinh (hyperplane) đề phân biệt các lớp dữ liệu Hệ thống tuyến tính là một đường thắng hoặc một đường cong có thé chia hai lớp đữ liệu thành hai phần riêng biệt Sau đó là
5
Trang 7tìm các điểm đữ liệu gần nhất (support vector) với hệ thống tuyến tính Các điểm này được gọi là vector hỗ trợ, vì chúng ảnh hưởng đến vị trí và hướng của hệ thông tuyến tính Cuối cùng, tối ưu hóa lề (margin) của hệ thống tuyến tính Lễ là khoảng cách giữa hệ thông tuyến tính và các điểm đữ liệu gần nhất từ mỗi lớp Mục tiêu của model
Khoảng cách giữa điểm đữ liệu x ¡ và ranh giới quyết định có thé được tính như sau:
llw|| đại điện cho chuân Eucliđe của vectơ trọng số w Định mức Euclide của vectơ pháp tuyến W [14]
s* KNN
K-nearest neighbor ( KNN ) là một trong những thuật toán học có giám sát đơn giản nhất trong Machine Learning Ý tưởng của KNN là tìm ra output của đữ liệu dựa trên thông tin của những dữ liệu training gần nó nhất [I5]
Quy trình làm việc của KNN gồm những bước sau Bước đầu tiên, chúng ta sẽ xác định tham số K băng cách sử dụng số láng giềng gần nhất Tiếp theo, chúng ta tính toán khoảng cách đối tượng cần phân lớp với tất cả các đối tượng trong training data Sau đó, chúng ta sẽ sắp xếp khoảng cách theo thứ tự tăng dần đồng thời xác định K láng giềng gần nhất với đối tượng cần phân lớp rồi lay tat cả các lớp của K láng giềng gân nhất Cuối cùng, dựa vào phần lớn lớp của K ta sẽ xác định được lớp cho đối tượng cần phân lớp
Thuật toán KNN cho rằng những dữ liệu tương tự nhau sẽ tồn tại gần nhau trong một không gian, từ đó công việc của chúng ta là sẽ tìm k điểm gần với dữ liệu cần kiêm tra nhất Việc tìm khoảng cách giữa 2 điểm cũng có nhiều công thức có thế sử đụng, tùy trường hợp mà chúng ta lựa chọn cho phù hợp Đây là 3 cách cơ bản đề tính khoảng
cách 2 điểm dữ liệu x, y có k thuộc tính [16]:
Trang 8Hochreiter va Schmidhuber da phat minh ra mang Long Short-Term Memory (LSTM)
vào năm 1997 [L7] LSTM là một biến thê của mạng thần kinh tái phát hoặc RNN và
được chứng minh là hoạt động tốt với các mô hình học tập và ghi nhớ theo thời g1an LSTM được thiết kế để xử lý vẫn đề phụ thuộc lâu dài về vấn đề tiêu biến và bùng nỗ gradient trong RNN [18] [19] LSTM có bốn thành phần chính bao gồm Cell State (Ct), Hidden State (Ht), Forget Gate (Ft) va Input Gate (It) va Output Gate (Ot)
Hinh 1: Hinh xién cua LTSM [20]
Nhu duoc hién thi trong Hình 1, đây là phương thức vận hành mô hình LSTM thông
thường Các công thức như sau [21]:
Trang 9để lưu trữ các chỉ tiết cần thiết đề máy hiểu được ngữ cảnh sau này mà không cần lật trang lại (tên, nơi ở, mối quan hệ giữa các nhân vật ) Ht là viết tắt cba Hidden State (trí nhớ ngắn hạn) dùng đề lưu trữ các chỉ tiết nhất định cụ thể cho cảnh mà máy đang đọc cho đến khi cảnh này kết thúc và quên nó đi (trời đã sáng, hai nhân vật đã đi đạo )
Nghiên cứu này chúng tôi đã lựa chọn mô hình LSTM của RNN để dự đoán giá cô
phiếu Bộ nhớ ngắn hạn dài (LSTM) là kiến trúc RNN phô biến, được giới thiệu bởi
Sepp Hochreiter và Juergen Schmidhuber [22] Mô hình LSTM có thê giải quyết được vấn đề mà mô hình RNN cơ bản không thé dự đoán được trạng thái hiện tại của mô hình LSTM có ba “ô”: : công vào, công ra và công quên, giúp nó lọc và đự đoán thông tin mà mạng nơ-ron yêu câu [23]
3.2 Description of Data
Bộ đữ liệu này bao gồm thông tin về giá chứng khoán lịch sử của các mã chứng khoán được lấy từ thư viện vnstock Dữ liệu được thu thập từ các ngày giao dịch và bao gồm các thông tin quan trọng như giá mở cửa (open), giá cao nhất trong ngày (high), gia thấp nhất trong ngày (low), giá đóng cửa (close) và khối lượng giao dịch (volume) Mỗi mã chứng khoán được đại diện bởi một tập hợp các thông tin giá trị tương ứng với các chỉ số trên Giá mở cửa là giá chứng khoán trong ngày giao dịch khi thị trường
mở cửa, giá cao nhất là mức giá tôi đa mà cô phiếu đã đạt trong ngày, giá thấp nhất là mức giá tối thiêu mà cổ phiếu đã đạt trong ngày, và giá đóng cửa là giá chứng khoán khi thị trường đóng cửa trong ngày đó Khối lượng giao dịch chỉ ra tổng số cô phiếu
đã được giao dịch trong ngày
Đề minh họa cho toàn bộ quá trình, chúng tôi lựa chọn mã chứng khoán cụ thé la mã chứng khoán của Ngân hàng TMCP Ngoại thương Việt Nam (Vietcombank) có ký
hiệu là VCB Dữ liệu đầu vào được lấy từ ngày 01- 01- 2021 đến 24- 11- 2023
Trang 10Bảng 1: Mẫu dữ liệu giao dịch từ 04/01/2021-15/01/2021 chưa qua xử lý
Bảng 2 và 3 : Số liệu thống kê mô tả của tập đữ liệu
93700.000000
high 724.000000 72037.839779 8914.756598 55290.000000 65160.000000 68820.000000 78260.000000 93700.000000
low
724.000000 70319.834254 8947.576744
52500.000000
63610.000000 66890.000000 76332.500000 92500.000000
close
724.000000 71220.219613 8977.621711 52500.000000 64379.000000 67740.000000 77412.500000 93400.000000
volume
7.240000€+02 1.232381e+06 6.559934e+05 1.139000e+05 8.001500e+05 1.092400e+06 1.504075e+06 6.274200e+06
Trang 11
<class 'pandas.core.frame.DataFrame ' >
RangeIndex: 724 entries, @ to 723
Data columns (total 6 columns):
# Column Non-Null Count Dtype
Bộ đữ liệu này gồm 724 hàng (tương ứng với 724 ngày giao dịch) được đánh số từ 0 -
723 với 6 cot (time, open, high, low, close, volume) Ngoai trừ cột time có kiểu dữ liệu là Object (cụ thê là đatetime) vì là ngày giao dịch thì các cột còn lại có kiểu đữ
liệu là int64 và tat cả các cột đều không có giá trị null
3.3 Process Diagram
Bài viết nhằm mục đích nghiên cứu và đánh giá mức độ hiệu quả của các mô hình AI trong việc ứng dụng tiến hành dự báo giá của các mã chứng khoán được niêm yết ở Việt Nam Nghiên cứu này đã sử dụng các phương pháp phân tích khác nhau, bao gồm một số kỹ thuật ML truyền thống và kỹ thuật DL với khả năng học các cấu trúc thông tin phức tạp của bệ dữ liệu, đưa ra những dự đoán từ dữ liệu chứng khoán lịch
sử Quy trình tổng hợp của nghiên cứu sẽ được thể hiện ở Hình 2 đưới đây:
Trang 12
Collect Historical stock price Preprocessing
dữ liệu đã được mô tả chỉ tiết ở phần 3.2
3.3.2 Data pre-processing
Dữ liệu lịch sử chứng khoán sẽ được bóc tách đề chỉ lấy ra thông số về giá đóng cửa (close) Thong số này được chúng tôi lựa chọn làm dữ liệu đầu vào đề tiến hành dự đoán Bởi vì giá đóng cửa là giá trị cuối cùng của ngày giao dịch, phản ánh tổng hợp tất cả các giao dịch diễn ra trong ngày, giá trị thê hiện xu hướng của thị trường trong ngày Giá đóng cửa (close) được lựa chọn trong khoảng thời gian tốt nhất là trên hai
Trang 13tháng vì dự đoán sẽ được dựa vào dữ liệu của sáu mươi ngày liên tiếp đề dự đoán ra gia tri cua ngay tiép theo
m=] GI
Ni
HHHBHBI=n
Hình 3: Minh hoạ dữ liệu đầu vào và đầu ra
Dữ liệu sau đó chuyển từ DataFrame thành mảng numpy để để dàng tiến hành chuân
hóa và phân tách tập dữ liệu huấn luyện và tập đữ liệu kiểm tra Tập dữ liệu huấn luyện và kiêm tra được phân tách theo tỷ lệ lần lượt 1a 80% và 20% của bộ dữ liệu ban
đầu Thư viện sklearn được sử dụng để chuân hóa dữ liệu trong khoảng [0, 1] Việc chuân hóa dữ liệu này giúp cho mô hình học máy hoạt động hiệu quả hơn
3.3.3 Training model
3.3.3.1 Linear Regression
Chúng tôi tiến hành đào tạo và khop m6 hinh héi quy tuyến tính Dùng lớp
LinearRegression trong thư viện scikit-learn của Python đề áp dụng phương pháp bình phương tối thiểu tìm các hệ số tốt nhất cũng như tính toán giá trị chặn cho mô hình tuyến tính Sau đó, tiến hành huấn luyện mô hình tuyến tính trên tập đữ liệu dao tao với tập dữ liệu đầu vào là các điểm đữ liệu lấy theo chuỗi 60 ngày liên tiếp và đầu ra
là giá của ngày tiếp theo, thực hiện tiếp tục cho đến hết tập dữ liệu đầu vào Tiếp tục với việc dự đoán đầu ra cho các điểm dữ liệu mới - dữ liệu của tập dữ liệu kiểm tra dựa trên mô hình tuyến tính đã được huấn luyện Các dự đoán sau đó được chuyên đôi ngược để có được thang đo gốc của đữ liệu bởi vì ở bước tiền xử lý đữ liệu mục 3.3.2,
dữ liệu đã được chuyền hoá trong khoảng [0,1]