1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đồ án môn lập trình python cho phân tích dữ liệu nghiên cứu và phân tích những dữ liệu chứng khoán của bốn ngân hàng tại việt nam

19 550 1
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đồ Án Môn Lập Trình Python Cho Phân Tích Dữ Liệu Nghiên Cứu Và Phân Tích Những Dữ Liệu Chứng Khoán Của Bốn Ngân Hàng Tại Việt Nam
Tác giả Nguyen Thi Bao Vy, Nguyen Nhat Nam, Bui Huu Nhan, Nguyen Thi Thanh Ngan, Dao Phuc Ngan
Người hướng dẫn Pham Thanh An
Trường học Trường Đại Học Ngân Hàng Thành Phố Hồ Chí Minh
Chuyên ngành Lập Trình Python Cho Phân Tích Dữ Liệu
Thể loại Đồ án
Năm xuất bản 2023
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 19
Dung lượng 4,21 MB

Nội dung

Không chỉ vì cổ phiếu ngân hàng có mức độ an toàn cao mà còn vì cổ phiếu ngân hàngluôn có vị trí hàng đầu trên thị trường chứng khoán Việt Nam xét trên nhiều khía cạnh.Sự biến động của n

Trang 1

NGÂN HÀNG NHÀ NƯỚC VIỆT NAM BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC NGÂN HÀNG THÀNH PHỐ HỒ CHÍ MINH

-ĐỒ ÁN MÔN: LẬP TRÌNH PYTHON CHO PHÂN TÍCH DỮ LIỆU

NGUYỄN THỊ BẢO VY 050609211752 NGUYỄN NHẬT NAM 050609210797 BÙI HỮU NHÂN 050609212086 NGUYỄN THỊ THANH NGÂN 050609210847 ĐÀO PHÚC NGÂN 050609210858

Lớp học phần: DAT708_222_9_L15 Khóa học: Khóa 9

GVHD: PHẠM THANH AN

Thành phố Hồ Chí Minh, tháng 3 năm 2023

Trang 2

LỜI MỞ ĐẦU

Ở thời điểm hiện tại, có lẽ khi nhắc đến cổ phiếu Ngân hàng trên thị trường chứng khoán Việt Nam thì chắc hẳn sẽ có không ít nhà đầu tư “ngán ngẩm” mà hồi tưởng lại một thời làm mưa làm gió của nhóm cổ phiếu này Thời mà cổ phiếu ngân hàng được coi là “cổ phiếu vua” trên thị trường Nhưng như vậy không có nghĩa là hiện tại nhóm cổ phiếu này phải nhận sự thờ ơ của nhà đầu tư Mà ngược lại, nhóm cổ phiếu này vẫn luôn nhận được nhiều sự quan tâm từ phía các nhà đầu tư, tổ chức cũng như cá nhân Không chỉ vì cổ phiếu ngân hàng có mức độ an toàn cao mà còn vì cổ phiếu ngân hàng luôn có vị trí hàng đầu trên thị trường chứng khoán Việt Nam xét trên nhiều khía cạnh

Sự biến động của nhóm cổ phiếu ngân hàng sẽ quyết định rất lớn đến xu hướng của thị trường, ít nhất là biến động của chỉ số chung Hơn nữa, do vai trò quan trọng của ngành ngân hàng đối với sự phát triển của nền kinh tế nên sự biến động của cổ phiếu ngân hàng cũng gây ra những tác động gián tiếp tới các nhóm ngành khác Thực tế lịch sử cho thấy, nhóm cổ phiếu ngân hàng luôn tăng đầu tiên khi thị trường bắt đầu có dấu hiệu bước vào một chu kỳ tăng điểm Hay nói cách khác, lịch

sử khởi đầu một con sóng tăng điểm của thị trường thường là sự bật dậy trước tiên của cổ phiếu ngân hàng Và diễn biến thị trường thời gian qua là một minh chứng rõ nét cho điều này

Điều đó thể hiện mức độ ưu thế của nhóm cổ phiếu ngành này so với các nhóm ngành còn lại trong nền kinh tế Tóm lại, với những cơ sở phân tích như trên chúng ta có thể khẳng định vị thế quan trọng của nhóm cổ phiếu ngành này trên thị trường chứng khoán Nó giải thích một điều là không phải ngẫu nhiên cổ phiếu ngành này lại được mệnh danh là cổ phiếu “vua” Tuy nhiên nếu xét đến diễn biến 2 năm trở lại đây của nhóm ngành này nói riêng và của cả thị trường nói chung thì chắc hẳn nhiều nhà đầu tư sẽ đặt ra câu hỏi rằng cổ phiếu ngành ngân hàng hiện tại có còn là “vua” Và nếu là vua thì khi nào “vua” sẽ trở lại ngai vàng?

Trang 3

MỤC LỤC

1 Mục tiêu nghiên cứu và nhiệm vụ nghiên cứu 4

1.1 Mục tiêu nghiên cứu: 4

1.2 Nhiệm vụ nghiên cứu 4

2 Đối tượng và phạm vi nghiên cứu 4

2.1 Đối tượng nghiên cứu: 4

2.2 Phạm vi nghiên cứu: 4

3 Mô hình nghiệp vụ bài toán thực tế, miền ứng dụng 4

3.1 Mô hình nghiệp vụ bài toán thực tế 4

4 Quá trình thu thập và làm sạch dữ liệu 5

4.1 Biểu đồ pairlot 7

4.2 Biểu đồ matplotlib 8

4.3 Biểu đồ nhiệt 9

4.4 Biểu đồ nến: 10

5 Cơ sở lý thuyết về Python cho bài toán 12

5.1 Seaborn 12

5.2 Pandas 12

5.3 Numpy 13

5.4 Matplotlib: 13

5.5 Biểu đồ nhiệt 13

5.6 Biểu đồ hình nến 13

6 Kết quả thực hiện 13

Kết luận 15

TÀI LIỆU THAM KHẢO 16

Trang 4

1 Mục tiêu nghiên cứu và nhiệm vụ nghiên cứu

1.1 Mục tiêu nghiên cứu:

a Nghiên cứu và phân tích những dữ liệu chứng khoán của bốn ngân hàng tại Việt Nam bao gồm:

Ngân hàng Quân Đội (MB), Ngân hàng TMCP Đầu tư và Phát Triển (BIDV), Ngân hàng TMCP Ngoại Thương Việt Nam (VCB) và cuối cùng là Ngân hàng TMCP Á Châu (ACB) từ 2022 đến nay Qua đó nhằm nắm được tình hình sàn chứng khoán từ đầu năm 2019 đến đầu năm 2023

b Nghiên cứu về những tác động làm biến đổi giá cổ phiếu của 4 ngân hàng từ những năm 2022 đến nay

c Nghiên cứu và nâng cao hiệu quả của việc đầu tư vào các sàn giao dịch chứng khoán trong nước

1.2 Nhiệm vụ nghiên cứu

Giải quyết được số liệu của 4 ngân hàng trên để nhằm phân tích

2 Đối tượng và phạm vi nghiên cứu

2.1 Đối tượng nghiên cứu:

Cổ phiếu ngân hàng của những ngân hàng sau: Ngân hàng Quân Đội (MB), Ngân hàng TMCP Đầu

tư và Phát Triển (BIDV), Ngân hàng TMCP Ngoại Thương Việt Nam (VCB) và cuối cùng là Ngân hàng TMCP Á Châu (ACB) trong thị trường chứng khoán Việt Nam

Ngân hàng TMCP Ngoại Thương VCB

Ngân hàng TMCP Á Châu ACB

Ngân hàng TMCP Đầu tư và Phát triển BID

2.2 Phạm vi nghiên cứu:

Về không gian: Thị trường chứng khoán Việt Nam, cụ thể là sở giao dịch chứng khoán của bốn ngân hàng: Ngân hàng Quân Đội (MB), Ngân hàng TMCP Đầu tư và Phát Triển (BIDV), Ngân hàng TMCP Ngoại Thương Việt Nam (VCB) và cuối cùng là Ngân hàng TMCP Á Châu (ACB)

Về thời gian: Tiến hành phân tích cổ phiếu các ngân hàng từ đầu năm 2019 đến đầu năm 2023

3 Mô hình nghiệp vụ bài toán thực tế, miền ứng dụng

3.1 Mô hình nghiệp vụ bài toán thực tế

Dự báo cổ phiếu luôn là bài toán thách thức vì tính không thể đoán trước của nó Giải quyết thị trường hàng ngày là không thể dự báo giá cổ phiếu và giá cổ phiếu là ngẫu nhiên Tuy nhiên bằng các phân tích kỹ thuật cho thấy hầu hết các giá cổ phiếu được phản ánh các dữ liệu liệu trước đó, do

đó xu hướng vận động giá là rất quan trọng để dự đoán giá hiệu quả Hơn nữa, các nhóm cổ phiếu

và thị trường chứng khoán bị ảnh hưởng bởi một số yếu tố kinh tế như sự kiện chính trị, điều kiện kinh tế chung, chỉ số giá hàng hóa, kỳ vọng của nhà đầu tư,

Trang 5

Mô hình nghiệp vụ kinh doanh chứng khoán của các nhà đầu tư, mỗi nhà đầu tư có mục đích đầu tư rất khác nhau, trước hết và quan trọng nhất là tìm kiếm lợi nhuận từ lợi tức kép của chứng khoán

Họ có thể nhằm vào mục tiêu tích lũy vốn để tạo ra thu nhập trong tương lai, hoặc đáp ứng các nhu cầu cá nhân khác… Nhà đầu tư thường có thể trực tiếp hoặc gián tiếp xác định tình hình tài chính thông qua việc thường xuyên xem xét tình hình tài chính của mình, các quan điểm về khả năng chấp nhận rủi ro, các quy chế về thuế và đặc biệt họ phải có những phân tích mang độ chính sách cao về những biến động của thị trường chứng khoán thông qua các phân tích chứng khoán được thể hiện dưới dạng biểu đồ Và mục tiêu cuối cùng của bài toán thực tế khi giao dịch trên sàn chứng khoán chính là tối đa hóa lợi ích cũng như an toàn vốn

Đối với đồ án này nhóm chúng em sẽ phân tích về giá đóng cửa, mở cửa của cổ phiếu của 4 ngân hàng khác nhau với dữ liệu được lấy từ sàn giao dịch chứng khoán Việt Nam vn stock

4 Quá trình thu thập và làm sạch dữ liệu

Đồ án này nhóm chúng em sử dụng ứng dụng Google colaboratory để thực hiện việc viết code cũng như đưa ra biểu đồ phân tích chứng khoán

Đầu tiên import các thư viện quen thuộc như sau:

import datetime

import numpy np as

import pandas pd as

Tiếp theo, để load dữ liệu chứng khoán trực tuyến, ta sử dụng thư viện vn stock, thư viện này ta phải cài đặt vào Colab

! pip install vnstock

import vnstock vs as

Giờ ta load dữ liệu chứng khoán từ 3 ngân hàng là Ngân hàng Quân Đội (MB), Ngân hàng TMCP Đầu tư và Phát Triển (BIDV), Ngân hàng TMCP Ngoại Thương Việt Nam (VCB), Ngân hàng TMCP Á Châu (ACB) và thời gian lấy dữ liệu từ ngày 01/01/2019 đến ngày 31/01/2023, ta làm như sau:

Load data VCB

VCB = vs.stock_historical_data(symbol= 'VCB' , start_date= "2019-01-01" , end_date= '2023-01-31' )

VCB.head()

Kết quả trả về cho ta là 1 Data Frame, bắt đầu từ ngày 02/01/2015, trong đó các ngày 1,5,6 và 7 là ngày nghỉ lễ, thứ 7, chủ nhật nên không có dữ liệu để hiển thị

Quan sát bảng ta thấy các cột có ý nghĩa như sau:

Open là giá mở cửa

Trang 6

High là giá cao nhất trong phiên giao dịch.

Low là giá thấp nhất trong phiên

Close là giá đóng cửa (hay giá kết phiên)

Volume là khối lượng giao dịch (tổng số cổ phiếu giao dịch trong phiên)

Tiếp tục ta làm tương tự đối với 3 Ngân hàng còn lại: ACB BIDV, và MB

Giờ ta nối 4 Data frame trên lại thành một bảng dữ liệu mới để tiện phân tích, ta đặt tên là bank_stock

#Gom thành 1 list theo hàng ngang

list_banks = [ 'VCB' 'MBB' , ,'ACB','BID' ]

# Tham số axis = 1 là nối theo cột

bank_stocks = pd.concat([VCB,MBB,ACB,BID],axis= , keys = list_banks) 1

bank_stocks

Sử dụng phương thức xs() trong pandas để lập chỉ mục đa cấp để tìm giá trị đóng cửa lớn nhất và nhỏ nhất của từng cổ phiếu trên

bank_stocks.xs(key= 'Close' ,axis= ,level= 1 'Stock Info' ) max ()

Bank Name

VCB 95800.0

MBB 28666.0

ACB 30360.0

BID 49000.0

dtype: float64

bank_stocks.xs(key= 'Close' ,axis= ,level= 1 'Stock Info' ) min ()

Bank Name

VCB 40799.0

MBB 7273.0

ACB 8763.0

BID 23024.0

dtype: float64

Tạo 1 DataFrame trống mới được gọi là value_banks Data frame này sẽ chứa tỷ suất lợi nhuận cho từng cổ phiếu của ngân hàng trên

value_banks = pd.DataFrame()

Tạo một vòng lặp for để lặp qua với mỗi mã cổ phiếu ngân hàng Tiếp theo, ta tạo một cột tên là

mã cổ phiếu + value_bank” = giá trị tỷ suất lợi nhuận

Để tính tỷ suất lợi nhuận, ta dùng hàm pct_change trong pandas và áp dụng cho giá đóng cửa cửa từng mã cổ phiếu theo code bên dưới Phương thức .pct_change() để tính toán thay đổi % theo thời gian Sự thay đổi này được tính (giá trị row hiện tại – giá trị row trước đó)/ (giá trị row trước đó) Vì

Trang 7

Discover more

from:

Law12

Document continues below

Luật doanh

nghiệp

Trường Đại học…

90 documents

Go to course

Trắc-nghiệm-LKD Trường đại học Ngâ…

98% (44)

140

Đề thi trắc nghiệm luật kinh tế

100% (19)

3

Question and review, problems chapter 3

Kinh tế

quốc tế 100% (1)

42

Kinh tế quốc tế - tài liệu

Kinh tế

quốc tế 100% (1)

11

The Path of the Law

- nhập môn ngành…

20

Trang 8

dòng đầu tiên không có dữ liệu để tính nên trả về giá trị NaN, ta có thể xóa luôn dòng này với hàm

dropna.

for name in list_banks:

value_banks[name+ ' value_bank' ] = bank_stocks[name][ 'Close'].pct_change()

value_banks.dropna(inplace= True )

value_banks.head()

4.1 Biểu đồ pairlot

Dùng Seaborn sử dụng biểu đồ pairplot để tìm cổ phiếu nổi bật dựa trên giá trị lợi nhuận bên trên import seaborn sns as

sns.pairplot(value_banks)

Luật doanh nghiệp 100% (1)

BTVN BUỔI 1 - bai tap

Luật doanh nghiệp 100% (1)

2

Trang 9

Nhận xét:

Từ biểu đồ trên ta thấy được:

Tỷ suất giữa Ngân hàng VCB với MB

4.2 Biểu đồ matplotlib

Lấy giá đóng cửa các cổ phiếu trên bằng biểu đồ matplotlib ta dùng vòng for để lặp qua Data frame các cổ phiếu trên

import matplotlib.pyplot plt as

for tick in list_banks:

bank_stocks[tick]['Close'].plot(figsize=( , ),label=tick) 12 4

plt.legend()

Trang 10

Nhận xét:

Quan sát ở biểu đồ matplotlib trên ta thấy giá cổ phiếu của Ngân hàng VCB đang dẫn đầu ngành, tiếp đến là Ngân hàng BIDV, ACB và MB Nhìn chung khi giá cổ phiếu của một ngân hàng tăng thì các ngân hàng còn lại cũng có sự gia tăng theo

4.3 Biểu đồ nhiệt

Dùng bản đồ nhiệt (Heatmap) để xem độ tương quan giá đóng cửa của các cổ phiếu trên

plt.figure(figsize=( , )) 12 5

sns.heatmap(bank_stocks.xs(key= 'Close' ,axis= ,level= 1 'Stock Info' ).corr(),annot= True )

Sử dụng Seaborn Clustermap để nhóm các cổ phiếu có tương quan với nhau

sns.clustermap(bank_stocks.xs(key= 'Close' ,axis= ,level= 1 'Stock Info' ).corr(),annot= True )

Trang 11

Nhận xét:

Giá trị cổ phiếu của Ngân hàng MB và ACB có sự tương quan với nhau Giá trị cổ phiếu của Ngân hàng ACB và VCB có sự tương quan với nhau Giá trị cổ phiếu của Ngân hàng VCB và BIDV có sự tương quan với nhau

4.4 Biểu đồ nến:

Cổ phiếu ACB:

import plotly

import plotly.graph_objects go as

candlestick = go.Candlestick(

x=VCB.index,

open=ACB[ 'Open' ],

high=ACB[ 'High' ],

low=ACB[ 'Low' ],

close=ACB[ 'Close' ]

)

fig = go.Figure(data=[candlestick])

fig.show()

Trang 12

Nhận xét:

Cổ phiếu VCB:

candlestick = go.Candlestick( x=VCB.index, open=VCB[ 'Open' ], high=VCB[ 'High' ], low=VCB[ 'Low' ], close=VCB[ 'Close' ] )

fig3 = go.Figure(data=[candlestick]) fig3.show()

Nhận xét:

Cổ phiếu MBB:

candlestick = go.Candlestick( x=MBB.index, open=MBB[ 'Open' ], high=MBB[ 'High' ], low=MBB[ 'Low' ], close=MBB[ 'Close' ] )

fig1 = go.Figure(data=[candlestick]) fig1.show()

Trang 13

Nhận xét:

Cổ phiếu BID:

candlestick = go.Candlestick(

x=BID.index,

open=BID[ 'Open' ],

high=BID[ 'High' ],

low=BID[ 'Low' ],

close=BID[ 'Close' ]

)

fig2 = go.Figure(data=[candlestick])

fig2.show()

Nhận xét:

5 Cơ sở lý thuyết về Python cho bài toán.

5.1 Seaborn

Seaborn được dùng để vẽ các dạng dữ liệu phân loại Ví dụ, phân loại giới tính, phân loại ngày tháng, phân loại sản phẩm… để trực quan số liệu các dạng Dataset này Trong trường hợp này chúng

em dùng biểu đồ seaborn để phân tích sự biến động trên sàn chứng khoán của 4 ngân hàng BIDV, ACB, MBBank, VCB

5.2 Pandas

Pandas là thư viện thực hiện mọi thứ mà NumPy và SciPy không thể làm Nó làm với các đối tượng

cấu trúc dữ liệu, DataFrames và Chuỗi (Series) Pandas cho phép bạn có thể xử lý các bảng dữ liệu

Trang 14

phức tạp và chuỗi thời gian Bạn sẽ dễ dàng tải dữ liệu từ nguồn khác nhau, sau dó slide, dice, xử lý các thành phần còn thiếu, thêm, đổi tên, tổng hợp, reshape và cuối cùng là trực quan dữ liệu theo ý của bạn

5.3 Numpy

Numpy (Numeric Python): là một thư viện toán học rât phổ biến và mạnh mẽ của Python NumPy được trang bị các hàm số đã được tối ưu, cho phép làm việc hiệu quả với ma trận và mảng, đặc biệt

là dữ liệu ma trận và mảng lớn với tốc độ xử lý nhanh hơn nhiều lần khi chỉ sử dụng Python đơn thuần Sử dụng NumPy có thể thực hiện các thao tác sau:

Các phép toán toán học và logic trên mảng

Các biến đổi Fourier và các quy trình để thao tác shape

Các phép toán liên quan đến đại số tuyến tính NumPy tích hợp sẵn các hàm cho đại số tuyến tính và tạo số ngẫu nhiên

NumPy thường được sử dụng cùng với các gói như SciPy (Python Scientific) và Matplotlib (thư viện vẽ đồ thị) Sự kết hợp này được sử dụng rộng rãi để thay thế cho MatLab, một nền tảng phổ biến cho tính toán kỹ thuật Tuy nhiên, Python thay thế cho MatLab hiện được xem như một ngôn ngữ lập trình hoàn thiện và hiện đại hơn.Điều quan trọng hơn cả là Numpy là một thư viện mã nguồn mở, miễn phí so với MatLab là một thư viện mã nguồn đóng và phải trả phí

5.4 Matplotlib:

Để thực hiện các suy luận thống kê cần thiết, cần phải trực quan hóa dữ liệu của bạn và Matplotlib

là một trong những giải pháp như vậy cho người dùng Python Nó là một thư viện vẽ đồ thị rất mạnh mẽ hữu ích cho những người làm việc với Python và NumPy Module được sử dụng nhiều nhất của Matplotlib là Pyplot cung cấp giao diện như MATLAB nhưng thay vào đó, nó sử dụng Python và nó là nguồn mở

5.5 Biểu đồ nhiệt

Heatmap là biểu đồ sử dụng cường độ màu sắc để thể hiện độ lớn của giá trị Khi đó các giá trị lớn

sẽ được làm nổi bật bằng các vùng màu có cường độ ánh sáng mạnh và các giá trị nhỏ hơn sẽ được thể hiện bằng các mảng màu nhạt hơn Các trường hợp thường sử dụng heatmap:

Biểu đồ hệ số tương quan

Biểu đồ địa lý về cảnh báo thiên tai

Biểu đồ mật độ dân số

Biểu đồ crazy egg trong đo lường các component được sử dụng nhiều trong 1 website hoặc app …

5.6 Biểu đồ hình nến

Biểu đồ hình nến (Candlestick Chart), hay còn thường được gọi là biểu đồ nến Nhật, mô hình nến,

là một loại biểu đồ tài chính dùng để mô tả chuyển động giá của chứng khoán dựa trên mô hình giá trong quá khứ.Biểu đồ hình nến hiển thị giá mở cửa, giá cao nhất, giá thấp nhất và giá đóng cửa của chứng khoán trong một khoảng thời gian nhất định (thường là một ngày)

Một biểu đồ sẽ được cấu tạo bởi hàng nghìn cây nến khác nhau Mỗi cây nến sẽ có 2 phần là thân nến và bóng nến:

Thân nến là phần lớn nhất được tô màu cho biết mức giá đóng cửa và giá mở cửa

Bóng nến là 2 que nhỏ nằm ở trên và dưới thân nến, cho biết mức giá cao nhất và giá thấp nhất trong một khoảng thời gian nhất định

6 Kết quả thực hiện

Ngày đăng: 13/03/2024, 09:51

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w