Bảng user roles

Một phần của tài liệu Xây dựng ứng dụng và áp dụng giải thuật học máy cho thị trường chứng khoán việt nam (Trang 58)

49

Thiết kế giao diện

Ở mục này sẽ trình bày một vài giao diện chức năng chính của hệ thống.

a. Chức năng quản lý bot thu thập dữ liệu

Sau khi Admin đăng nhập ,hệ thống sẽ chuyển đến màn quản lý danh sách

thiết lập báo

Hình 3.36. Thiết kế giao diện danh sách bot

Ở màn hình này sẽ hiển thị danh sách các báo đang được thu thập

Click vào nút “Thêm báo” hệ thống sẽ chuyển đến màn “Cài đặt thiết lập báo”

50

Trên màn hình Danh sác thiết lập báo, click vào biểu tượng setting ở cột Lần chạy tiếp, sẽ hiện lên cửa sổ cấu hình lịch chạy tự động.

Hình 3.38. Thiết kế giao diện cài đặt chạy

b. Theo dõi cổ phiếu

Khi người dùng vào trang chủ hệ thống sẽ hiện thị ra những danh sách tin tức

mới nhất liên quan đến thị trường chứng khoán.

51 Trên thanh nav-bar, click vào menu Watch List, trang web chuyển đến màn danh sách watch list. Người dùng có thể theo dõi các tin tức đã được gán nhãn của các cổ phiếu đang theo dõi.

Người dùng có thể thêm các cổ phiếu mình cần theo dõi vào watch list hiện tại hoặc tạo watch list mới.

52

Khi click vào cột dự đoán, sẽ hiện lên popup dự đoán giá cho 5 ngày tiếp theo:

Hình 3.41. Thiết kế giao diện dự đoán giá cổ phiếu cho 5 ngày tiếp theo

Công nghệvà thư viện sử dụng

3.5.1 Web framework Spring Boot

Spring Boot[7]là một Java framework được phát triển bởi Pivital Team dựa trên Java framework mã nguồn mở để tạo ra các microservice, nhằm mục đích xây dựng các ứng dụng Spring độc lập một cách nhanh chóng và có khả năng thực thi ngay.

Sau khi sử dụng Spring Boot để lậptrình ứng dụng Spring, bạn có thể chạy ngay

ứng dụng của mình mà không cần phải config (cấu hình) quá nhiều. Những đặc điểm nổi bật của Spring boot:

 Spring Boot được phát triển tối ưu sao cho việc cấu hình XML trở nên đơn

giản nhất trong Spring.

 Spring Boot được phát triển sao cho việc lập trình trở nên nhanh chóng và

dễ dàng.

 Gia tăng năng suất trong lập trình.

53

3.5.2 Vuejs

Vue[8] là một progressive framework dùng để xây dựng giao diện người dùng

(UI). Không giống các monolithic framework. Core của Vue chỉ tập trung vào lớp view mà và nó rất dễ để làm quen hay tích hợp với các thư viện hoặc các project có sẵn.Hơn nữa, Vue lại chứa đựng một sức mạnh rất lớn trong việc xây dựng Single-Page

Applications khi được kết hợp với công cụ build và các thư viện/component được xây dựng bởi cộng đồng.

Trước sự tồn tại của hàng loạt các framework, thư viện Javascript vô cùng mạnh

mẽ như React, Angular, VueJS nổi bật và trở thành lựa chọn lý tưởng hàng đầu của

các lâp trình viên khi phát triển ứng dụng bởi những lý do sau.

 Hiệu suất vô cùng cao: Là một framework linh động với nhiều tính năng

được kế thừa từ đối thủ và khả năng mở rộng cao, VueJS mang lại hiệu suất vô cùng cao trong các dự án phát triển. Lập trình viên chỉ cần dùng một framework duy nhất để tạo ra các app.

 Kho thư viện lớn, hỗ trợ xây dựng giao diện một cách nhanh chóng.

 Đơn giản và dễ học: VueJS rất đơn giản, dễ học và dễ áp dụng vào trong

các dự án, tài liệu dễ hiểu.

3.5.3 Redis queue

Redis queue[9]là một dạng nosql key-value được sử dụng phổ biến. Mỗi value có

một key tương ứng. Redis là dạng in-memory database, data được lưu trữ trên ram nên

việc truy xuất rất nhanh. Redis thường xuyên được sử dụng như một bộ nhớ đệm, secondary database, hoặc sử dụng như một queue để chung chuyển data.

3.5.4 Sklearn

Scikit-learn (Sklearn)[10]là thư viện mạnh mẽ nhất dành cho các thuật toán học máy được viết trên ngôn ngữ Python. Thư viện cung cấp một tập các công cụ xử lý các bài toán machine learning và statistical modeling gồm: classification, regression,

clustering, và dimensionality reduction.

Nhóm thuật toán được xây dựng bởi thư viện scikit-learn

 Clustering: Nhóm thuật toán Phân cụm dữ liệu không gán nhãn. Ví dụ thuật

54

 Cross Validation: Kiểm thử chéo, đánh giá độ hiệu quả của thuật toán học

giám sát sử dụng dữ liệu kiểm thử (validation data) trong quá trình huấn luyện

mô hình.

 Datasets: Gồm nhóm các Bộ dữ liệu được tích hợp sẵn trong thư viện. Hầu như các bộ dữ liệu đều đã được chuẩn hóa và mang lại hiêu suất cao trong quá trình huấn luyện như iris, digit, ...

 Dimensionality Reduction: Mục đích của thuật toán này là để Giảm sốlượng

thuộc tính quan trọng của dữ liệu bằng các phương pháp như tổng hợp, biểu diễn dữ liệu và lựa chọn đặc trưng. Ví dụ thuật toán PCA (Principal

component analysis).

 Ensemble methods: Các Phương pháp tập hợp sử dụng nhiều thuật toán học tập để có được hiệu suất dự đoán tốt hơn so với bất kỳ thuật toán học cấu

thành nào.

 Feature extraction: Trích xuất đặc trưng. Mục đích là để định nghĩa các thuộc tình với dữ liệu hình ảnh và dữ liệu ngôn ngữ.

 Feature selection: Trích chọn đặc trưng. Lựa chọn các đặc trưng có ý nghĩa trong việc huấn luyện mô hình học giám sát.

 Parameter Tuning: Tinh chỉnh tham số. Các thuật toán phục vụ việc lựa chọn tham số phù hợp để tối ưu hóa mô hình.

 Manifold Learning: Các thuật toán học tổng hợp và Phân tích dữ liệu đa

chiều phức tạp.

 Supervised Models: Học giám sát. Mảng lớn các thuật toán học máy hiện nay.

Ví dụ như linear models, discriminate analysis, naive bayes, lazy methods,

neural networks, support vector machines và decision trees.

3.5.5 Fasttext

FastText[11]là một phương pháp nhúng từ khác là một phần mở rộng của mô hình word2vec được tạo bởi phòng thí nghiệm Nghiên cứu AI (FAIR) của Facebook. Thay vì học trực tiếp vectơ cho các từ, fastText biểu thị mỗi từ dưới dạng n-gam ký tự. Điều này giúp nắm bắt ý nghĩa của các từ ngắn hơn và cho phép nhúng hiểu các hậu tố và

tiền tố. Khi từ đã được biểu diễn bằng ký tự n-gram, một mô hình bỏ qua gram được

55

trên một từ vì không tính đến cấu trúc bên trong của từ. Miễn là các ký tự nằm trong cửa sổ này, thứ tự của n-gram không quan trọng.FastText hoạt động tốt với các từ hiếm. Vì vậy, ngay cả khi một từ không được nhìn thấy trong quá trình đào tạo, nó có thể được chia nhỏ thành n-gram để nhúng.

3.5.6 Deeplearning4j

Deeplearning4j[12]là một trong những thư viện học máy mã nguồn mở mạnh nhất được sử dụng trong java. Nó cung cấp khung tính toán cho các thuật toán phát triển dựa trên học sâu khác nhau. Khung tính toán phân tán của nó thừa hưởng Apache

Hadoop và Spark framework cho các mô hình ML đào tạo. Mô-đun này được phát triển

bằng ngôn ngữ lập trình Java. Nó có khả năng tương thích với bất kỳ ngôn ngữ JVM nào sử dụng Kotlin, Scala,…

56

CHƯƠNG 4. KIỂM THỬ VÀ ĐÁNH GIÁ Chức năng phần mềm

4.1.1 Khối thu thập dữ liệu

a. Dữ liệu tin tức

Hệ thống đã cung cấp bộ thu thậptin tức từ các trang tin tức chứng khoán lớn ở

Việt Nam. Dữ liệu tin tức thu thập hiện tại khoảng 400.000 bài viết đến từ 4 đầu báo lớn ở Việt Nam: tinnhanhchungkhoan.vn, cafef.vn, fireant.vn, vietstock.vn

Hình 4.1. Danh sách thiết lập báo

Độ trễ thu thập từ các báo trong hệ thống được cấu hình mặc định là 15 phút lấy tin tức 1 lần. Admin có thể thiết lập lại cấu hình này từ trang quản lý crawler.

Admin có thể dễ dàng cấu hình tắt bật bộ thu thập cũng như theo dõi trạng thái của bộ thu thập đối với từng trang báo.

b. Dữ liệu chỉ số mã chứng khoán

Hệ thống đã thu thập thông tin lịch sử theo ngày của hơn 1600 mã cổ phiếu đến từ 3 sàn Hose, Upcom và Hnx trong khoảng 10 năm, bắt đầu từ ngày 16/11/2010 đến

30/12/2021. Các thông tin lịch sử của 1 mã cổ phiếu bao gồm: giá đóng cửa, giá mở cửa, ngày, khối lượng, giá cao nhất trong ngày, giá thấp nhất trong ngày và 1 số thông

tin khác.

Dữ liệu thông tin của các mã cổ phiếu được thu thập định kỳ hằng ngày vào lúc

57

4.1.2 Khối ứng dụng hỗ trợnhà đầu tư

Dữ liệu tin tức được tổng hợp và phân loại theo nhóm. Người dùng cũng có thể

tạo các nhóm tin tức cho từng nhóm cổ phiếu riêng để theo dõi. Hình ảnh bên dưới là

tin tức về nhóm cổ phiếu ngành ngân hàng. Rất nhiều tin tích được đưa ra, kỳ vọng một xu thế tăng trong những phiên tới của họ cổ phiếu ngân hàng.

Hình 4.2. Ví dụ tin tức về nhóm cổ phiếu ngành ngân hàng

Người dùng có thể xem thêm dự đoán giá cho cổ phiếu quan tâm. Hình ảnh bên

dưới cho dự đoán giá 3 ngày tiếp theo (T+1, T+2, T+3) của cổ phiếu MBB.

58

Đánh giá môhình học máy

4.2.1 Đánh giá mô hình phân tích sắc thái tin tức

a. Cơ sở lý thuyết

Cách đánh giá mô hình phân tích sắc thái tin tức trong luận văn này thông qua các độ đo Precision, Recall.

Hình 4.4. Phương pháp đánh giá Precision và Recall [13]

Trong đó Precision được định nghĩa là tỉ lệsố điểm Positive mô hình

dự đoán đúng trên tổng số điểm mô hình dự đoán là Positive. Recall được

định nghĩa là tỉ lệsố điểm Positive mô hình dự đoán đúng trên tổng số điểm thật sự là Positive (hay tổng số điểm được gán nhãn là Positive ban đầu).

Precision cao đồng nghĩa với việc độ chính xác của các điểm tìm được là cao. Recall cao đồng nghĩa với việc True Positive Rate cao, tức tỉ lệ bỏ sót các điểm thực sự positive là thấp.

59

b. Kết quả thực nghiệm

Thử nghiệm trên cấu hình fastest đã nêu ở bước cài đặt (mục 3.3.1) với bộ dữ liệu test đã được gán thủ công 3 loại nhãn:

- Tích cực: 80 bài

- Tiêu cực: 80 bài

- Tích cực: 80 bài

Kết quảthu được:

Precision = 0.703125, Recall = 0.703125

4.2.2 Đánh giá mô hình dựđoán giá với LSTM

a. Cơ sở lý thuyết

Để đánh giá mô hình LSTM, trong bài luận văn này tôi xin sử dụng phương

pháp đánh giá MAE (Mean Absolute Error, sai số trung bình tuyệt đối) và phương

pháp tính RMSE(Root Mean Squared Error, sai số bình phương trung bình gốc)

MAEđo lường mức độ trung bình của các lỗi trong một tập hợp các dự đoán,

mà không xem xét hướng của chúng. Đó là trung bình trên mẫu thử nghiệm về sự khác biết tuyệt đối giữa dự đoán và lượng quan sát thực tế, trong đó tất cả các khác biệt với trọng số bằng nhau.

RMSEđánh giá chất lượng của một ước lượng (ví dụ, một hàm toán học lập

bản đồ mẫu dữ liệu của một tham số của dân số từ đó các dữ liệu được lấy mẫu) hoặc một yếu tố dự báo (ví dụ, một bản đồ chức năng có số liệu vào tùy ý để một

mẫu của các giá trị của một sốbiến ngẫu nhiên). Định nghĩa của một RMSE khác

với những gì tương ứng cho dù là một trong những mô tả một ước lượng, hay một yếu tố dự báo.

[14]

60

b. Kết quả thực nghiệm

Dữ liệu thử nghiệm thử nghiệm trong luận văn lấy từ website fireant.vn (web

site tổng hợp thông tin về thị trường chứng khoán Việt Nam). Thử nghiệm dùng

chuỗi 22 ngày liên tiếp (~ 1 tháng) để dự đoán giá đóng cửa của 3 ngày sau.

Bảng bên dưới mô tảgiá trị đầu vào thử nghiệm với model thu được ở bước

cài đặt(mục 3.3.2).

Bảng 4.1. Bảng mô tả giá trị đầu vào thử nghiệm

Stt Công ty Mã thị trường Ngày bắt đầu Ngày kết thúc Dữ liệu đầu vào

1 CTCP Nhựa An Phát Xanh AAA

22/04/2021 31/12/2021 Giá mở cửa Giá đóng cửa Giá cao nhất Giá thấp nhất Khối lượng

2 Ngân hàng TMCP Đầu tư và

Phát triển Việt Nam (BIDV) BID

3 Ngân hàng thương mại cổ phần

Á Châu ACB

Mã AAA: RMSE: 1.45 MAE: 183.77

Hình 4.5. Kết quả dự báo giá cổ phiếu AAA từ ngày 22/04/2021 đến ngày 31/12/2021

61

Mã BID: RMSE: 2.69 MAE: 373,82

Hình 4.6. Kết quả dự báo giá cổ phiếu BID từ ngày 22/04/2021 đến ngày 31/12/2021

Mã ACB: RMSE: 2.32 MAE: 292.93

Hình 4.7. Kết quả dự báo giá cổ phiếu ACB từ ngày 22/04/2021 đến ngày 31/12/2021

Kết quả thu được với độ chính xác chưa cao, nhưng cũng đã phần nào dự đoán được xu hướng đi của các mã cổ phiếu.

62

CHƯƠNG 5. KẾT LUẬN

Luận văn đã trình bày một phương pháp tiếp cận trong đó ứng dụng kỹ thuật học máy vào việc thu thập, phân loại tin tức và đưa ra dự báo chỉ số giá cổ phiếu ápdụng

cho các nhà đầu tư trên thị trường chứng khoán Việt Nam. Trong quá trình thực hiện

luận văn, tôi đã gặp phải nhiều vấn đề trong việc tiếp cận bài toán, nghiên cứu lý thuyết,

các tài liệu liên quan và các mã nguồn mở để tìm ra giải pháp phù hợp. Với sự nỗ lực

của bản thân và sự hướng dẫn tận tình của giảng viên hướng dẫn, tôi đã hoàn thành

được luận văn tốt nghiệp với những kết quả đạt được như sau:

Các kết quả đạt được của luận văn:

Về nghiên cứu:

- Tìm hiểu các kỹ thuật để thu thập dữ liệu từ các website

- Tìm hiểu các bước triển khai để xây dựng mô hình phân loại ngôn ngữ

- Nắm được phương pháp triển khai mạng LSTM để xử lý các chuỗi dữ liệu

Về ứng dụng:

- Trên cơ sở nghiên cứu lý thuyết và quan sát thực tiễn, luận văn đã xây dựng

được công cụ thu thập dữ liệu từ một trang website đơn giản.

- Xây dựng được ứng dụng hỗ trợ theo dõi và phân loại tin tức về chứng khoán

và các chỉ số khác trên thị trường chứng khoán, từ đó giúp nhà đầu tư có thể

nắm bắt tin tức theo từng nhóm tin tức hoặc theo cổ phiếu trong watch list

theo dõi.

- Xây dựng được công cụ dự báo chỉ số giá cổ phiếu trong ngắn hạn, nhằm hỗ

trợ nhà đầu tư trong việc đưa ra quyết định đầu tư và quản lý rủi ro cho danh mục đầu tư.

Những điểm hạn chế:

 Do điều kiện về trang thiết bị có hạn, dữ liệu về thị trường thu thập chưa lớn.

 Số lượng kết quả về các dự đoán chưa nhiều dẫn đến việc đánh giá độ chính

xác của mô hình dự đoán giá còn hạn chế.

Định hướng phát triển trong tương lai:

 Hiện tại giá cổ phiếu được dự báo trong ngắn hạn trên cơ sở các dữ liệu về

khối lượng giao dịch, giá mở cửa, giá đóng cửa, giá cao nhất trong phiên, giá

thấp nhất trong phiên. Trong thời gian tới, cùng với việc tìm hiểu thêm các kỹ thuật thu thập và phân tích dữ liệu cùng với quan sát và đánh giá từ thực tiễn, việc dự báo giá cổ phiếu sẽ được mở rộng và sử dụng nhiều công cụ chỉ

63

báo hơn nhằm tăng tính chính xác cho việc dự báo, giúp nhà đầu tư có công

cụ hiệu quả trong việc đưa ra quyết định đầu tư và giảm thiểu rủi ro.

 Tối ưu lại các bước trực quan hóa dữ liệu cho mô hình LSTM để tăng hiệu

quả trong việc dự báo.

 Thu thập thêm thông tin bình luận của các nhà đầu tư trên thị trường chứng

khoán từ các kênh khác, từ đó đánh giá và phân tích được tâm lý nhà đầu tư

64

TÀI LIỆUTHAM KHẢO

[1] Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean, Efficient Estimation of Word Representations in Vector Space

[2] Tomas Mikolov, Quoc V, Le, Ilya Sutskever, Exploiting Similarities among Languages for Machine Translation Paper

[3] McCormick, C, (2016, April 19), Word2Vec Tutorial - The Skip-Gram Model,

Một phần của tài liệu Xây dựng ứng dụng và áp dụng giải thuật học máy cho thị trường chứng khoán việt nam (Trang 58)

Tải bản đầy đủ (PDF)

(74 trang)