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.. Trong bài báo này, chúng tôi sẽ trình bày về việc sử dụng các kỹ thuật trên để dự đoán giá c
Trang 1TRƯỜNG ĐẠI HỌC KINH TẾ - LUẬTKHOA HỆ THỐNG THÔNG TIN
ĐỒ ÁN CUỐI KỲ
Môn: PHƯƠNG PHÁP NGHIÊN CỨU LIÊN NGÀNHĐề tài: STOCK PRICE PREDICTION IN VIETNAM
4 Nguyễn Ngọc Gia Nghi K224060802 5 Nguyễn Thanh Thúy Tiên K224060816
Trang 2LỜI CẢM ƠN
Đầu tiên, Nhóm chúng em xin gửi lời cảm ơn chân thành đến giảng viên bộ môn -Tiến sĩ Nguyễn Thôn Dã đã dạy dỗ và truyền đạt những kiến thức quý báu cho chúng em trong suốt thời gian học tập vừa qua Tuy thời gian thực hiện đồ án cuối kỳ có hạn, nhưng Thầy đã hướng dẫn, nhận xét và góp ý vô cùng tận tình Nhờ có vậy, giúp chúng em làm nền tảng và vận dụng được vào bài cuối kỳ.
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 4Nghiê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 dữ 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.
Too long to read onyour phone? Save
to read later on your computer
Save to a Studylist
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 để dự đ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 dự đoán thị trường chứng khoán có thể được nâng cao bằng cách sử dụng máy học (Machine Learning) Những kỹ thuật như Máy Vectơ hỗ trợ (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ớ ngắn dài (Long short term memory - LSTM) [ ] [ ] [ ] Đây là1 2 3 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ử dụ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 [ ] Dự đoán đóng một vai trò rất quan4 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 [ ] Sự phát5 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 [ ] [ ] [ ] Chúng tôi nhận thấy tầm quan trọng6 7 8 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.
3 Methodology
3.1 Model AI 3.1.1 Machine learning
❖ Linear Regression
Linear regression (hồi quy tuyến tính) là một thuật toán khá phổ biến của Supervised Learning (Học có giám sát) với đầu ra dự đoán liên tục và độ dốc không đổi nhằm dự đoán các giá trị trong một phạm vi liên tục Hồi quy tuyến tính là một phương pháp thống kê để dự đoán giá trị của biến phụ thuộc (Y) dựa trên giá trị của một hoặc nhiều 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 dữ 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ự đ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:
Model SVM (Support Vector Machine) là một loại thuật toán học máy được hướng dẫn sử dụng cho các bài toán phân loại hoặc hồi quy dữ liệu theo các lớp khác nhau [12].
Cách hoạt động của SVM sẽ có 3 bước Bước 1 sẽ là tìm một hệ thống tuyến tính (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 dữ liệu thành hai phần riêng biệt Sau đó là
Trang 7tìm các điểm dữ 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 dữ liệu gần nhất từ mỗi lớp Mục tiêu của model SVM là tìm ra một lề lớn nhất có thể [13].
Phương trình của siêu phẳng tuyến tính có thể được viết là:
Vectơ W đại diện cho vectơ pháp tuyến của siêu phẳng, tức là hướng vuông góc với siêu phẳng Tham số b trong phương trình biểu thị độ lệch hoặc khoảng cách của siêu phẳng tính từ gốc dọc theo vectơ pháp tuyến w.
Khoảng cách giữa điểm dữ liệu x_i và ranh giới quyết định có thể được tính như sau:
||w|| đại diện cho chuẩn Euclide của vectơ trọng số w Định mức Euclide của vectơ pháp tuyến W [14].
❖ 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 dữ liệu dựa trên thông tin của những dữ liệu training gần nó nhất [15].
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 lấy tất 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ử dụ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 83.1.2 Deep learning ❖ LSTM
Hochreiter và Schmidhuber đã phát minh ra mạng Long Short-Term Memory (LSTM) vào năm 1997 [ ] LSTM là một biến thể của mạng thần kinh tái phát hoặc RNN và17 đượ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 gian 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 [ ] [ ] LSTM có bốn thành phần chính bao gồm Cell State18 19 (Ct), Hidden State (Ht), Forget Gate (Ft) và Input Gate (It) và Output Gate (Ot).
Hình 1: Hình xiên của LTSM [ ] 20
Như được hiển thị 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 9Ft, It lần lượt là viết tắt của Forget Gate và Input Gate (cơ chế quên và lưu vào bộ nhớ dài hạn), lúc này máy tiếp tục làm mới kiến thức về cuốn sách trong trí nhớ dài hạn của não (ví dụ: nếu một nhân vật chết, có thể quên một số chi tiết nhất định về nhân vật này) Ot là viết tắt của Output Gate (cơ chế truy xuất từ trí nhớ dài hạn) Thay vì lúc nào cũng sử dụng toàn bộ trí nhớ dài hạn, máy sẽ học những phần nào cần tập trung vào một thời điểm nhất định Ct là viết tắt của Cell State (trí nhớ dài hạn) dùng để lưu trữ các chi 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 của Hidden State (trí nhớ ngắn hạn) dùng để lưu trữ các chi 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 dạ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 [ ] Mô hình LSTM có thể giải quyết được22 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à dự đoán thông tin mà mạng nơ-ron yêu cầu [23].
3.2 Description of Data
Bộ dữ 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), giá 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ể là 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 dữ liệu.
Trang 11Bộ dữ 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 cột (time, open, high, low, close, volume) Ngoại trừ cột time có kiểu dữ liệu là Object (cụ thể là datetime) vì là ngày giao dịch thì các cột còn lại có kiểu dữ liệu là int64 và tất 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 dưới đây:
Trang 12Hình 2: Quy trình tổng hợp của nghiên cứu
3.3.1 Gathering machine learning data
Dữ liệu lịch sử của mã chứng khoán VCB được lấy về thông qua thư viện vnstock Thư viện vnstock cung cấp cho người dùng khả năng truy cập dữ liệu chứng khoán Việt Nam từ các nguồn cấp dữ liệu đáng tin cậy thông qua các API công khai Dữ liệu này có thể được sử dụng để tạo các đối tượng Pandas DataFrame trong môi trường Python Dữ liệu lịch sử của mã chứng khoán VCB bao gồm thông tin về giá mở cửa là giá được xác định tại thời điểm bắt đầu phiên giao dịch (open), giá cao nhất của cổ phiếu trong một ngày giao dịch (high), giá thấp nhất của cổ phiếu trong một ngày giao dịch (low), giá đóng cửa của cổ phiếu, là giá được xác định tại thời điểm kết thúc phiên giao dịch (close), khối lượng giao dịch của cổ phiếu trong ngày giao dịch được tính bằng số lượng cổ phiếu được mua và bán trong ngày (volume) Đặc điểm của bộ
dữ liệu đã được mô tả chi 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) Thông 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 giá trị của ngày tiếp theo.
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ễ 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 dữ 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 là 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à khớp mô hình 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 dữ liệu đào tạo với tập dữ liệu đầu vào là các điểm dữ 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 dữ liệu bởi vì ở bước tiền xử lý dữ liệu mục 3.3.2, dữ liệu đã được chuyển hoá trong khoảng [0,1].
Trang 14Hình 4: Giá trị dự đoán giá cổ phiếu của mô hình Linear Regression
3.3.3.2 Support Vector Machine (SVM)
Sử dụng các hàm cần thiết để tạo và huấn luyện mô hình SVM Khởi tạo mô hình thông qua khởi tạo đối tượng SVR với tham số kernel='linear' Tham số này xác định kernel được sử dụng để ánh xạ dữ liệu sang không gian mới Kernel là một hàm toán học ánh xạ dữ liệu gốc (linearly inseparable) sang một không gian có chiều cao hơn (potentially linearly separable) Điều này cho phép SVM phân loại các dữ liệu không thể tách biệt được một cách tuyến tính trong không gian ban đầu Trong trường hợp này, kernel được sử dụng là 'linear', tức là mô hình SVM sẽ tìm một đường thẳng phân tách các lớp dữ liệu Huấn luyện mô hình bằng cách sử dụng dữ liệu huấn luyện, dữ liệu đầu vào được lấy từ tập dữ liệu huấn luyện và đầu ra tương tự như trên mô hình Linear Regression Sử dụng mô hình đã được huấn luyện để dự đoán giá trị cho dữ liệu kiểm tra Hàm này được xây dựng dựa trên các vectơ hỗ trợ và kernel được sử dụng, cho phép mô hình dự đoán giá trị cho các điểm dữ liệu mới Vì dữ liệu đã được chuẩn hóa trước khi huấn luyện mô hình, cần phải chuyển đổi ngược các dự đoán về thang đo gốc để có được kết quả thực tế Hình 5.