ThS. Lê Thị Thu Giang, ThS. Vũ Thị Huyền Trang

Trường Đại học Thương mại

TÓM TẮT

Do tính biến động không ngừng của thị trường tài chính, dự báo giá cổ phiếu là một nhiệm vụ đầy thách thức. Nhiều nhà nghiên cứu đã cố gắng dự báo giá cổ phiếu bằng cách sử dụng các loại hình thống kê, các mô hình kinh tế lượng hay mạng nơ-ron nhân tạo (ANNs) khác nhau. Trong nghiên cứu này, chúng tôi sử dụng mô hình ANNs để dự báo giá đóng cửa của các mã cổ phiếu được niêm yết công khai trên sàn chứng khoán và thực nghiệm trên bộ số liệu của 2 mã cổ phiếu là VCB và VIB của 2 ngân hàng: Ngoại thương Việt Nam và Quốc tế Việt Nam. Kết quả cho thấy, các mô hình hoạt động khá hiệu quả, đặc biệt là khi số liệu không có biến động quá lớn với trung bình tuyệt đối của sai số tương đối chỉ khoảng 20%.

Từ khóa: mạng nơ-ron nhân tạo, mô hình dự báo, dự báo giá cổ phiếu, thuật toán truyền ngược

GIỚI THIỆU

Ở bất kỳ quốc gia nào, thị trường chứng khoán cũng là một trong những thành phần quan trọng trong nền kinh tế. Bởi vậy, việc hiểu được xu hướng của thị trường này là rất cần thiết. Do đó, cùng với sự phát triển của thị trường chứng khoán, dự báo giá cổ phiếu đã trở thành một chủ đề thú vị, thu hút được sự quan tâm của nhiều nhà đầu tư, chuyên gia, nhà khoa học. Tuy nhiên, do tính biến động nhanh theo sự tác động của thị trường, dự báo giá cổ phiếu là một trong những bài toán đầy thách thức.

Nhiều phương pháp dự báo đã và đang được phát triển để dự báo xu hướng biến động về giá cổ phiếu nhằm tìm kiếm các cổ phiếu tiềm năng để đầu tư. Trong đó, những phương pháp phân tích và dự báo bằng định lượng thông quá các mô hình toán học đã được quan tâm do tính khách quan và cơ sở khoa học của chúng. Đơn giản nhất là các mô hình hồi quy tuyến tính, hồi quy đa thức… để dự báo xu hướng thị trường. Tiếp đến là những mô hình thống kê cổ điển, bao gồm các phương pháp: trung bình trượt, ARIMA.

Ngày nay, ANNs đang được sử dụng rộng rãi trong rất nhiều lĩnh vực. Dựa vào các khả năng học, khả năng khái quát hóa và khả năng xử lý thông tin song song, ANNs đã cho thấy tính hiệu quả của nó trong việc giải quyết bài toán dự báo. Tuy nhiên, tại Việt Nam, các công trình nghiên cứu về vấn đề dự báo giá cổ phiếu ANNs không nhiều.

Trong bài báo này, nhóm tác giả sử dụng ANNs trong dự báo giá một số mã cổ phiếu của các ngân hàng niêm yết công khai trên sàn chứng khoán. Cụ thể là cổ phiếu của các ngân hàng: Ngoại thương Việt Nam (VCB), Quốc tế (VIB). Đây là một kênh tham khảo cho các nhà đầu tư và các nhà phân tích thị trường.

CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP NGHIÊN CỨU

Mạng nơ-ron nhân tạo

Mạng nơ-ron nhân tạo (Artificial neural networks- ANNs) là một mô hình học máy được lấy cảm hứng từ cấu trúc mạng nơ-ron tự nhiên. Về cơ bản, chúng bao gồm: các nơ-ron đầu vào (như các khớp thần kinh), được nhân với các trọng số, chính là cường độ của các tín hiệu tương ứng và sau đó được tính bằng một hàm toán học xác định sự kích hoạt của nơ-ron (activation function). Một hàm khác (có thể là hàm đồng nhất) sẽ tính toán đầu ra của tế bào thần kinh nhân tạo.

Trọng số của một nơ-ron nhân tạo càng cao, thì đầu vào được nhân lên càng mạnh. Trọng số này có thể âm hoặc dương. Bằng cách điều chỉnh trọng số của một nơ-ron nhân tạo, chúng ta có thể có được đầu ra mà chúng ta muốn với các đầu vào cụ thể. Tuy nhiên, khi mạng nơ-ron gồm hàng trăm hoặc hàng ngàn tế bào thần kinh, việc tính toán ra các trọng số này sẽ rất phức tạp. Lúc này, ta cần sử dụng các thuật toán để điều chỉnh trọng số của ANNs nhằm có được đầu ra mong muốn một cách nhanh nhất. Quá trình điều chỉnh này được gọi là “học” (learning) hoặc “đào tạo” (training). Trong một mạng nơ-ron nhân tạo có thể có một hoặc nhiều lớp ẩn trung gian (hidden layers), những mạng nơ-ron như vậy được gọi là mạng nơ-ron đa tầng. Khi đó, mỗi đầu ra của lớp trước chính là đầu vào của lớp liền sau nó. Vectơ giá trị của lớp thứ l được xác định bởi công thức:

Trong đó, Wl là ma trận trọng số tại lớp thứ l,f là hàm kích hoạt (activation function) tại lớp đó. Thông thường, ta dùng một trong số các hàm phi tuyến sau đây làm hàm kích hoạt.

Hàm Sigmoid và hàm Tanh đều là các hàm đối xứng, đơn điệu tăng và có đầu ra tiến tới 1 khi đầu vào rất lớn. Nếu như hàm Sigmoid chỉ nhận giá trị dương, thì hàm Tanh lấy các giá trị trong khoảng [-1,1]. Ưu điểm của các hàm này là cho đạo hàm rất đẹp và mô tả khá tốt những mô hình với biến đầu ra có dạng nhị phân hoặc các biểu diễn xác suất. Tuy nhiên, một nhược điểm rất dễ nhận thấy là khi đầu vào có giá trị tuyệt đối lớn, đạo hàm của 2 loại hàm này rất gần với không. Điều này có nghĩa là trong trường hợp đó, các trọng số gần như không được cập nhật, khi ta dùng công thức gradient desent.

Gần đây, hàm ReLU (Rectified Linear Unit) được sử dụng rộng rãi vì tính đơn giản và hiệu quả của nó. Khi sử dụng hàm này trong các mạng nơ-ron đa tầng, tốc độ hội tụ cao hơn nhiều so với việc dùng hàm Tanh hay Sigmoid. Mặc dù hàm ReLU có nhược điểm là có đạo hàm bằng 0 với các giá trị âm, nhưng thực nghiệm cho thấy rằng, nhược điểm này có thể được khắc phục bằng cách tăng số nút ẩn.

Kể từ mô hình thần kinh đầu tiên của McCulloch và Pitts (1943), đã có hàng trăm mô hình ANNs khác nhau được đưa ra. Sự khác biệt giữa các mô hình đó có thể là các hàm, cấu trúc liên kết, thuật toán học tập... Trong nghiên cứu này, nhóm tác giả sẽ sử dụng một mạng nơ-ron được dựa trên thuật toán backpropagation (Rumelhart và cộng sự, 1986), một trong những mô hình phổ biến nhất được sử dụng trong ANNs để tìm ra các trọng số phù hợp trong việc dự báo giá cổ phiếu từ các dữ liệu quá khứ.

Thuật toán truyền ngược (Backpropagation)

Khi dữ liệu truyền qua hết các lớp để có được đầu ra, ta sẽ tính được sai số giữa kết quả của phương pháp với kết quả thực tế. Sai số này là một hàm phi tuyến với đối số là các ma trận trọng số của mô hình. Hàm số đó được gọi là “hàm mất mát” (loss function). Có nhiều cách định nghĩa hàm mất mát, trong nghiên cứu này, chúng tôi sử dụng trung bình bình phương sai số (MSE) được định nghĩa, như sau:

Ở đây, yn là giá trị thực tế, còn ŷn là kết quả thực nghiệm từ phương pháp để dự báo yn

Thuật toán backpropagation (Rumelhart và cộng sự, 1986) được dùng trong feed-forward ANNs. Các tế bào thần kinh nhân tạo được tổ chức thành các lớp và gửi tín hiệu của chúng về phía trước, sau đó các lỗi được truyền ngược lại. Ý tưởng của thuật toán truyền ngược (backpropagation) là giảm sai số này bằng cách thay đổi các trọng số cho đến khi ANNs học được từ dữ liệu đào tạo. Cách tốt nhất để làm giảm sai số là huấn luyện mô hình sao cho sai số càng gần với giá trị bé nhất của hàm mất mát càng tốt. Do đó, để tìm ra bộ trọng số phù hợp, ta sẽ giải gần đúng bài toán tối ưu đó. Gradient Descent là một thuật toán rất phổ biến để xác định gần đúng nghiệm tối ưu. Cụ thể:

Để việc cập nhật trọng số đạt được kết quả mong muốn, đồng thời cũng tránh hiện tượng số bước lặp cần sử dụng cho quá trình học là quá lớn, chúng ta thường đưa ra mức sai số và giới hạn số bước lặp của mỗi thuật toán. Cách làm này cũng giúp phương pháp không bị rơi vào hiện tượng “over fitting”, nghĩa là mô hình tìm được “quá khớp” với dữ liệu, dẫn đến có thể kết quả sẽ rất không chính xác khi một số dữ liệu được sử dụng có nhiễu lớn.

Phương pháp nghiên cứu

Bước 1: Thu thập và làm sạch dữ liệu

Một trong những bước quan trọng nhất trong việc xử lí số liệu là thu thập được dữ liệu tốt, thực hiện các bước làm sạch dữ liệu bằng phương pháp phù hợp. Trong nghiên cứu này, các dữ liệu chứng khoán được download từ trang https://www.vndirect.com.vn dưới dạng một bảng excel với các thông tin bao gồm: ngày tháng (Dates), giá mở cửa (Open), giá cao nhất (High), giá thấp nhất (Low), giá đóng cửa (Close), giá đóng cửa điều chỉnh (Adj Close) và khối lượng giao dịch (Volumn). Tất cả các dữ liệu đó đều là các số thực ngoại trừ ngày, tháng. Vì vậy, cách đơn giản nhất để máy tính có thể hiểu được và biểu thị thông số này trên đồ thị là chuyển ngày, tháng sang dạng số bằng cách tạo thêm một cột bên cạnh cột “dates” và đặt tên là “Date values”, sau đó copy toàn bộ thông số ở cột “Dates” sang và sử dụng lệnh “Text.” “Date values” và “Close” sau đó sẽ được chuyển thành các giá trị nhỏ hơn nhờ lệnh “Scale”.

Trong nghiên cứu này, chúng tôi lựa chọn MinMaxScaler để đưa các giá trị trên về đoạn [0,1] nhờ công thức:

Với Ymax , Ymin , lần lượt là giá đóng cửa cao nhất và thấp nhất của một mã cổ phiếu trong tập dữ liệu.

Bước 2: Lựa chọn mô hình

Chúng tôi sử dụng mạng nơ-ron để để dự báo giá đóng cửa của một mã cổ phiếu vào một ngày bất kỳ trong tương lai khi đã có các dữ kiện trong quá khứ với thư viện Tensor Flow. Mạng nơ-ron gồm một giá trị đầu vào là ngày cần dự báo (dạng “date value” sau khi đã scale) và một đầu ra là giá dự báo của một mã cổ phiếu vào ngày hôm đó. Mạng gồm nhiều lớp ẩn. Chúng tôi sẽ thử nghiệm kết quả khi thay đổi số lớp ẩn, số nơ-ron trong mỗi lớp ẩn đó và thay đổi các hàm kích hoạt ở mỗi lớp. Ở bài báo này chúng ta sử dụng 3 mô hình ANNs:

- Mô hình 1: Có 3 lớp ẩn. Với mỗi lớp ẩn, hàm kích hoạt mà ta sử dụng là hàm “Tanh”. Số nơ-ron trên mỗi lớp ẩn là 50.

- Mô hình 2: Có 5 lớp ẩn. Hai lớp đầu và 2 lớp cuối dùng hàm “Tanh” để kích hoạt, lớp thứ 3 ta sử dụng hàm “ReLu”. Số nơ-ron của mỗi lớp vẫn là 50.

Các thông số trên có thể thay đổi để lựa chọn ra mô hình phù hợp hơn. Cụ thể, chúng ta có thể tăng số lớp ẩn, tăng số nơ-ron trong mỗi lớp, đồng thời có thể sử dụng các hàm kích hoạt khác trong các lớp ẩn đó.

Bước 3: Kiểm nghiệm kết quả

Với mỗi mô hình, khi sử dụng bộ số liệu cụ thể các tác giả đã tính toán ra các kết quả dự báo tương ứng, đồng thời kiểm tra độ chính xác bằng cách tính sai số tương đối giữa dữ liệu chính xác với kết quả dự báo với công thức sau:

Ở đây, yt, ŷt lần lượt là giá đóng cửa thực tế và giá dự báo sau khi đã scale của một mã cổ phiếu tại thời điểm t. Trong trường hợp yt = 0, tác giả đã thay giá trị này bởi trung bình cộng của yt-1 và yt+1

Ngoài ra, các tác giả cũng tính trung bình bình phương sai số (MSE) và trung bình tuyệt đối sai số tương đối (MAPE) giữa kết quả dự báo và giá trị thực tế của hai mô hình trên để đánh giá độ chính xác của các mô hình, trong đó:

Trong nghiên cứu này, các tác giả đã sử dụng dữ liệu download từ trang https://www.vndirect.com.vn của hai mã cổ phiếu: VCB và VIB từ ngày 01/01/2017-01/01/2020 (Bài viết sử dụng cách viết số thập phân theo chuẩn quốc tế).

KẾT QUẢ NGHIÊN CỨU

Hình 1 so sánh kết quả dự báo với giá đóng cửa thực tế của cổ phiếu VCB trong ba trường hợp: đường nét liền là giá cổ phiếu thực tế (sau khi đã scaled), đường nét “..” là giá dự báo theo mô hình dự báo 1, nghĩa là chúng ta sử dụng mạng nơ–ron với 3 lớp ẩn với hàm kích hoạt là hàm “Tanh”, và đường nét “--” thể hiện kết quả dự báo khi sử dụng mô hình 2.

Từ đồ thị có thể thấy kết quả dự báo thu được khi sử dụng mô hình 2 tốt hơn so với mô hình 1. Hình 2 cho thấy, sai số tương đối của 2 mô hình dự báo. Ở cả hai mô hình, sai số có xu hướng giảm dần khi số điểm dữ liệu tăng lên.

Hình 1: Giá đóng cửa thực tế và giá dự báo VCB Hình 2: Sai số tương đối của dự báo

Nguồn: Tính toán của nhóm tác giả

Tương tự như vậy, khi áp dụng 2 mô hình ANN trên cho bộ dữ liệu của ngân hàng VIB, ta có kết quả như Hình 3, 4.

Hình 3: Giá đóng cửa thực tế và giá dự báo VIB Hình 4: Sai số tương đối của dự báo

Nguồn: Tính toán của nhóm tác giả

Hình 3 mô tả đồ thị của giá thực tế (đường nét liền) so với giá dự báo khi sử dụng mô hình 1 (đường nét “..”) và mô hình 2 (đường nét “--”). Hình 4 là đồ thị so sánh sai số tương đối giữa kết quả thu được từ mô hình 1 (đường nét liền) với kết quả thu được từ mô hình 2 (đường nét “..”).

Tương tự trường hợp của mã cổ phiếu VCB, mô hình 2 cho kết quả tốt hơn với sai số nhỏ hơn so với mô hình 1. Tuy nhiên, sai số của kết quả dự báo trong ví dụ này lớn hơn so với khi sử dụng bộ số liệu của ngân hàng VCB. Điều này có thể giải thích do giá cổ phiếu thực tế VIB có biến động tương đối lớn, trong dữ liệu có nhiều điểm bất thường (giá tăng vọt hoặc giảm đột ngột), ảnh hưởng đến độ chính xác của mô hình dự báo.

Bảng 1 là kết quả của trung bình bình phương sai số tuyệt đối của các dự báo khi áp dụng 2 mô hình cho giá cổ phiếu các ngân hàng VCB và VIB. Kết quả cho thấy, các mô hình khá hiệu quả và mô hình 2 có sai số thấp hơn mô hình 1.

Bảng 1: Trung bình sai số của dự báo

Bảng 2: So sánh giá thực tế và giá dự báo 10 ngày của VCB

Bảng 3: So sánh giá thực tế và giá dự báo 10 ngày của VIB

Nguồn: Tính toán của nhóm tác giả

Bảng 2 và Bảng 3 đưa ra kết quả dự báo cụ thể cho 10 ngày cuối năm 2019 (không tính thứ 7, chủ nhật) và sai số tương đối tương ứng cho từng giá trị dự báo. Kết quả thu được từ bộ số liệu của VCB có sai số thấp hơn nhiều (chỉ khoảng 2%) so với sai số khi áp dụng phương pháp cho bộ số liệu của VIB (khoảng trên 10%). Tuy nhiên, cả hai mức sai số này đều cho thấy, mô hình dự báo là phù hợp.

KẾT LUẬN

Nghiên cứu đã đưa ra được một phương pháp dự báo bằng mô hình mạng nơ-ron nhân tạo cho giá cổ phiếu tại một thời điểm tương lai khi có lượng dữ liệu đủ lớn trong quá khứ, đồng thời có đánh giá sai số cho các mô hình đề xuất. Kết quả đạt được cho thấy sự phù hợp của mô hình, đặc biệt nếu xét về xu hướng biến động của giá.

Hạn chế đáng kể của mô hình là mới chỉ sử dụng duy nhất dữ kiện giá đóng cửa trong quá khứ để dự báo giá trong tương lai, mà chưa đề cập tới các yếu tố khác cũng có ảnh hưởng rất lớn đến thị trường cổ phiếu, như: truyền thông xã hội, giá cả của các đối thủ cạnh tranh, bến động thị trường, chỉ số thị trường… bởi việc lượng hóa các yếu tố này không hề đơn giản. Vì vậy, hướng nghiên cứu tiếp theo của nhóm tác giả là sẽ đưa ra các mô hình dự báo bằng ANNs trong đó có sử dụng một hoặc một vài các nhân tố khác ngoài giá cổ phiếu trong quá khứ./.

TÀI LIỆU THAM KHẢO

1. H. White (1988). Economic prediction using neural networks: The case of IBM daily stock return, IEEE International Conference on Neural Networks, 2, 451-458

2. Kimoto, T., Asakawa, K., Yoda, M., and Takeoka, M. (1990). Stock market prediction system with modular neural network, Proceedings of the International Joint Conference on Neural Networks, 1-6

3. McCulloch & Pitts (1943). A Logical Calculus of Ideas Immanent in Nervous Activity, Bulletin of Mathematical Biophysics, 115-133

4. Lucas Nunno (2014). Stock Market Price Prediction Using Linear and Polynomial Regression Models, University of New Mexico Computer Science Department Albuquerque, New Mexico

5. Parsinejad Shahbaz, Bagheri Ahmad, Ebrahimi Atani Reza, Javadi Moghaddam Jalal (2014). Stock market forecasting using artificial neural networks, European Online Journal of Natural and Social Sciences, 2(3s)

6. Phua, P.K.H. Ming, D., Lin, W. (2000). Neural Network with Genetic Algorithms Prediction, Fifth Conference of the Association of Asian-Pacific Operations Research Societies, 5-7th July, Singapore

7. Rumelhart, David E.; McClelland, James L. (1986). Parallel Distributed Processing : Explorations in the Microstructure of Cognition, Volume 1 : Foundations, Cambridge: MIT Press

8. Tsai, Tsiao (2010). Combining multiple selections for stock prediction: union, intersection and multi-intersection approachs, Decis. Support Syst, 50(1), 258-269

TÓM TẮT

Do tính biến động không ngừng của thị trường tài chính, dự báo giá cổ phiếu là một nhiệm vụ đầy thách thức. Nhiều nhà nghiên cứu đã cố gắng dự báo giá cổ phiếu bằng cách sử dụng các loại hình thống kê, các mô hình kinh tế lượng hay mạng nơ-ron nhân tạo (ANNs) khác nhau. Trong nghiên cứu này, chúng tôi sử dụng mô hình ANNs để dự báo giá đóng cửa của các mã cổ phiếu được niêm yết công khai trên sàn chứng khoán và thực nghiệm trên bộ số liệu của 2 mã cổ phiếu là VCB và VIB của 2 ngân hàng: Ngoại thương Việt Nam và Quốc tế Việt Nam. Kết quả cho thấy, các mô hình hoạt động khá hiệu quả, đặc biệt là khi số liệu không có biến động quá lớn với trung bình tuyệt đối của sai số tương đối chỉ khoảng 20%.

Từ khóa: mạng nơ-ron nhân tạo, mô hình dự báo, dự báo giá cổ phiếu, thuật toán truyền ngược


(Đăng trên Tạp chí Kinh tế và Dự báo số 6 tháng 2/2020)