1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án môn lập trình python cho phân tích dữ liệu

15 0 0
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

Định dạng
Số trang 15
Dung lượng 3,34 MB

Nội dung

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

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

TRUONG DAI HOC NGAN HANG

THANH PHO HO CHi MINH

DO AN MON: LAP TRINH PYTHON CHO PHAN TICH DU LIEU

NGUYEN THI THANH NGAN 050609210847 ĐÀO PHÚC NGÂN 050609210858

Khóa học: Khóa 9

GVHD: PHAM 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, đo 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 - 5 2: 2c 2c ccssssrsres 1.1 Mục tiêu nghiên cứu: -. 2L 2 1222112011 1101 11111111 111211111 11 xe 1.2 Nhiệm vụ nghiên cứu - - Q22 222111011 11111 1111111111111 1111 xk

2 Đối tượng và phạm vi nghiên cứu - - 5+ s2 11121121111 1121111211 212g 2.1 Đối tượng nghiên cứu: - s21 112122122121 0121 21 2 1g 2.2 Phạm vi nghiên Cứu: - 2c 2221222111211 1211111111111 181112212

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

4 Quá trình thu thập và làm sạch đữ liệu 2: 22 2222222222222 zsx e2 4.1 Biểu đồ pairlo( - 5 ST TH TH n1 121212 121 111g rau

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

“xố ẽốx a1ăăăăăẽăắăăỀăẽ 5.3 Numpy TT HH1 H1 1101111111111 111111811 111111111111 kg E11 E11 0011181166

5.6 Biểu đồ hình nến - 22222222 222211222211222711221111211112111 1c

6 Kết qua thyre 160 Ket Wat occ cc ccccccccccccecececscsesssevevsvevevsssssesesevavavsvsssssesesevesavevessssssssevsvivevesisseseveveves

TÀI LIỆU THAM KHAO ooecccccccecscsscssesesessstssescsteseseststssesvstseserestevsreststssesesees

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 đữ 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 Á Chau (ACB) tir 2022 dé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 hang TMCP A Chau (ACB) trong thị trường chứng khoán Việt Nam

Tên Ngân hàng Mã giao dịch Ngân hàng TMCP Ngoại Thương VCB

Ngân hàng Quân Đội MBB

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 nha dau tu

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 dé 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 đữ liệu được lây từ sàn p1ao 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 cac thư viện quen thuộc như sau:

import datetime

import numpy as np

import pandas as pd

Tiép theo, đề load đữ 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 as vs

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 A Chau (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 headQ)

Open High Low Close Volume TradingDate

0 410270 413320 40723.0 40799.0 1081640 2019-01-02

1 411030 411790 40114.0 40799.0 1071350 2019-01-03

2 40570.0 41408.0 40038.0 41408.0 1307310 2019-01-04

3 420930 422450 414840 41560.0 1175810 2019-01-07

4 418640 420170 414840 418640 1318810 2019-01-08

Két qua tra vé cho tala 1 Data Frame, bat dau từ ngay 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à p1á mở cửa

Trang 6

¢ High 1a gia cao nhất trong phiên giao dich

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

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

e 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 thanh | list theo hang ngang

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

# Tham so axis = | la noi theo cột

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

bank_ stocks

Open High Low Close Volume TradingDate Open High Low Close Low Close Volume TradingDate Open High

410270 413320 407230 407990 1081640 2019-01-02 94340 9531.0 93610 9361.0 109340 110570 11031060 2019-01-02

) 107135 2019-01-03

)19-01-04 1

117581 2019-01-07 9192 9313.0 91440 9168 1077

1 1-01-08 91920 92410 90710 912 10760

2 19550.0 192000 1955 NaN NaN NaN NaT 44900.0 45550(

NaN NaN NaN NaT 451000 46300(

NaN NaN NaN NaT 465000 46600.0

00.0 1046115

1

1

0 1554077 2023-01-27 199(

1 0 449000

1

878000 91900.0 1449748 NaN NaN NaN NaT 442500 45100(

Sử dụng phương thức xs() trong pandas dé 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=1 ,level='Stock Info').max(Q)

Bank Name

VCB 95800.0

MBB 28666.0

ACB 30360.0

BID 49000.0

dtype: float64

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

Bank Name

VCB_ 407990

MBB 7273.0

ACB 8763.0

BID 23024.0

dtype: float64

Tao 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 pet_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 pet_change() dé tinh toán thay đối % theo thời gian Sw thay đôi này được tính (giá trị row hiện tại — piá trị row trước đó)/ (giá trị row trước đó) Vì

Trang 7

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’].pet_change()

value_banks.dropna(inplace= True)

value_banks.head()

VCB value_bank MBB value_bank ACB value_bank BID value_bank

1 0.000000 -0.043906 -0.037623 -0.044751

2 0.014927 0.005475 0.007048 -0.014079

3 0.003671 0.018780 0.014184 0.023758

4 0.007315 -0.005236 -0.006993 -0.009258

3 0.014547 0.026425 0.017513 0.031232

4.1 Biéu đồ pairlot

Dung Seaborn str dung biéu dé pairplot dé tim cổ phiếu nổi bật dựa trên giá trị lợi nhuận bên trên

import seaborn as sns

sns.pairplot(value_banks)

Trang 8

0075 4

0050 3

0025 3

0000

~0 025

-0.050 3

-0.075 +

Nn uw

*

“ % ee

~0.05 000 005 ~0.05 000 005 -01 00 01 -005 000 005

VCB value_bank MBB value_bank ACB value_bank BID value_bank

Nhận xét:

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

e Ty suat gitta Ngan hang VCB với MB

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 as plt

for tick in list_banks:

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

pltlegendQ

Trang 9

100000

— W8

— MBB

80000 | —— ACB

— BID

60000

40000

20000

Nhận xét:

Quan sát ở biêu đồ matplotlib trên ta thay gia 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 thi các ngân hàng còn lại cũng có sự g1a 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.fgure(figsize=(12,5))

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

VCB MBB ACB BID

Bank Name

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

sns.clustermap(bank _ stoeks.xs(key='Close',axIs=],level= Stoek Info').eorr(Q),annot= Irue)

Trang 10

07

Bank Name

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 as go

candlestick = go.Candlestick(

x=VCB index,

open=ACBỊ'Openr |,

high=ACB['High'],

low=ACB[Low’],

close=ACBI'Close']

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

fig.showQ

Trang 11

eh

a 200 400 600 800 1000

Nhận xét:

Cỗ phiếu VCB:

candlestick = go.Candlestick(

x=VCB index,

open=VCBỊ'Openr |,

high=VCB['High'],

low=VCB[Low’],

close=VCB['Close']

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

fig3 show()

a \ /h

6 00 600 s00 1000

Nhận xét:

Cỗ phiếu MBB:

candlestick = go.Candlestick(

x=MBB index,

open=MBB['Oper |,

high=MBB['High'],

low=MBBI'Low']

close=MBB['Close']

)

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

fig1.showQ)

Ngày đăng: 05/12/2024, 15:56

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

TÀI LIỆU LIÊN QUAN

w