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

TIỂU LUẬN CUỐI KỲ MÔN TRÍ TUỆ NHÂN TẠO TRONG GIAO DỊCH ĐỊNH LƯỢNG

35 6 0

Đ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

Nội dung

Trang 1

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

TRƯỜNG ĐẠI HỌC NGÂN HÀNG TP.HỒ CHÍ MINH

-TIỂU LUẬN CUỐI KỲ

MÔN: TRÍ TUỆ NHÂN TẠO TRONG GIAO DỊCH

Trang 3

1.3 Cách sử dụng đường SMA trong giao dịch 7

1.4 Ý nghĩa của chỉ báo SMA 8

2.3 Nhà đầu tư có thể kiếm được số tiền nhiều nhất sau khi thực hiện chiến thuật giaodịch dựa trên đường SMA (Câu 3) 17

2.4 Lựa chọn cổ phiếu có tỷ suất sinh lợi cao nhất (Câu 4) 26

3 Đánh giá ưu nhược điểm của chỉ số SMA 34

3.1 Ưu điểm 34

3.2 Nhược điểm 34

Tài liệu tham khảo 35

Trang 4

Danh Mục Các Từ Viết Tắt

Trang 5

Danh Mục Các Hình Ảnh Biểu Đồ

Hình 1 Bảng dữ liệu VCB 10

Hình 2 Đồ thị giá cổ phiếu VCB cột "Close" 11

Hình 4 Thể hiện SMA20, SMA50 vào bảng dữ liệu 13

Hình 5 Đồ thị biểu diễn giá đóng cửa, SMA20, SMA50 14

Hình 6 Xây dựng chiến thuật SMA20 và SMA50 15

Hình 7 Bảng kết quả chiến thuật SMA 15

Hình 8 Biểu đồ giá đóng cửa (SMA10 - SMA50) 18

Hình 9 Đồ thị biểu diễn giá đóng cửa, SMA10, SMA50 20

Hình 10 Xây dựng chiến thuật SMA10, SMA50 21

Hình 11 Kết quả của chiến thuật SMA10, SMA50 22

Hình 12 Bảng Kết quả Basktesting 25

Hình 13 Kết quả Basktesting của VCB 27

Hình 14 Kết quả Basktesting của CTG 28

Hình 15 Kết quả Basktesting của STB 29

Hình 16 Kết quả Basktesting của SHB 30

Hình 17 Kết quả Basktesting của BID 31

Hình 18 Kết quả Basktesting của ACB 32

Hình 19 Kết quả Basktesting của MBB 33

Trang 6

Lời Mở Đầu

Thị trường chứng khoán thu hút sự gia nhập mạnh mẽ của các nhà đầu tư thế hệ mới, nhạy bén với thị trường kết hợp với công nghệ Nó là một môi trường phức tạp và đầy biến động, nơi hàng triệu người đầu tư và giao dịch hàng ngày Việc dự đoán xu hướng giá cổ phiếu và khả năng định giá chính xác là một trong những thách thức lớn mà các nhà giao dịch và nhà đầu tư đối mặt Các nhà nghiên cứu đã phát triển một loạt các mô hình và công cụ phân tích kỹ thuật.

Trong số các công cụ phân tích kỹ thuật, SMA (Simple Moving Average) đã trở thành một trong những công cụ quan trọng và phổ biến SMA là một chỉ báo đơn giản, dựa trên việc tính toán giá trị trung bình của tài sản trong một khoảng thời gian nhất định Dựa trên nguyên lý này, SMA có khả năng cung cấp thông tin quan trọng về xu hướng giá, tín hiệu mua vào và bán ra, cũng như hỗ trợ và kháng cự trên biểu đồ giá

Mục tiêu của tiểu luận này là cung cấp một cái nhìn tổng quan về SMA và khả năng ứng dụng của nó trong phân tích thị trường chứng khoán thông qua các vấn đề mà giảng viên đã đề ra.

Trang 7

Nội dung

1.Giới thiệu về chỉ số SMA

1.1.Chỉ báo SMA là gì?

SMA (Simple Moving Average) là một công cụ phân tích kỹ thuật đơn giản, tính toán giá trung bình của một tài sản trong một khoảng thời gian xác định, thường sử dụng giá đóng cửa.

1.2.Cách tính chỉ báo SMA và phân loại

1.2.1 Cách tính chỉ báo SMA

SMA được tính bằng cách lấy tổng các giá trị đóng cửa của tài sản trong một số phiên gần đây và chia cho số lượng phiên đó Điều này tạo ra một đường trung bình di chuyển mượt theo giá của tài sản trong khoảng thời gian xác định.

Công thức tính SMA cụ thể như sau: SMA = (P1 + P2 + P3 + … + Pn)/N - Trong đó:

o P1-Pn: là mức giá đóng cửa trong mỗi chu phiên o n: số ngày/phiên giao dịch

Ví dụ:

SMA (10) = tổng mức giá đóng cửa của cổ phiếu VCB 10 phiên giao dịch gần nhất /10 SMA (50) = tổng mức giá đóng cửa của cổ phiếu VCB 50 phiên giao dịch gần nhất /50 SMA (100) = tổng mức giá đóng cửa của cổ phiếu VCB 100 phiên giao dịch gần nhất /100

1.2.2 Phân loại

Dựa vào chu kỳ tính toán người ta chia SMA làm 3 loại: ngắn hạn, trung hạn và dài hạn  SMA ngắn hạn: SMA10, SMA12, SMA20…

 SMA trung hạn: SMA50, SM70, SMA90…  SMA dài hạn: SMA200, SMA250, SMA500…

1.3.Cách sử dụng đường SMA trong giao dịch

Trang 8

Biểu đồ giá giảm cắt ngang đường SMA theo hướng từ trên xuống, đường SMA hướng lên trên và giá đóng cửa trên đường SMA Đây là thời điểm nên mở lệnh mua.

Biểu đồ giá tăng cắt ngang đường SMA theo hướng từ dưới lên, đường SMA hướng xuống dưới và giá đóng cửa nằm dưới đường SMA Đây là thời điểm nên mở lệnh bán Khi đường SMA đi ngang, không rõ xu hướng giao dịch.

Có thể sử dụng 2 chỉ báo SMA trung hạn (SMA 50) và SMA dài hạn (SMA 200) Đường SMA 200 ít biến động hơn Tuy nhiên nó là mức giá trung bình ổn định Bằng cách này sẽ bắt được tín hiệu khi SMA-50 di chuyển cắt SMA-200 theo hướng từ trên xuống tạo độ dốc cao như thác đổ Lúc này cũng tương tự như biểu đồ giá cắt SMA, đây là thời điểm bạn nên bán ra để chốt lời khi 50 di chuyển nhanh lên trên và cắt qua đường SMA-200 theo hướng từ dưới lên Giá lúc này có dấu hiệu tăng mạnh, đây là lúc bạn nên mua vào.

1.4.Ý nghĩa của chỉ báo SMA

Đường SMA là công cụ giúp các nhà đầu tư có thể nhận thức rõ hơn xu hướng cơ bản cả thị trường và đưa ra quyết định chính xác nhất trong giao dịch Nó có ý nghĩa quan trọn khi đầu tư vào thị trường chứng khoán.

Xác định xu hướng thị trường: SMA giúp nhà đầu tư nhận biết và xác định xu hướng chính của thị trường Bằng cách tính toán giá trị trung bình của một khoảng thời gian nhất định, SMA làm mờ các biến động ngắn hạn và tạo ra một đường cong mượt mà thể hiện xu hướng dài hạn của giá cổ phiếu Điều này giúp nhà đầu tư nhận ra liệu thị trường đang trong giai đoạn tăng, giảm hoặc đi ngang, từ đó đưa ra quyết định đúng đắn về mua vào hoặc bán ra.

Xác định hỗ trợ kháng cự: SMA cung cấp thông tin quan trọng về mức hỗ trợ và kháng cự trên biểu đồ giá Khi giá cổ phiếu tiếp cận hoặc cắt qua đường SMA, nó có thể gây ra sự phản ứng từ các nhà đầu tư và ảnh hưởng đến xu hướng giá SMA có thể được sử dụng để xác định mức giá quan trọng mà giá cổ phiếu có thể gặp khó khăn trong việc vượt qua (kháng cự) hoặc mức giá mà giá cổ phiếu có thể được hỗ trợ.

Trang 9

Tìm điểm vào lệnh, chốt lời và cắt lỗ: SMA cung cấp tín hiệu mua vào và bán ra trong quá trình giao dịch Khi giá cổ phiếu vượt qua đường SMA từ dưới lên (crossover), đây có thể là tín hiệu mua vào Ngược lại, khi giá cổ phiếu vượt qua đường SMA từ trên xuống (crossover ngược), đây có thể là tín hiệu bán ra Ngoài ra, SMA cũng có thể sử dụng để xác định điểm chốt lời hoặc cắt lỗ trong giao dịch Khi giá cổ phiếu vượt qua đường SMA từ trên xuống và tiếp tục đi xuống, điều này có thể là tín hiệu để cắt lỗ Trong khi đó, khi giá cổ phiếu vượt qua đường SMA từ dưới lên và tiếp tục đi lên, đây có thể là tín hiệu để chốt lời.

2 Phân tích và ứng dụng chỉ số SMA

2.1.Đồ thị biểu diễn giá đóng cửa của cổ phiểu VCB, đường SMA(20) và đường

SMA(50) (Câu 1)

Bước 1: Cài đặt các thư viện Python backtesting và ta vào môi trường Python bằng

lệnh !pip install backtesting ta.

Bước 2: Cài đặt thư viện

matplotlib.pyplot được import để vẽ đồ thị và hình ảnh

umpy được import để thực hiện tính toán trên dữ liệu

pandas được import để xử lý và phân tích dữ liệu trên các bảng dữ liệu

Backtesting và Strategy được import từ thư viện backtesting Backtest được dùng

để tạo ra một backtest cho một chiến lược giao dịch cụ thể Strategy được dùng để định nghĩa chiến lược giao dịch

sma_indicator được import từ thư viện ta Đây là các chỉ báo kỹ thuật để tính toán

đường trung bình động (EMA) và đường trung bình động đơn giản (SMA)

Trang 10

Bước 3: Đọc bảng dữ liệu ‘VCB1.csv’

Hình 1 Bảng dữ liệu VCB

Bước 4: Định hình các cột trong DataFrame theo thứ tự [‘Date’, ‘Open’, ‘High’,‘Low’, ‘Close’, ‘Volume’]

Trang 11

Bước 5: Vẽ đồ thị dữ liệu giá cổ phiếu từ cột “Close”.

Hình 2 Đồ thị giá cổ phiếu VCB cột "Close"

plt.plot(df[‘Close’]): vẽ đồ thị dữ liệu giá cổ phiếu từ cột “Close” củaDataFrame df Hàm plt.plot() được sử dụng để vẽ đồ thị, trong đó đối sốtruyền vào là cột “Close” của DataFrame df

Bước 6: Thay đổi kiểu dữ liệu của cột “Date” và đặt cột "Date" của DataFramedf làm chỉ

mục (index) của DataFrame.

Trang 12

df[‘Date’]=pd.to_datetime (df[‘Date’]): thay đổi kiểu dữ liệu của cột “Date” trongDataFrame df từ kiểu chuỗi sang kiểu date time Hàm pd.to_datetime() được sửdụng để chuyển đổi kiểu dữ liệu của cột “Date” Khi chuyển đổi sang kiểu

datetime, ta có thể thực hiện các tác vụ liên quan đến thời gian như xác định khoảng cách thời gian giữa các ngày hoặc lọc dữ liệu theo các ngày cụ thể.

df=df.set_index(‘Date’): vẽ đồ thị dữ liệu giá cổ phiếu từ cột “Close” của

DataFrame Khi một cột được đặt làm chỉ mục, các giá trị trong DataFrame sẽ được sắp xếp và truy xuất dựa trên giá trị của cột chỉ mục đó.

Bước 7: Thực hiện tính toán và thêm hai cột mới vào bảng dữ liệu đang được xử lý với

tên gọi là “SMA 20” và “SMA 50”.

Trang 13

Hình 4 Thể hiện SMA20, SMA50 vào bảng dữ liệu

 Đoạn mã trên thực hiện tính toán và thêm hai cột mới vào bảng dữ liệu đang được

xử lý với tên gọi là “SMA 20” và “SMA 50” Cả hai cột chứa thông tin về giá trị

của đường trung bình động trong 20 ngày và 50 ngày của giá đóng cửa cổ phiếu tương ứng.

Chức năng sma_indicator được sử dụng để tính toán giá trị của SMA Đối với

close chứa thông tin về giá cổ phiếu, window chứa độ dài của cửa sổ tính toán (20 và 50).

 Với SMA, mỗi giá trị trong chuối được tính bằng cách lấy trung bình cộng của giá trị trong cửa sổ tính toán SMA thường được sử dụng để đánh giá xu hướng của giá cổ phiếu và xác định điểm mua bán hoặc các điểm quan trọng khác trong giao dịch chứng khoán.

Bước 8: Biểu đồ giá đóng cửa (close), SMA20 và SMA50.

Trang 14

Hình 5 Đồ thị biểu diễn giá đóng cửa, SMA20, SMA50

plt.plot(df['Close'].head(2500),label='Close'): Vẽ đường biểu đồ cho cột Closetrong DataFrame df, head(2500) chỉ lấy 2500 dòng đầu tiên của cột 'Close',label='Close' đặt nhãn cho đường biểu đồ là 'Close'.

plt.plot(df['SMA 20'].head(2500),label='SMA 20'): Vẽ đường biểu đồ cho cột'SMA 20' trong DataFrame df, head(2500) chỉ lấy 2500 dòng đầu tiên của cột'SMA 20', label='SMA 20' đặt nhãn cho đường biểu đồ là 'SMA 20'.

plt.plot(df['SMA 50'].head(2500),label='SMA 50'): Vẽ đường biểu đồ cho cột'SMA 50' trong DataFrame df, head(2500) chỉ lấy 2500 dòng đầu tiên của cột'SMA 50', label='SMA 50' đặt nhãn cho đường biểu đồ là 'SMA 50'.

plt.legend(): Hiển thị chú thích cho các đường biểu đồ, sử dụng các nhãn đã được

đặt trước đó.

2.2.Xây dựng chiến thuật giao dịch trên đường SMA(ngắn hạn) và đường SMA(dài

Trang 15

Hình 6 Xây dựng chiến thuật SMA20 và SMA50

Hai đoạn mã đầu ở trên được chia ra 2 trường hợp:

Trường hợp 1: Nếu SMA 20 vượt qua SMA 50 và SMA 20 của ngày trước đó không vượt qua SMA 50 của ngày trước đó thì đặt giá trị 1 cho cột “position” tại các vị trí tương ứng Điều này cho rằng tại các thời điểm đó chúng ta nên mở vị thế mua vì tín hiệu SMA 20 vượt qua SMA 50 và cho thấy đây là xu hướng giá tăng.

Trường hợp 2: Nếu SMA 20 thấp hơn SMA 50 và SMA 50 của ngày trường đó không vượt qua SMA 20 của ngày trước đó thì đặt giá trị -1 cho cột “position” tại các vị trí tương ứng Điều này cho rằng tại các thời điểm đó chúng ta nên mở vị thế bán vì tín hiệu SMA 20 thấp hơn SMA 50 cho thấy đây là xu hướng giá giảm.

Sau khi thực thi đoạn code này sẽ trả về một DataFrame mới chỉ chứa các hàng trong DataFrame df mà giá trị trong cột “position” không phải là null.

Hình 7 Bảng kết quả chiến thuật SMA

Trang 16

Cụ thể, hàm notnull() được sử dụng để trả về một mảng Boolean cho thấy giá trị

tương ứng trong cột “position” có phải là null hay không Sau đó, mảng Boolean

này được sử dụng để lọc các hàng trong DataFrame df bằng cách sử dụng

df[df[‘position’].notnull()] Kết quả là một DataFrame mới chỉ chứa các hàng với

giá trị khác null trong cột “position”.

df[df.index <= pd.to_datetime('2013-06-07')] được sử dụng để lọc dữ liệu

trong DataFrame df dựa trên điều kiện về chỉ số (index).

Điều kiện lọc dữ liệu df.index <= pd.to_datetime('2013-06-07') nghĩa là chỉ

lấy các dòng trong DataFrame df có chỉ số (index) nhỏ hơn hoặc bằng ngày

pd.to_datetime(07') được sử dụng để chuyển đổi chuỗi

'2013-06-07' thành đối tượng kiểu datetime trong pandas để so sánh với chỉ số củaDataFrame.

Trang 17

2.3.Nhà đầu tư có thể kiếm được số tiền nhiều nhất sau khi thực hiện chiến thuật

giao dịch dựa trên đường SMA (Câu 3).

Bước 1:Thực hiện công tác cài đặt các thư viện hỗ trợ và tải dữ liệu từ vnstock về định nghĩa biến df.

Bước 2: Đổi tên các cột để phù hợp định dạng của thư viện backtesting.

Trang 18

Bước 3: Vẽ biểu đồ cột giá cuối ngày “Close” đảm bảo chuỗi dữ liệu đã được làm

Hình 8 Biểu đồ giá đóng cửa (SMA10 - SMA50)

Bước 4: Định nghĩa chiến thuật SMA 10 - SMA 50.

Đoạn mã trên thực hiện tính toán và thêm hai cột mới vào bảng dữ liệu đang được xử lý với tên gọi là “SMA 10” và “SMA 50” Cả hai cột chứa thông tin về giá trị của đường trung bình động trong 10 ngày và 50 ngày của giá đóng cửa cổ phiếu tương ứng.

Chức năng sma_indicator được sử dụng để tính toán giá trị của SMA Đối với close chứa thông tin về giá cổ phiếu, window chứa độ dài của cửa sổ tính toán (10 và 50).

Trang 19

Với SMA, mỗi giá trị trong chuối được tính bằng cách lấy trung bình cộng của giá trị trong cửa sổ tính toán SMA thường được sử dụng để đánh giá xu hướng của giá cổ phiếu và xác định điểm mua bán hoặc các điểm quan trọng khác trong giao dịch chứng khoán Sau đó hiển thị df để xác nhận giá trị ngày 51 của data đã xuất hiện giá trị SMA 50.

Trang 20

Bước 5: Cập nhật biểu đồ “Close” sau khi thêm 2 giá trị SMA 10 và SMA 50.

Hình 9 Đồ thị biểu diễn giá đóng cửa, SMA10, SMA50

plt.plot(df['Close'].head(2500),label='Close'): Vẽ đường biểu đồ cho cộtClose trong DataFrame df, head(2500) chỉ lấy 2500 dòng đầu tiên của cột'Close', label='Close' đặt nhãn cho đường biểu đồ là 'Close'.

plt.plot(df['SMA 10'].head(2500),label='SMA 20'): Vẽ đường biểu đồ chocột 'SMA 10' trong DataFrame df, head(2500) chỉ lấy 2500 dòng đầu tiêncủa cột 'SMA 20', label='SMA 10' đặt nhãn cho đường biểu đồ là 'SMA 10'.

Trang 21

plt.plot(df['SMA 50'].head(2500),label='SMA 50'): Vẽ đường biểu đồ chocột 'SMA 50' trong DataFrame df, head(2500) chỉ lấy 2500 dòng đầu tiêncủa cột 'SMA 50', label='SMA 50' đặt nhãn cho đường biểu đồ là 'SMA 50'.

plt.legend(): Hiển thị chú thích cho các đường biểu đồ, sử dụng các nhãn đã được

đặt trước đó.

Bước 6: Thực hiện chiến thuật SMA 10 -SMA 50:

Hình 10 Xây dựng chiến thuật SMA10, SMA50

Hai đoạn mã đầu ở trên được chia ra 2 trường hợp:

Trường hợp 1: Nếu SMA 10 vượt qua SMA 50 và SMA 10 của ngày trước đó không vượt qua SMA 50 của ngày trước đó thì đặt giá trị 1 cho cột “position” tại các vị trí tương ứng Điều này cho rằng tại các thời điểm đó chúng ta nên mở vị thế mua vì tín hiệu SMA 10 vượt qua SMA 50 và cho thấy đây là xu hướng giá tăng

Trường hợp 2: Nếu SMA 10 thấp hơn SMA 50 và SMA 50 của ngày trường đó không vượt qua SMA 10 của ngày trước đó thì đặt giá trị -1 cho cột “position” tại các vị trí tương ứng Điều này cho rằng tại các thời điểm đó chúng ta nên mở vị thế bán vì tín hiệu SMA 10 thấp hơn SMA 50 cho thấy đây là xu hướng giá giảm.

Sau khi thực thi đoạn code này sẽ trả về một DataFrame mới chỉ chứa các hàng trong DataFrame df mà giá trị trong cột “position” không phải là null.

Trang 22

Hình 11 Kết quả của chiến thuật SMA10, SMA50

Kết quả là một DataFrame mới chỉ chứa các hàng với giá trị khác null trong cột “position”.

Trang 23

Bước 7: Định nghĩa mua bán dựa theo giá trị.

Trong đoạn mã trên, lớp GeneralStrategy được định nghĩa kế thừa từ lớp Strategy của backtrader Lớp GeneralStrategy được sử dụng để triển khai một chiến lược giao dịch đơn giản, dựa trên tín hiệu mua và bán được tạo ra từ các đường trung bình động SMA 10 và SMA 50 của tài sản Được triển khai theo 2 phương thức sau:

Trong hàm Init(self), Phương thức này được gọi một lần duy nhất khi khởi tạo chiến lược.

Trong hàm Next(self), kiểm tra điều kiện để tạo ra các tín hiệu giao dịch Chiến lược sẽ kiểm tra giá trị của cột ‘position’ trong DataFrame data (sử dụng self.data.position) để quyết định mua hoặc bán tài sản Nếu giá trị của cột ‘position’ là 1, tức SMA 10 vượt qua SMA 50 thì chiến lược mở vị thế mua bằng cách gọi phương thức self.buy() Nếu giá trị của cột ‘position’ là -1, tức SMA 10 thấp hơn SMA 50 thì chiến lược đóng vị thế hiện tại bằng cách gọi phương thức self.position.close().

Bước 8: Đoạn mã trên được sử dụng để thực hiện bước backtesting cho chiến lược giao

dịch được triển khai trong lớp GeneralStrategy Các giai đoạn thực hiện của đoạn mã trên như sau:

Ngày đăng: 12/04/2024, 04:41

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w