Vì thị trường tài chính đầy rủi ro và cạm bẫy, cùng với tính chất biến động cao củatiền điện tử, nên hệ thông dự đoán xu hướng biến đổi tiền điện tử nhằm hỗ trợ người dùng ra quyết định
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA HE THONG THONG TIN
BUI HOANG NHAT PHUONG - 17520921
KHOA LUAN TOT NGHIEP
XAY DUNG HE THONG
DU DOAN XU HUONG BIEN DOI GIA TIEN DIEN TU
SU DUNG CAC MO HINH MAY HOC
Building a system for predicting Cryptocurrency price trends
using Machine Learning
KY SƯ NGANH HE THONG THONG TIN
TP HO CHÍ MINH, 2021
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA HE THONG THONG TIN
BUI HOANG NHAT PHUONG - 17520921
KHOA LUAN TOT NGHIEP XAY DUNG HE THONG
DU DOAN XU HUONG BIEN DOI GIA TIEN DIEN TU
SU DUNG CAC MO HINH MAY HOC
Building a system for predicting Cryptocurrency price trends
using Machine Learning
KY SƯ NGÀNH HE THONG THONG TIN
GIANG VIEN HUONG DAN TH.S DO THỊ MINH PHUNG
TP HO CHÍ MINH, 2021
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số
Ti8ầy của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
— Chủ tịch.
2 — Thu ký.
— Ủy viên.
~— Ủy viên.
Trang 4LOI CAM ON
Đầu tiên, em xin trân trọng gửi lời cảm ơn sâu sắc đến quý Thay, Cô giảng viên trường Đại học Công Nghệ Thông Tin đặc biệt là quý Thầy, Cô khoa Hệ thống thông tin, đã truyền đạt vốn kiến thức quý báu cho em trong quá trình học tập tại
trường, tạo nền tang và điều kiện tốt nhất cho em dé thực hiện dé tài Khóa luận tốt
nghiệp này.
Đặc biệt, em xin gửi lời cảm ơn chân thành và biết ơn sâu sắc đến cô Đỗ Thị Minh Phụng đã tận tình hướng dẫn em đề hoàn thành đề tài này Những góp ý, chia
sẻ và động viên của Cô đã giúp em có thêm động lực và kinh nghiệm để vượt qua
những khó khăn khi thực hiện khóa luận này.
Trong quá trình hoàn thành khóa luận tốt nghiệp, em đã học được rất nhiều
kiến thức bổ ích và vận dụng dé xây dựng ứng dụng cho đề tài khóa luận tốt nghiệp.
Tuy nhiên, do kinh nghiệm thực tiễn còn hạn chế nên khó tránh khỏi những sai sót Chính vì cậy, em rất mong nhận được những ý kiến đóng góp của quý Thay, Cô dé
em có thể hoàn thiện bản thân hơn.
Một lần nữa, em xin chân thành cảm ơn quý Thay, Cô, gia đình và bạn bè đã
tận tình giúp đỡ và tạo điều kiện tốt nhất để em có thé hoàn thành tốt khóa luận tốt
nghiệp của mình.
Sinh viên thực hiện đề tài
Bùi Hoàng Nhất Phương
Trang 5MỤC LỤC
Chương 1 GIỚI THIỆU TONG QUAN VE ĐÈ TAL -.-:-c-cc:+¿ 2
1.1 Đặt vấn đề 22 222 22222111 2.2212.111 re 2 1⁄2 Mục tiêu để tài 2222222cccS22222EE2 rrEEEEEEEEEErrEEEEEErrrrrrrrrrrrrrrrree 3 1.3 Đối tượng và phạm vi nghiên cứu ¿+z++222+++t+rrxxzrrerrxeccee 3
1.3.1 Đối tượng.
1.3.2 Phạm vi nghiên cứu + c5c5+S++t+ecstretererrrrrrrre 3
1.4 Phương pháp nghiên cứu
1.5 Các nghiên cứu liên quan -¿- + ¿5k k*kSkESE kg ri 4
1.6 Bồ cục báo cáo
Chương2 CO SỞ LÝ THUYẾT -2-222E©+2++2EEE++tEEEEEE+tSEEESzrrtrrrrcree 7 2.1 Lý thuyết về các thuật toán nơ-ron
2.1.1 Mạng nơ-ron nhân tạO - ces 552 S*2+£E+E+EvEvEekekeEerrkrkrkerree 7
2.1.1.1 M6 hình mạng nơ-rOI ¿- - - ¿5S Sk*k‡E‡EEEEEEkEkekrrkrkrkekrke 7
2.1.1.2 Hồi quy logistic -ccc-22222ccvcrtrtrrrtrtrrrirrrrrrrrrree 7
2.1.1.3 Mô hình tổng quát - -:¿: 22222vvvcvettEEEEkrtrrrrrrrrrrrrrrrrrre §
2.1.2 Recurrent Neural Network (RNN) cccceseerrirrrrrrre 9
2.1.3 Long short term memory (LSTM) - - + «5+ c+x+xcxevrecer 0
2.1.3.1 Ý tưởng cốt lõi của LTM ccc:c-522ccvvvcrrrrrrcrrrerrccee 1
2.1.3.2 Bên trong LSTM ou cece eee es cenesesescseseenesescersneseassessseaneaeee 2
2.1.4 Gated recurrent unit (GIÑRU) ¿se S+ 5+ +x+k+Ekexerekskekervree 6
2.1.4.1 Cổng update 222+cc222222ttE2221112222112 221111 re 7
2.1.4.2 Cổng reset c2 2222 n2 11 211112 8
2.1.4.3 Nội dung nhớ hiện tai (Curent memory conten†) - §
Trang 62.1.4.4 Bộ nhớ thời điểm hiện tại (Final memory at curent time step) L9
2.2 Các công nghệ chính trong dự án
2.2.1 Ngôn ngữ lập trình Python ¿6 cece cee Sserkskekeeree 20 2.2.2 — Javascript — Framework ReactJS
2.2.3 Hệ quan trị co sở dữ liệu MongoDB 55+ sccccxce+ 22
Chương 3 | PHAN TÍCH VÀ THIET KE HE THONG
BLL MUC COU eee 23
3.3.3 Xem các thông tin giá tiền điện tử -ccccc -+ + 27
3.3.4 Lựa chọn hiển thị các chỉ báo lên biểu đồ IÁ che, 28
3.3.5 Xem kết quả dự đoán giá đóng cửa của phiên hiện tại - 28 3.3.6 Hiển thị giá tiền điện tử theo thời gian thực - - 29
3.3.7 Xem tin tức tiền điện tử liên quan -.ccc:++22cvvvvccs+rrer 29
3.3.8 Dự đoán và Lựa chọn số phiên giao dịch -‹-+-« cex«ee 30
3.3.9 So sánh độ chính xác giữa các mô hình dự đoán khác nhau 30
3.3.10 So sánh kết quả dự đoán giữa các mô hình dự đoán khác nhau 31
3.3.11 Lựa chọn mô hình dự đoán mặc định - + ++++s=+s+>+s> 31
3.4 Thiết kế hệ thống ¿- 2+2++2222++2222EE+E22111122221112222111 221 re 32
Trang 73.5 Thiết kế cơ sở dữ liệu ¿-:-k+cStSESESEEEE2EEEEE12EEE11121511111151111 1112 cxe 33
3.5.2 Mô tả cấu trúc dữ liệu ¿ ¿- ++2++2E++E+EEerkerkrrrxerkerkerree 35Chương 4 | THU THẬP DU LIEU VÀ CÁC MÔ HÌNH DU ĐOÁN 40
4.1 Thu thập dữ liệu thông qua APÌ - -.- < 1s 1+ re 40
4.1.1 UU điểm -SccScc22ESEEEEkEEEEEEErrrkrrrrrrrrrkerrees 404.1.2 Thu thập dữ liệu sàn Binance qua APÌ - «5+ c+ccsseeess Al
4.2 Thao tác dữ liệu 211110131 vn n5 xe 43
4.2.2 Tiền xử lý dữ liệu -©EcEe+EEEEeEkrErrrrkerkerreee 43
4.2.3 Đánh giá độ chính Xác - - - 5< 3+ 3321113911111 Erkrrre 43
4.2.4 Dữ liệu dự đoán đầu vào -:- 5c c<+c+EkeEkerkrrrrrkerkerreee 44
4.2.5 Dữ liệu dự đoán đầu ra -©-c+©c+cxcvrkrrreerkesrkeerxees 45
4.3 Các mô hình -:- s¿++++Sx+Ek+EESEEESEEEEEEEE2215717121121171111 11111110 46
4.4 Huấn luyện dữ liệu 22-©2¿22+22EEt2EEE2EE2EE2EEE2EEEEESEErrrrerkrrrei 41
4.4.3 Ham mat mát (LOSS funCtiOR) - Ăn 1112 ng sec 48
4.5 Lựa chọn các tham SỐ St E‡EEk‡EEEEEEEEEEEEEEEEEEEEEEEEEEEEkrkrrkrkrkrrrre 48
Trang 84.7 Đánh giá các mô hìnhh - «xxx v1 TT HH ng HH y 55
Chương 5 XÂY DỰNG VÀ TRIÊN KHAI HỆ THÓNG - 62
5.1 Xây dựng mô-đun thu thập dữ liệu - 5 5555225 ***+kvsseeseeerseeeees 62
5.2 Xây dựng mô-đun API S€TV€T - G111 ng HH rưy 62
5.2.1 Môi trường phat triển -c+k+2E2ESEESEEeEErrrkrrkerkerree 62
5.2.2 CAch hoat d6ng 01727757 64
5.3 Xây dựng m6-dun ứng dung Web - - 5s + knHnHnHnHnHhnHggr 67
5.3.1 Môi trường triển khad eecceccsccecsesscessecesesssecssessscssecssecssecseeasecssecssesses 67
5.3.2 Mô tả giao diện người dùng - c5 + Scs* + sserseeeeserereere 68
5.4 Triển khai hệ thống -¿-2¿©2+©2++E++2EE2EEEEEEEEEESEEEEEEEEkkrrkrsrkerrrees 73
Trang 9DANH MỤC HÌNH
Hình 2.1 Mô hình hồi quy logistiC 2 2c + E+EE£EE2EE2EE2EEEEEEEeEEeEkeExrrxrrerei 7
Hình 2.2 Mô hình mang nƠ-TOII - - 5 2< 3322683118391 Erkerre 8
Hình 2.4 Chuỗi các mô-đun của RNN tiêu chuẩn với một lớp đơn giản 11Hình 2.5 Chuỗi các mô-đun LSTM có 4 lớp tương tác với nhau -. 11Hình 2.6 Trạng thái tế bao trong một mô-đun LSRM -2- ¿5252252 12
Hình 2.7 Cổng quên trong mạng LSTM ¿2-2 E+SE+E£+E£+E£E££EerEerxerxrrssee 13
Hình 2.10 Cập nhật giá trị đầu ra trong mạng LSTM ¿- ¿s2 15
Hình 2.11 Mô hình mang GRU đơn ÌẺ 5 5 5S + E#EEseEEeEeeeeserrerserske 16
Hình 2.12 Cổng update trong mô hình GRU 2- 5¿©+¿2£+2+++£xz+z+zzezrsz 17
Hình 2.13 Công reset trong mô hình GRU 2- 2 22 2S2+££+E+E+£E+zx+zxezszxez 18
Hình 2.14 Lược đồ xác định thông tin trong quá khứ được sử dụng - 19Hình 2.15 Lược đồ xác định thông tin tại thời điểm hiện tại -5¿5+ 20
Hình 3.2 Sơ đồ hoạt động chức năng Dang ký - 2 2 2+s+xecxezxerxerscee 26
Hình 3.4 Sơ đồ hoạt động chức năng Xem các thông tin giá tiền điện tử 27
Hình 3.5 Sơ đồ hoạt động chức năng Lựa chọn hiển thị các chỉ báo lên biểu đồ giá
TUG rIỆEHtỶtỶÝỶỒỶỒỖŨỒ a 28
Hình 3.7 Sơ đồ hoạt động chức năng Hiền thị giá tiền điện tử theo thời gian thực 29Hình 3.8 Sơ đồ hoạt động chức năng Xem tin tức tiền điện tử liên quan 29Hình 3.9 Sơ dé hoạt động chức năng Dự đoán & Lựa chọn số phiên giao dịch 30Hình 3.10 Sơ đồ hoạt động chức năng So sánh độ chính xác giữa các mô hình dự
đoán khác nhau ccc ccccccesceceseeeseseceesssssssssssssssssssssseesseeseeeseeeseeeessssssssssaees 30
Trang 10Hình 3.11 Sơ đồ hoạt động chức năng So sánh kết quả dự đoán giữa các mô hình dự
lfu8 410 1
Hình 3.12 Sơ đồ hoạt động chức năng Lựa chọn mô hình dự đoán mặc định 31 Hình 3.13 Sơ đồ hệ thống tổng quan -: +22++++222vv++ettvxvrrerrvsrrrrrr 33
Hình 3.14 Thiết kế cơ sở dữ liệu NoSQIL -cccccccccccccssccccc-rcec 3
Hình 4.1 Biểu đồ thé hiện độ chính xác của mô hình một lớp 4n GRU theo phiên dự đoán 10 ngày và dữ liệu đồng BTC với các giá trị số lượng đầu vào khác nhau 44 Hình 4.2 Biểu đồ hiển thị kết qua dự đoán cho giờ tiếp theo của đồng BTC với mô hình một lớp ân GRUU -2¿-222+£22V2+++222EE++222221222221111222111122111 tre 46 Hình 4.3 Mô hình GRU đơn giản với một lớp ân -2ccccccc++sccvcvcee AT Hình 4.4 Mô hình LSTM ba lớp An với dropout ccccccssssescsssssescsssseccsssseeseessseseessees 47
Hình 4.5 Biểu đồ thé hiện độ chính xác của mô hình một lớp 4n GRU theo phiên d đoán 1 ngày và dữ liệu đồng BTC với các số lượng nơ-ron khác nhau.
Hình 4.6 Biểu đồ thé hiện độ chính xác của mô hình một lớp 4n GRU theo phiên d đoán 1 ngày và dữ liệu đồng BTC với các hàm kích hoạt khác nhau nn)
Hình 4.7 Điều chỉnh tham số dé huấn luyện các mô hình „54
Hình 4.8 Xử lí kết quả và hiền thị kết quả đưới dạng biểu đồ 55
Hình 5.1 Giao diện trang Login của ứng dụng Web eects terete 68
Hình 5.2 Giao diện trang Register của ứng dung web - - s©++c+c+c+c<c+ 69
Hình 5.3 Giao diện tổng quan trang Home của ứng dụng web - 70 Hình 5.4 Giao điện vùng hién thị biểu đồ và các tùy chọn biểu đồ 71
Hình 5.5 Giao diện trang NOWS cccecesscececsceseseseeeseesesescsneeseseesseeneseseseeesneneaeecene 71
Hình 5.6 Giao diện trang PT€diCCL - - ¿55-5 +2 2S k2 2 2 111211 te 72
Hình 5.7 Kiến trúc REST cc:c:cccccc2222222222222EE tri 74
Hình 5.8 Kiến trúc Docker -:-: -i+::::!22nnhnhttttrre 75
Hình 5.9 Kiến trúc hạ tang của hệ thống -2++++2222vvvrrrrrrrrrrrxee 76
Trang 11DANH MỤC BANG
Bảng 3.1 Danh sách các tác nhân -¿- + ¿+ kg gu 24
Bảng 3.2 Bảng danh sách các USe-Case ¿¿55- 25 2+ 2t2t+xexexerrerererree 24
Bang 3.3 Bang mô ta collection PPFICG -¿- + 5° +52 S*2E‡E‡E‡EEEEkeEEEekrrkrkrkereree 35
Bảng 3.4 Bang mô tả collection PriceByDate 5-5525 552cc sex 36 Bảng 3.5 Bảng mô ta collection ModelL -¿- ¿+ ¿5c + +‡*‡‡££vvsxekekzrrerersee 36
Bảng 3.6 Bang mô tả collection Model Type - - 555 5+5++cccexsrcrkzkererrk 37 Bang 3.7 Bảng mô tả collection CTY(O «6 tk #EreErkererekskrkrkrerree 37 Bảng 3.8 Bảng mô ta collection DefaultModel +5 cs+c+ceveeererereee 38
Bảng 3.9 Bảng mô ta collection User 5S SE ‡‡2EEskekerrkrrrrrree 38
Bảng 3.10 Bảng mô tả collection CronLLOg - ¿5-5 2 25+ 5++x+£+£+£z£+xzxzeezrx 39
Bảng 4.1 Bảng mô tả các tham số API của sàn Binance - -z-2 Al Bảng 4.2 Bang mô tả độ chính xác của mô hình một lớp ẩn GRU theo từng phiên dự đoán với dữ liệu đồng BTC qua các số lượng đầu vào khác nhau 45
Bang 4.3 Bang mô tả độ chính xác của mô hình một lớp ẩn GRU theo từng phiên dự đoán với dữ liệu đồng BTC qua các số lượng nơ-ron khác nhau 48
Bang 4.4 Bang mô tả độ chính xác của mô hình một lớp 4n GRU theo từng phiên dự đoán với dữ liệu đồng BTC qua các hàm kích hoạt khác nhau - 51
Bang 4.5 Bang mô tả độ chính xác của 18 mô hình đề xuất khi phiên dự đoán là 1 giờ
của dữ liệu đồng BTC 2222222+2222222111222222222111112.221111111 1 1 55 Bảng 4.6 Bảng mô tả độ chính xác của 18 mô hình đề xuất khi phiên dự đoán là 10
ErWoiEi8ir2i8/00 8:77 57
Bang 4.7 Bảng mô tả độ chính xác của 18 mô hình đề xuất khi phiên dự đoán là 1 ngày của dữ liệu đồng BTC -222¿:+-222222 22 22222111112 c1 58 Bảng 4.8 Bang mô tả độ chính xác của 18 mô hình đề xuất khi phiên dự đoán là 10
ngày của dữ liệu đồng BTC : 2222V222++t222E22EEYvvrrrttrEEEkxrrrrrrrrrrrrrrrrree 59
Bang 5.1 Bảng mô tả các API của mô-đun API S€rV€r - ¿5555555 64 Bang 5.2 Bảng mô tả các query parameter của mô-đun API server - 66 Bang 5.3 Bang mô tả các path parameter của mô-đun API server
Trang 12Bang 5.4 Bảng mô tả các request body của mô-đun API server - 67 Bang 5.5 Bang mô tả giao dich trang LOBI1T s cà nnnnnnngxeg 68
Bảng 5.7 Bảng mô tả giao diện trang Home 5 + + sEesEeeeeskeree 70 Bang 5.8 Bảng mô tả giao diện vùng hiển thị biểu đỒ 2-5 55s s+zszss2 71
Bảng 5.9 Bang mô tả giao diện trang ÏÑeWS - HH HH Hư 72 Bảng 5.10 Bảng mô tả giao diện trang Predict - - ccs*cseseeeseessserske 72
Trang 13DANH MỤC TỪ VIET TAT
ADA Cardano (loại tiền điện tử)
ANN Artificial neural network
API Application programming interface
BNB Binance Coin (loai tién dién tir)
BTC Bitcoin (loại tiền điện tử)
DOM Document object model
ETH Ethereum (loại tiền điện tử)
GRU Gated recurrent unit
HTML Hypertext markup language
JSX Javascript + XML
LSTM Long-short term memory
LTC Litecoin (loại tiền điện tử)
MAPE Mean absolutr percentage error
RMSE Root mean square error
RNN Recurrent neural network
Trang 14TÓM TẮT KHÓA LUẬN
Đề tài khóa luận “Xây dựng hệ thống dự đoán xu hướng biến đổi giá tiền điện
tử sử dụng các mô hình máy học” là một đề tài hướng đến đối tượng người dùng thamgia giao dịch tiền điện tử Đây là đề tài quan trọng và có tính thực tế trong bối cảnhtiền điện tử đã trở thành xu hướng trong lĩnh vực tài chính
Vì thị trường tài chính đầy rủi ro và cạm bẫy, cùng với tính chất biến động cao củatiền điện tử, nên hệ thông dự đoán xu hướng biến đổi tiền điện tử nhằm hỗ trợ người
dùng ra quyết định giao dịch đúng đắn, thu được lợi nhuận với các chức năng cơ bản
như: hién thi thông tin về giá và chỉ báo lên biéu đồ giá, các tin tức mới nhất liên quanđến tiền điện tử và hién thị kết qua dự báo xu hướng giá tiền điện tử trong tương lai
Ngày nay, với sự phát triển của các phương pháp máy học đặc biệt là học sâu trong
lĩnh vực dự đoán giá tiền điện tử, con người sẽ có thêm một trợ thủ vô cùng đắc lực
dé có thé đưa ra những quyết định hợp lí mang lại lợi nhuận tốt nhất Sau khi tìmhiểu, khảo sát các bài báo nghiên cứu về dự đoán giá tiền điện tử Cùng với sự pháttriển của các phương pháp máy học đặc biệt là học sâu Với mục tiêu là xây dựng một
hệ thông dự đoán tiền điện tử băng các phương pháp máy học, em đưa ra hướng thực
hiện cho đê tài như sau:
- Tim hiéu các nghiên cứu, các mô hình máy học, học sâu như: Long-short
term memory, Gated Recurrent Unit, và các kiến thức liên quan
- _ Lựa chọn và áp dung các mô hình hiệu quả, tinh chỉnh mô hình dé đạt hiệu
quả tối ưu nhất song song với việc giảm thời gian huấn luyện
- Xây dựng hệ thông dự đoán với: dữ liệu cập nhật liên tục từ sàn giao dịch
Binance, sử dụng các mô hình máy học, học sâu để huấn luyện mô hình,phát triển ứng dụng Web dé hién thị kết quả dự đoán và các thông tin liên
quan.
Trang 15Chương 1.GIOI THIỆU TONG QUAN VE DE TÀI
không do ngân hàng trung ương phát hành và giá trị của chúng hoàn toàn dựa vào
cung và cầu trên thị trường Bitcoin (BTC) là đồng tiền điện tử đầu tiên được tạo ravào năm 2009 và tính tới năm 2020 có hơn 5400 loại tiền điện tử khác nhau như
Ethereum (ETH), Ripple (XRP),
Trong thi trường tài chính day rủi ro va cam bay, tiền điện tử không những phức tap
mà còn là một vấn dé tài chính khó hiểu do tính chất biến động cao của nó Do đó,các nhà đầu tư vào thị trường này cần công cụ nào đó đề dự đoán chính xác một phần
xu hướng hay mức giá tương lai của tiền điện tử Các dự đoán chính xác có thé hỗ trợ
các nhà đầu tư tiền điện tử đưa ra quyết định đầu tư đúng đắn và thu lại lợi nhuận
Theo Giả thuyết thị trường hiệu quả (EMH - efficien markets hypothesis), được
Eugene Fama dé cập lần đầu vào những năm 1970 trong bài viết “Efficient Capital
Markets: A Review of Theory and Empirical Work” [1] đã đưa ra rằng giá chứngkhoán là không thể dự đoán được Nhưng từ các nghiên cứu gần đây [2] [3] về dựđoán tiền điện tử, có thể nhận thấy các mô hình máy học hay học sâu đang đượcnghiên cứu, ứng dụng rộng rãi trong việc dự đoán giá tiền điện tử và đạt được nhữngthành công nhất định Có thê kê đến một số phương pháp máy học truyền thống như:
linear regression, decision tree Hay một số phương pháp học sâu ứng dụng mạng
nơ-ron như: recurrent neural network, convolutional neeural network,
Mục đích luận văn tôt nghiệp này của em nhăm tìm hiêu, nghiên cứu, so sánh các
phương pháp dự đoán giá tiên điện tử băng phương pháp học sâu cho một sô loại tiên
điện tử trên sàn hiện nay như: Bitcoin, Ethereum, Từ đó, làm chủ các công nghệ và
Trang 16xây dựng được một hệ thong du doan gia tiền điện tử Hỗ trợ được phần nao đó chocác nhà dau tư khi tham gia vào thị trường day rủi ro này.
1⁄2 Mục tiêu đề tài
Mục tiêu chung: Tìm hiểu các mô hình máy học, học sâu áp dụng cho việc dự đoán
giá tiền điện tử Từ đó, xây dựng được hệ thống hỗ trợ ra quyết định đầu tư cho các
nhà đầu tư tiền điện tử
Cụ thể:
- Tim hiểu các mô hình máy học, học sâu áp dụng cho việc dự đoán giá tiền
điện tử và tìm hiểu các đề tài nghiên cứu liên quan
- Lựa chọn và áp dụng các mô hình hiệu qua, tinh chỉnh mô hình dé đạt hiệu
quả tối ưu nhất song song với việc giảm thời gian huấn luyện
- - Xây dựng hệ thong dự đoán với: Dữ liệu liên tục được lay ttr san giao dich
Su dụng các mô hình máy học, hoc sâu dé huấn luyện mô hình Phát triểnmột ứng dụng web để hiện thị các kết quả dự đoán và thông tin liên quancủa tiền điện tử theo thời gian
1.3 Đối tượng và phạm vi nghiên cứu
1.3.1 Đối tượng
Nghiên cứu lý thuyết và cách áp dụng các thuật toán máy học dự đoán giá tiền điện
tử hiệu quả hiện nay: LSTM, RNN, GRU
Nghiên cứu ngôn ngữ Python với Framework FastAPI.
Nghiên cứu và ứng dụng kiến trúc REST (Representational State Transfer)
Nghiên cứu các yêu cầu kỹ thuật trong việc xây dựng ứng dụng website
Nghiên cứu các ứng dụng, kỹ thuật hỗ trợ thiết kế giao điện ứng dụng web
1.3.2 Phạm vi nghiên cứu
Các phương pháp máy học, học sâu được áp dụng trong lĩnh vực dự đoán xu hướng
biên đôi giá tiên điện tử.
Trang 17Dữ liệu giao dịch từ các sàn giao dịch tiền điện tử.
Framework hỗ trợ xây dựng các mô hình máy học, học sâu.
Nghiên cứu các yêu cau trong việc xây dựng ứng dụng web
Nghiên cứu các dịch vụ hỗ trợ thiết kế giao diện ứng dụng web
Ngôn ngữ lập trình: Python.
Thư viện: ReactJS, FastAPI, TensorFlow, Keras,
Hệ quan tri co sở dữ liệu: MongoDB.
1.4 Phuong pháp nghiên cứu
Phân tích, khảo sát một số bài báo liên quan trong lĩnh vực dự đoán tài chính
Tìm hiểu các mô hình máy học dự đoán giá tiền điện tử trong những bài báo khoa họcliên quan.
Nghiên cứu các phương pháp chuẩn hóa và tiền xử lý dữ liệu
Lựa chọn mô hình phủ hợp đề xây dựng hệ thống dự đoán
Tìm hiểu các giải pháp đề khắc phục những nhược diém của mô hình đã chon cũng như
các thách thức đề xây dựng một hệ thống hiệu quả
Tìm hiểu cách thu thập và lưu trữ dữ liệu liên tục từ các sàn giao dịch
Tìm hiểu và sử dụng các thư viện hỗ trợ xây dựng một mô hình máy học
Xây dựng và đánh giá mô hình.
Triển khai mô hình trên nền tảng ứng dụng web
1.5 Các nghiên cứu liên quan
Ngày nay, dé dự đoán xu hướng giá tiền điện tử, các nghiên cứu thường sử dụng dữliệu giá trong quá khứ được thu thập theo ngày Sử dụng dữ liệu đó dé huấn luyện các
mô hình có thé dự đoán được giá chứng khoán tương lai, rồi so sánh hiệu suất của
các mô hình dé rút ra được mô hình nào dự đoán gan đúng nhat.
Trang 18Từ nghiên cứu “Comparison of ARIMA and Artificial Neural Networks
models for stock price prediction” [4] của Ayodele Ariyo Adebiyi và các cộng sự.
Tác giả đã sử dụng hai phương pháp ARIMA va ANN dé dự đoán giá chứng khoán cho ngày tiếp theo Sử dụng dữ liệu chứng khoán của Dell Inc từ 17/08/1988 đến
25/02/2011 với tổng 5680 mẫu Đề đánh giá hiệu suất, tác giả sử dụng MSE (mean squared error), forecast error Thu được kết quả dự đoán của mô hình ANN có hiệu
suất tốt hơn so với ARIMA Điều này cũng chứng tỏ việc sử dụng các mô hình mạng
no-ron có tiêm năng rat cao
Trong nghiên cứu “Stock Price Prediction Using Machine Learning and
LSTM-Based Deep Learning Models” [5] của tác gia Sidra Mehtab va các cộng sự.
Để dự đoán giá chứng khoán cho tuần tiếp theo (tương ứng với 5 ngày) ho đã sử dung
bộ sit liệu biến động giá chứng khoáng hằng ngày dựa trên chỉ số NIFTY 50 từ 29/12/2014 đến 31/7/2020 Tiền sử lý dữ liệu với kỹ thuật chuẩn hóa min-max Họ
đã sử dụng các kỹ thuật khác nhau để dự đoán như: Decision Tree, Random Forest,
Artificial Neural Network, Support Vector Machine, Long-short term memory,
Sau đó dùng chỉ số Root Mean Square Error (RMSE) va Correlation dé đánh giá khả
năng dự đoán của các mô hình Và kết quả thu được là mô hình LSTM có hiệu suất
vượt trội hơn.
Trong nghiên cứu “A Gated Recurrent Unit Approach to Bitcoin Price
Prediction” [6] của tác giả Aniruddha Dutta và cộng sự Đề dự đoán giá Bitcoin theo
từng ngày, tác giả đã dùng dữ liệu chuỗi thời gian Bitcoin từ nhiều nguồn khác nhau
từ 1/1/2010 đến 30/6/2019 Sau đó đữ liệu được chuẩn hóa bằng cách hạ giá trị từng
chuỗi dữ liệu rồi chia cho độ lệch chuẩn của nó Bằng cách sử dụng các mô hình LSTM và GRU kết hợp với dropout hay lặp lại các dropout để huấn luyện dữ liệu.
Để đánh giá hiệu năng mô hình tác giả sử dụng độ đo RMSE Sau cùng, mô hình
GRU với dropout cho hiệu suất tốt nhất.
Hay trong đề tài Luận văn tốt nghiệp kỹ sư “Xây dựng hệ thống dự đoán xu hướng giá chứng khoán” [12] của tác giả Dư Gia Huy năm 2020 tại Đại học quốc gia
Trang 19TP Hồ Chí Minh, trường Đại học Công nghệ thông tin Tác giả đã dự đoán xu hướng
giá tiền của đồng Bitcoin cho 10 ngày tiếp theo bằng mô hình LSTM Tiền xử lý dữ
liệu bằng chuẩn hóa min-max, đo độ chính xác của mô hình bằng độ đo MAPE (Mean
absolute percentage error) Kết quả thu được mô hình với 3 lớp ân LSTM sử dụng
dropout có thê dùng đề dự đoán xu hướng giá chứng khoán
Từ những nghiên cứu trên, đối với đề tài khóa luận của mình, dựa theo [6] em nghiên
cứu sử dụng các mô hình dự đoán giá được xây dựng từ LSTM và GRU kết hợp vớidropout, tiền xử lý dữ liệu bằng min-max theo [5] và [12], đánh giá độ chính xác bằng
độ đo MAPE theo [12] rồi tiến hành dự đoán cho 4 phiên khác nhau gồm: 1 giờ, 1ngày, 10 giờ và 10 ngày, cho 5 loại tiền điện tử phố biến hiện nay như: Bitcoin,Ethereum, Litecoin, Cardano và Binance.
1.6 Bố cục báo cáo
Chương 1: Giới thiệu tổng quan về đề tài
Chương 2: Cơ sở lý thuyết
Chương 3: Phân tích và thiết kế hệ thống
Chương 4: Thu thập dữ liệu và các mô hình dự đoán dữ liệu
Chương 5: Xây dựng và trién khai hệ thống
Chương 6: Kết luận
Trang 20Chương 2.CƠ SỞ LÝ THUYET
Trong chương này, em sẽ trình bày về các lý thuyết liên quan đến các thuật toán, cáccông nghệ được sử dụng và nhắc đến trong khóa luận
2.1 Lý thuyết về các thuật toán nơ-ron
Học sâu là một trong những phương pháp máy học với những thuật toán được tạo ra
băng cách mô phỏng theo cấu trúc và cách thức hoạt động của mạng nơ-ron trong não
con người.
2.1.1 Mạng nơ-ron nhân tạo
Mạng nơ-ron nhân tạo (Artificial Neural network — ANN hay Neural Network)! là
một mô hình toán học hay mô hình tính toán được xây dựng dựa trên các no-ron sinh
học Nó gồm có một nhóm các nơ-ron nhân tao (nút) nói với nhau dé xử lý thông tin
Các nút thường được tô chức theo từng lớp Kiến trúc của ANN gồm 3 thành phần:
lớp đầu vào (input layer), lớp ân (hiden layer), lớp đầu ra (output layer)
2.1.1.1 Mô hình mạng nơ-ron
Mô hình mạng nơ-ron đơn giản nhất là hồi quy logistic (logistic regression) chỉ với 2
lớp: đâu vào và đâu ra.
2.1.1.2 Hồi quy logistic
.
Hình 2.1 Mô hình hồi quy logistic?
Ị Nguồn: https://en.wikipedia.org/wiki/Artificial_neural_network, truy cập ngày 07/07/2021
7 Nguôn: https://towardsdatascience.com/a-logistic-regression-from-scratch-3824468b1f88, truy cập ngày
07/07/2021
Trang 21Giả sử ta có mô hình như hình 2.2, để xác định giá tri đầu ra y, ta cần thực hiện quátrình tính toán sau:
Z=fi,Xw;+ +ƒf,xwna+b
y=ø0()
Trong đó:
- fir fo fy là giá trị của các thuộc tính đầu vào
- Wy4,W2, Wy là trọng số của từng giá trị đầu vào tương ứng
- pb hay bias là hệ số được thêm vào dé phương trình đường thăng z không
đi qua gốc tọa độ
- ơ là hàm kích hoạt nhằm điều chỉnh giá trị đầu ra nam trong khoảng [0, 1],
Hình 2.2 Mô hình mang no-ron?
Mạng nơ-ron được cấu tạo từ các lớp: lớp đầu vào, lớp an, lớp đầu ra Lưu ý, chỉ có
1 lớp đầu vào và 1 lớp đầu ra, còn lớp ân có thé có 1 hoặc nhiều lớp Số lượng nút ở
3 Nguồn: _
https://towardsdatascience.com/step-by-step-guide-to-building-your-own-neural-network-from-scratch-df64b 1c5ab6e, truy cập ngày 07/07/2021
Trang 22các lớp có thé khác nhau, hàm kích hoạt của mỗi nút có thé khác nhau: sigmoid,tanh, ReLU Trong mạng nơ-ron, trừ các nút thuộc lớp đầu vào thì các nút còn lại
đều được kết nối đầy đủ (fully-connected) với các nút ở lớp trước đó
2.1.2 Recurrent Neural Network (RNN)
Mang nơ-ron hồi quy (RNN)! được thiết kế dé xử lý chuỗi thông tin Với bai toán dựđoán giá tiền cho phiên tiếp theo, thì chúng ta cần phải biết giá của những phiên trước
đó Mà với các mạng nơ-ron truyền thống, thì tất cả đầu vào và ra đều độc lập vớinhau, không liên kết thành chuỗi với nhau, dẫn đến mô hình này không phù hợp vớicác bài toán Với RNN nó sẽ thực hiện cùng một tác vụ cho tất cả các phần tử củamột chuỗi với đầu ra phụ thuộc vào cả phép tính trước đó, vì vậy nó được gọi là môhình mạng nơ-ron hồi quy (RNN)
Một cách dễ hiểu hơn, RNN có thé được coi là nhiều bản sao chép của cùng một
mang, trong đó moi đâu ra cua mang này là dau vào của một mạng sao chép khác.
được thực hiện như sau:
- x, là dau vào tại bước t.
4 Nguồn: http:/www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introđuction-to-rnns/,
truy cập ngày 07/07/2021
Trang 23- Tại mỗi bước có một trạng thái ấn s¿ Nó chính là bộ nhớ của mạng s,
được tính toán dựa trên các trạng thái an phía trước va đầu vào tại bước đó:
Se = f (Ux, + Ws,_¡) Hàm ƒ thường là một hàm phi tuyến Dé làm phéptoán cho phan tử 4n đầu tiên, ta cần khởi tạo thêm s_¿, với giá trị thường
là 0.
- 0 là đầu ra tại bước £ Ví dụ như muốn dự đoán từ tiếp theo xuất hiện trong
câu thì : o; chính là một vectơ xác suất các của từng nhãn kết quả Giả sử
ta sử dung hàm kích hoạt softmax: 0, = soƒtmax(Vs,) Vectơ xác suất
0¿ cũng có thể được tính toán tương tự nếu ta sử dụng các hàm kích hoạt
khác như sigmoid, tanh, ReLU
Về mặt ký thuyết, RNN có thé xử ly và lưu trữ thông tin của một chuỗi có chiều dàibất kỳ Tuy nhiên, thực tế nó chỉ hiệu quả với chuỗi có chiều dài không quá lớn
nguyên nhân là do vanishing gradient được nghiên cứu sâu trong các bài báo của
Hochreiter (1991) và Hochreiter, et al (2001).
Dé khác phục nhược điểm trên, 2 biến thé của RNN là LSTM (Long short term
memory) va GRU (Gated Recurrent Units) đã ra đời Đây cũng là 2 mô hình được em
tìm hiểu sâu và áp dụng vào hệ thống
2.1.3 Long short term memory (LSTM)
LSTM là một mô hình phô biến nhất được sử dụng của RNN LSTM thé hiện sự ưu
việt ở điểm có thé nhớ được nhiều bước hơn mô hình RNN truyền thống Về cơ bản
thì cau trúc của LSTM giống với cau trúc RNN truyền thống, chỉ khác nhau ở cáchtính toán của các nút ân LSTM được thiết kế để tránh vấn đề phụ thuộc xa (long-term dependency) khi có thé nhớ được các thông tin trong thời gian dài
Mạng hồi quy có dạng là một chuỗi các mô-đun lặp đi lặp lại của mạng nơ-ron Với
RNN, các mô-đun này có cấu trúc rất đơn giản, thường là một hàm tanh (activation
function) duy nhất
5 Nguồn: https://colah github.io/posts/2015-08-Understanding-LSTMs/, truy cập ngày 07/07/2021
10
Trang 24Thông tin quan trọng nhất của LSTM là trạng thái tế bào (cell state) — đường chạy
thông ngang phía trên như hình 2.6 Trạng thái tế bào giống như băng truyền, chạy
xuyên suốt tất cả các nút mạng và chỉ tương tác tuyến tính đôi chút Vì vậy thông tin
có thé dé đàng được truyền đi thông suốt mà không sợ bị thay đồi
lãi
Trang 25Hình 2.6 Trạng thái tế bào trong một mô-đun LSRMLSTM có khả năng bỏ đi hay thêm vào các trông tin cần thiết cho trạng thái tế bào,chúng được điều chỉnh cần thận bởi các nhóm được gọi là công (gate).
Các công là nơi sàng lọc thông tin đi qua nó, chúng kết hợp bởi một lớp sigmoid và
0 thì bỏ toàn bộ thông tin.
12
Trang 26Hình 2.7 Cổng quên trong mạng LSTM
Ta có công thức:
fe = ø(M/ [he Xe] + br)
Với bài toán dự đoán giá tiền điện tử, dữ liệu dầu vào dạng chuỗi thời gian
(time-series), thì trạng thái tế bào có thể sẽ luôn mang thông tin về giá của những phiên
giao dịch trước đó và dựa vào nó dé dự đoán được giá của một hay nhiều phiên tiếp
theo Nhưng với những phiên giao dịch ở quá xa thời điểm dự đoán hay quá bấtthường, thi tang cổng quên sẽ loại bỏ những thông tin này vì nó không còn tác dụng
dé dự đoán
Tầng cập nhật (update gate layer): dé quyết định xem thông tin mới nào sẽ lưu vàotrạng thái tế bào Gồm có 2 phần Đầu tiên là sử dụng một tầng sigmoid được gọi làtầng cổng vào (input gate layer) dé quyết định xem giá trị nào sẽ được cập nhật Sau
đó sử dụng tầng tanh: tạo ra một véc-to có giá tri mới Ế nhằm thêm vào cho trạng
thái Kết hợp 2 giá trị đó lại để tạo ra một cập nhật cho trạng thái, dé quyét dinh xem
thông tin mới nao sẽ lưu vào trạng thái tê bào.
13
Trang 27định cập nhật mới giá tri trạng thái ra sao.
Như với bài toán dự đoán giá tiền điện tử, khi đến một phiên giao dịch mới, ta sẽthêm giá trị phiên mới này thay thế cho phiên cũ tương quan với nó
14
Trang 28Hình 2.9 Cập nhật trạng thái tế bào trong mạng LSTM
Ta có công thức:
Tang cong ra (Output gate layer): ta sẽ quyết định xem giá trị đầu ra mong muốn là
gì Gia tri dau ra sé dua vao trang thai té bao, nhung sé duoc tiép tuc sang loc Đầutiên, sử dụng tang sigmoid dé quyết định xem phần nào của trạng thái tế bào muốnxuất ra Rồi đưa trạng thái tế bào qua một hàm tanh dé trả về giá trị trong khoảng
[—1,1], và nhân nó với dau ra của công sigmoid.
he
Ta có công thức:
15
Trang 29ò¿ = ø(W@¿[h¿_+,x¿] + bạ)
Với bài tốn của chúng ra, chỉ cin xem giá trị các phiên trước đĩ mà LSTM cĩ thé
dự đốn được phiên tiếp theo., như từ 60 phiên giao dịch trước đĩ để dự đốn ra đượcgiá trị của phiên giao dịch tiếp theo như thế nào
2.1.4 Gated recurrent unit (GRU)
GRU¢® được coi là một biến thé cua LSTM vi chúng thiết kế gần tương tự nhau Điều
đặc biệt là GRU cĩ thé được đào tao dé giữ thơng tin từ lâu trước đĩ, khơng hề xĩathơng tin khơng liên quan đến dự đốn đầu ra
GRU khơng cĩ cell như LSTM mà chỉ cĩ đầu ra vừa dùng dé đưa ra quyết định vừadùng đề truyền thơng tin cho các bước tiếp theo Nĩ họat động nhanh hơn đơi chút sovới LSTM.
GRU cĩ 2 cơng: cổng update và cơng reset Về cơ bản, đây là hai vector quyết địnhthơng tin sẽ được truyền cho đầu ra
5 Nguồn: https:⁄/towardsdatascience.com/understanding-gru-networks-2ef37df6c9be, truy cập ngày
07/07/2021
16
Trang 302.1.4.1 Cổng update
'Ta có công thức sau:
Z, = ø(W2x, + UE)h,_¡)
Với: _ Z¿ là giá tri công update tại thời điểm t
x, là giá trị đầu vào tại thời điểm t
W® là trọng số của x;
h,_¡ là thông tin của các đơn vị tại thời điểm £ — 1 trước đó
U® là trọng số của hạ_¡
o là hàm sigmoid
Khi giá trị đầu vào x, được truyền vào mang, nó được nhân với trong số riêng W/)
của nó, rồi cộng với tích của thông tin các đơn vị h¿_¡ với trọng số riêng UTM của nó.Cuối cùng dùng hàm sigmoid dé biến đôi kết qua nằm trong khoảng [0, 1]
hị
Xt
Hình 2.12 Cổng update trong mô hình GRU
17
Trang 31Cổng update giúp xác định lượng thông tin trong quá khứ (t — 1) cần chuyển đếntương lai (£) Hữu ich cho quyết định giữ tat cả thông tin quá khứ và loại bỏ nguy cơ
mat mát gradient
2.1.4.2 Céng reset
Ta có công thức sau:
Trị = ø(WTx, + UThịr_1)
giống với công thức của cong update đã nêu trên, điểm khác biệt ở trọng số và mức
sử dung của công nay Dé tính toán giá tri công reset, cân truyền giá tri thông tin đơn
vị h;_¡ và giá tri dau vào x,, nhân chúng với trọng sô tương ứng của chúng, roi tính
tong kết quả va áp dụng hàm sigmoid
tl
Hình 2.13 Cong reset trong mô hình GRUCông nay dùng dé quyết định lượng thông tin trong quá khứ bị quên đi
2.1.4.3 Nội dung nhớ hiện tại (Curent memory content)
Thông tin nội dung bộ nhớ mới sẽ sử dụng cổng reset dé lưu trữ thông tin có liên quan
đên quá khứ có công thức sau:
h, = tanh (Wx, + ry©Uh;_1)
18
Trang 32Với: © là phép tích chập sẽ xác định những gi cần phải xóa khỏi thời điểm trước đó.Đâu tiên, nhân đầu vào x; với trọng số W.
Sau đó tính tích Hadamard (phan tử khôn ngoan) giữa công đặt lại r, và tích củah,_¡ với trọng số U Điều này sẽ xác định những gi cần loại bỏ từ các bước thời gian
Đầu ra của mạng là vector h,, chứa toàn bộ thông tin tại thời điểm t và truyền nó đi
Cần sử dụng công update, xác định thông tin thu thập từ nội dung bộ nhớ hiện tại hi
và từ các bước trước đó h;_;, có công thức như sau:
hy = Z¿@h¿_+ + (1 — z,)©h;
Đầu tiên áp dụng phép nhân chập giữa cổng update z, với h¿_¡ và giữa ht với (1 —
Z¿) rồi cộng kêt quả của chúng lại.
19
Trang 332.2 Cac công nghệ chính trong dự án
2.2.1 Ngôn ngữ lập trình Python
Python’ là ngôn ngữ lập trình hướng đối tượng bậc cao cho các mục đích lập trình đanăng do Guido van Rossum tạo ra và ra mắt năm 1991 Cú pháp đơn giản, dễ học, dễnhớ của Python làm nó nhanh chóng trở thành ngôn ngữ lập trình lý tưởng để viết
script và phát triển ứng dụng trong nhiều lĩnh vực, nền tang Cau trúc của Python cho
phép người dùng viết mã lệnh với số lần gõ phím tối thiéu
Python hoàn toàn tạo kiểu động và sử dụng cơ chế cấp phát bộ nhớ tự động Đượcphát triển trong một dự án mã nguồn mở, do tô chức phi lợi nhuận Python Software
Foundation quản lý.
Python thuộc nhóm những ngôn ngữ lập trình phổ biến nhất đặc biệt là ứng dụngtrong lĩnh vực trí tuệ nhân tạo và máy hoc theo bảng xếp hang của TIOBEŠ và PYPL?
năm 2021.
7 Nguồn: https://en.wikipedia.org/wiki/Python_(programming_ language), truy cập ngày 07/07/2021
8 Nguôn: https://www.tiobe.com/tiobe-index/python/, truy cập ngày 07/07/2021
? Nguôn: https://pypl.github.io/PYPL.html, truy cập ngày 07/07/2021
20
Trang 34Python là ngôn ngữ lập trình hang đầu dé giải quyết những bài toán yêu cầu việc xử
ly dữ liệu hay là học sâu khi cung cấp các thư viện mạnh mẽ liên quan: Keras, Pandas,
Numpy, Scikit-learn Python là một ngôn ngữ lập trình dễ dàng tiếp cận, miễn phí
và mã nguồn mở Đồng thời, Python hỗ trợ đa nền tảng, bao gồm cả MacOS,Windows, Linux Chính vì vậy, em lựa chọn Python làm ngôn ngữ lập trình chính đểgiải quyết vấn đề xử lý dữ liệu cho khoá luận
2.2.2 Javascript — Framework ReactJS
JavaScript’ là một ngôn ngữ kịch ban hoặc lập trình cho phép triển khai các tính
năng phúc tạp trên các trang web như: cập nhật nội dung động kip thời, tương tác với
bản đồ, tạo hiều ứng đồ họa 2D/3D Đây là lớp thứ ba tiêu chuẩn của công nghệ
Component của React được phát triển bởi Facebook, được coi như một công cụJavaScript mã nguồn mở ra mắt năm 2013 Component được đóng gói quản lý trạng
thái riêng của chúng, sau đó biên soạn dé có thể tạo những giao diện phức tap
Khi đã có ngôn ngữ lập trình Python để thực hiện việc xử lý đữ liệu, em sẽ chỉ cần
xây dựng một website với dé thé hiện những thông tin đã được xử lý Website nàycần phải có một hiệu suất tốt với đữ liệu sẽ liên tục được cập nhật, vì lẽ đó mà em sử
dụng ReactJS Với cơ chế DOM”? ảo, quá trình thử nghiệm giao diện sẽ được thựchiện nhanh hơn khi không cần tải lại DOM hoàn chỉnh mỗi lần thay đổi
10 Nguồn: https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/What_is_JavaScript, truy
cập ngày 07/07/2021
!! Nguồn: https://reactjs.org/, truy cập ngày 07/07/2021
12 Nguồn: https://www.w3schools.com/js/js_htmldom.asp, truy cập ngày 07/07/2021
21
Trang 35ReactJS còn giúp việc tạo ứng dụng web động dé dàng hơn khi sử dụng JSX3
(JavaScript Extension) cho phép trộn giữa code HTML và JavaScript Bên cạnh đó,
ReactJS còn là một thư viện phô biến cho việc xây dựng giao diện người dùng với rấtnhiều công cụ, thư viện hỗ trợ được phát triển phù hợp với mục tiêu khoá luận tốtnghiệp của em, tiêu biểu là react-stockchart hỗ trợ vẽ những biểu đồ thé hiện lịch sửgiá của các loại tiền điện tử
2.2.3 Hệ quản trị cơ sở dữ liệu MongoDB
NoSQL" là cơ sở dữ liệu phi quan hệ (Non-relational SQL) với nhiều kiểu dữ liệu
đa dạng như tài liệu, đồ thị, khóa — giá trị, tìm kiém, Có thé dé dang mở rộng dữliệu mà không cần quan tâm tới các điều kiện khóa ngoại, ràng buộc Tăng tốc độ,tính năng, khả năng mở rộng dữ liệu, mang đến trải nghiệm tốt hơn
MongoDB'Š là một hệ quản trị cơ sở dữ liệu mã nguồn mở, là một cơ sở đữ liệu hướng
tài liệu (document) thuộc NoSQL Trong MongoDB các dữ liệu được lưu trong document dạng JSON Với các khái niệm collection thay vì bang, document thay vì
row như trong cơ sở dữ liệu quan hệ MongoDB hiện đứng top 5 hệ quản trị cơ sở dữ
liệu pho biến nhất và là top 1 co sở dữ liệu phi quan hệ theo trang DB-Engines'9
Đề mở ra những tuỳ chọn nâng cấp hệ thống trong tương lai, ngoài ra hiệu năng sửdụng cũng phải được đảm bảo khi hệ thống cần ghi lại lượng dữ liệu tăng dần theothời gian Em lựa chọn NoSQL trong quá trình xây dựng và phát triển ứng dụng Vớiviệc là hệ quản trị cơ sở dữ liệu phi quan hệ phô biến nhất, MongoDB cũng sở hữumột cộng đồng phát trién lớn mạnh MongoDB còn có thê dé dàng kết hợp với nhữnglựa chọn phát triển hệ thống của nhóm thông qua ngôn ngữ lập trình Python (hoặc
JavaScript) bằng cách sử dụng thư viện như pymongo (hoặc mongoose)
13 Nguồn: https://reactjs.org/docs/introducing-jsx.html, truy cập ngày 07/07/2021
'4 Nguồn: https://www.mongodb.com/nosql-explained, truy cập ngày 07/07/2021
15 Nguồn: https://www.mongodb.com/, truy cập ngày 07/07/2021
16 Nguồn: https://db-engines.com/en/ranking, truy cập ngày 07/07/2021
22
Trang 36Chương 3 PHAN TÍCH VÀ THIẾT KE HE THONG
31 Muc tiêu
Các mục tiêu em đặt ra cho hệ thống dự đoán giá tiền điện tử:
- Có khả năng tiếp nhận nguồn dữ liệu mới linh hoạt, liên tục
- _ Tốc độ xử lý truy xuất dữ liệu nhanh
- _ Tích hợp các chỉ báo cho biéu dé giá.
- Tao ra các mô hình dự đoán và huấn luyện với các mô hình học sâu như
GRU và LSTM và lựa chọn ra những mô hình hiệu qua nhất
- Dễ dàng thay đổi mô hình dự đoán, so sánh kết quả dự đoán của các mô
Trang 373.2.1 Sơ đồ tổng quát
Lựa chọn hiển thị các
chỉ báo lên biểu đồ giá
Hiển thị giá tiền điện tử
Xem kết quả dự đoán giá An
theo thời gian thực
đóng cửa của phiên hiện tại
Bang 3.1 Danh sách các tác nhân
STT Tác nhân của hệ thống Y nghĩa
1 Người sử dụng Người sử dụng ứng dụng web
3.2.3 Danh sách các Use-case
Bang 3.2 Bảng danh sách các Use-case
STT Tên Use-case Y nghĩa
1 Dang ky Dang ky tai khoan website
24
Trang 382 Đăng nhập Đăng nhập website
3 Xem các thông tin về giá tiền | Xem thông tin chỉ tiết về giá các loại tiền
điện tử điện tử theo thời gian dựa vào biểu đồ và
các chỉ số liên quan
4 | Lựa chọn hiển thị các chỉ báo | Thay đổi các thành phan hiên thị lên biểu
lên biểu đồ giá đồ giá
5 Xem kết quả dự đoán giá | Dự đoán nhanh giá tiền ảo trong khoảng
đóng cửa của phiên hiện tại | thời gian tới dựa trên mô hình máy học
mặc định đã thiết lập bởi người dùng
6 | Hiên thi giá tiền điện tử theo | Hiên thị thông tin giá tiền điện tử (giá hiện
thời gian thực tại, tỉ lệ tăng giảm qua 24 giờ ) theo thời
gian thực
7 Xem các tin tức tiền điện tử | Liệt kê các tin tức về tiền ảo liên quan
liên quan
8 Dự đoán giá các loại tiền điện | Dự đoán giá tiền ảo trong khoảng thời
tử gian sắp đến dựa vào các mô hình máy
học
9 Lựa chọn số phiên giao dịch | Thay đôi số phiên giao dịch tiếp theo cần
tiếp theo cần dự đoán được ra dự đoán
10 So sánh độ chính xác giữa | Thể hiện các thông tin đánh giá của các
các mô hình dự đoán khác | mô hình dự đoán và mô tả kết quả dự đoán
nhau của các mô hình với nhau
11 So sánh kết quả dự đoán giữa | Thê hiện thông tin dự đoán của các mô
Trang 3912 Lựa chon mô hình dự đoán | Chọn mô hình mặc định dé kết quả dự
mặc định đoán của mô hình này hiển thị lên trang
Chuyển đến trang Login
Hình 3.2 Sơ do hoạt động chức năng Đăng ký
26
Trang 40Lưu mã JWT vào local Tạo mã JWT bí mật
Gửi mã JWT trên Header Kiểm tra có tài khoản tương
Authorization ứng với mã JWT không
Gửi thông tin tài khoản tương ss Khong có
ứng 6
Hình 3.3 Sơ do hoạt động chức nang Đăng nhập
3.3.3 Xem các thông tin giá tiền điện tử
Activity Diagram: Hiển thị thông tin giá tiền điện tử
Website API server
Chọn loại tiền điện tử loại biểu đồi loại phiên cần hiển thị
Gửi yêu cầu thời gian phiên gần
nhất
Trả về kết quả thời gian đóng
của của phiên giao dịch gần
nhất
Nhận giá trị thời gian mới nhất |#-|—————————
Gửi yêu cầu dữ liệu lịch sử giá Kiểm tra dữ liệu đã được cache
Lưu kết quả vào cache
Định dạng lại dữ liệu sang