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 TP. HỒ CHÍ MINH ----------------------------------- BÀI TẬP CÁ NHÂN MÔN: TRÍ TUỆ NHÂN TẠO TRONG GIAO DỊCH ĐỊNH LƯỢNG Giảng viên: Trần Anh Tuấn Họ và tên MSSV Cao Thị Kiều Oanh 030137210395 TP. Hồ Chí Minh, ngày 30, tháng 10, năm 2023 1 PHỤ LỤC CÂU 1: Vẽ đồ thị biểu diễn giá đóng cửa của cổ phiếu VCB, đường SMA(20) và đường SMA(50) trong giai đoạn trên:. Thực hiện cài đặt và khai báo các thư viện:.
Lấy dữ liệu giao dịch cổ phiếu VCB:. Đồ thị đường "Close":. Đường SMA 20, SMA 50:. Vẽ đồ thị giá đóng cửa (Close), đường SMA 20 và đường SMA 50:.7 CÂU 2: Xây dựng chiến thuật giao dịch dựa trên đường SMA(ngắn hạn) và đường SMA(dài hạn).
Cụ thể, khi đường SMA(ngắn hạn) cắt từ dưới lên đường SMA(dài hạn) là tín hiệu "Mua". Trong khi, đường SMA(ngắn hạn) cắt từ trên xuống đường SMA(dài hạn) là tín hiệu "Bán":. Xây dựng chiến lược SMA:. Đồ thị giá trị Equity:.11 CÂU 3: Với số tiền đầu tư là 100.000 đồng, mỗi lần thực hiện giao dịch sẽ mua 100 cổ phiếu/giao dịch.
Giả sử phí giao dịch là 0%, xác định đường SMA(ngắn hạn) và đường SMA(dài hạn) để 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. Lưu ý, ngắn hạn chỉ được xác định từ 10 đến 20 ngày, dài hạn chỉ được xác định từ 30 đến 50 ngày:. Xác định đường SMA ngắn hạn và đường SMA dài hạn tối ưu:. Xây dựng chiến lược:.
Mô tả kết quả kiểm định:. Sử dụng chỉ số RSI:. Xây dựng chiến lược:. Mô tả kết quả kiểm định:.
Kết hợp với chiến thuật SMA tìm ngắn hạn, dài hạn tối ưu:. Mô tả kết quả kiểm định:. Kiểm định khi áp dụng phí giao dịch:. Backtest chiến thuật khi mua số lượng cổ phiếu tối đa có thể mua với số tiền 100.
Sử dụng chỉ số ATR:. Xây dựng chiến lược. Mô tả kết quả kiểm định. Kết hợp với chiến thuật SMA ngắn hạn, dài hạn.
Mô tả kết quả kiểm định:. Kiểm định khi áp dụng phí giao dịch:. Sử dụng chỉ số TEMA. Xây dựng chiến lược:.
Mô tả kết quả kiểm định:. Xác định TEMA ngắn hạn, dài hạn tối ưu. Mô tả kết quả kiểm định:. Kiểm định khi áp dụng phí, thuế hiện hành:.
Backtest chiến thuật khi mua số lượng cổ phiếu tối đa có thể mua với số tiền 100.000 VNĐ, khi có thêm phí hiện hành. 50 3 CÂU 1: Vẽ đồ thị biểu diễn giá đóng cửa của cổ phiếu VCB, đường SMA(20) và đường SMA(50) trong giai đoạn trên: 1. Thực hiện cài đặt và khai báo các thư viện: 1. Lấy dữ liệu giao dịch cổ phiếu VCB: Cài đặt gói vnstock và nhập tất cả các module từ gói vnstock → Lấy dữ liệu cổ phiếu từ ngày 01/03/2013 đến ngày 01/03/2023 → Lưu dữ liệu trong biến df: Kết quả bảng dữ liệu df: Xoá cột Ticker và thiết lập lại tên cột cho df thành 'TradingDate', 'Open', 'High', 'Low', 'Close', 'Volume': 4 Kết quả bảng dữ liệu df: Chuyển đổi cột 'TradingDate' sang định dạng datetime và thiết lập cột 'TradingDate' thành chỉ mục: Kết quả bảng dữ liệu sau chuyển đổi 5 1.
Đồ thị đường "Close": Ta thu được đồ thị sau với trục x thể hiện thời gian và trục y thể hiện giá đóng cửa (Close) của mã chứng khoán 'VCB': 1. Đường SMA 20, SMA 50: Tính toán đường SMA 20 và SMA 50 và thêm cột SMA 20 và SMA 50 vào bản copy df1 của df: 6 Document continues below Discover more Quản trị ngân from: hàng thương… Trường Đại học… 40 documents Go to course 1. Case study Barings Bank (IN) 4 None Trắc-nghiệm- qtnhtm 91 None Trading HUB 3 Xác suất 36 96% (28) thống kê File giáo trình bản pdf HSK 2 8 Giáo trình 100% (11) chủ nghĩ… Individual 2 Kinh tế vi 3 100% (10) mô Answer Key - Complete Ielts ban… 20 sách 92% (79) chuyện… 51 dòng đầu của df1 Vẽ đồ thị đường SMA 20 và SMA 50: Ta thu được biểu đồ sau: 7 1. Vẽ đồ thị giá đóng cửa (Close), đường SMA 20 và đường SMA 50: Ta thu được đồ thị sau: 8 CÂU 2: Xây dựng chiến thuật giao dịch dựa trên đường SMA(ngắn hạn) và đường SMA(dài hạn).
Cụ thể, khi đường SMA(ngắn hạn) cắt từ dưới lên đường SMA(dài hạn) là tín hiệu "Mua". Trong khi, đường SMA(ngắn hạn) cắt từ trên xuống đường SMA(dài hạn) là tín hiệu "Bán": 2. Xây dựng chiến lược SMA: - Đoạn code dưới đây được sử dụng để xác định vị thế "mua" hoặc "bán" dựa trên sự cắt nhau của đường SMA (ngắn hạn) và đường SMA (dài hạn) Khi đường SMA (ngắn hạn) cắt từ dưới lên đường SMA (dài hạn), giá trị của cột 'position' sẽ được gán là 1, thể hiện vị thế "mua". Ngược lại, khi đường SMA (ngắn hạn) cắt từ trên xuống đường SMA (dài hạn), giá trị của cột 'position' sẽ được gán là -1, thể hiện vị thế "bán".
- Xuất bảng kết quả khi loại bỏ những cột giá trị NaN: Đoạn code dưới đây kiểm tra các giá trị position bị rỗng và sau đó xuất bảng đã được xây dựng chiến lược: 9 2. Backtest: Định nghĩa một lớp GeneralStrategy kế thừa từ lớp Strategy: Lớp này có hai phương thức là init và next dùng để xác định hành động mua hoặc bán dựa trên giá trị của cột 'position' trong dữ liệu. 10 o Nếu giá trị của cột 'position' là 1, tức là tín hiệu mua o Ngược lại, nếu giá trị của cột 'position' là -1, tức là tín hiệu bán, thì bán cổ phiếu hiện có. Thực hiện Backtest với số tiền khởi đầu để giao dịch là 100 triệu đồng, phí giao dịch là 0.3%, giao dịch được thực hiện vào giá đóng cửa và các lệnh giao dịch được thực hiện độc quyền ta thu được bảng số liệu sau: Hiển thị kết quả backtest dưới dạng frame: Ta thu được bảng kết quả backtest như sau: 11 2.
Đồ thị giá trị Equity: 12 CÂU 3: Với số tiền đầu tư là 100.000 đồng, mỗi lần thực hiện giao dịch sẽ mua 100 cổ phiếu/giao dịch. Giả sử phí giao dịch là 0%, xác định đường SMA(ngắn hạn) và đường SMA(dài hạn) để 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. Lưu ý, ngắn hạn chỉ được xác định từ 10 đến 20 ngày, dài hạn chỉ được xác định từ 30 đến 50 ngày: 3. Xác định đường SMA ngắn hạn và đường SMA dài hạn tối ưu: 3.
Xây dựng chiến lược: Xây dựng chiến lược: - Lấy bản sao bảng dữ liệu giá cổ phiếu VCB từ df: - Khai báo các thư viện cần thiết và thiết lập các biến, sau đó thực hiện vòng lặp để thử tất cả các giá trị của short_sma trong khoảng từ 10 đến 20 và long_sma trong 13 khoảng từ 40 đến 50 để tính toán các giá trị SMA và tạo một cột 'position' trong df2 để xác định vị trí giao dịch tương ứng với mỗi cặp giá trị short_sma và long_sma: + Thiết lập giá trị của cột 'position' trong DataFrame df2 bằng 1 cho các hàng có giá trị SMA ngắn hạn lớn hơn SMA dài hạn. + Thiết lập giá trị của cột 'position' trong DataFrame df2 bằng -1 cho các hàng có giá trị SMA ngắn hạn nhỏ hơn SMA dài hạn. - Định nghĩa chiến thuật giao dịch và thực hiện backtest: + Nếu tín hiệu giao dịch là mua (position = 1), thì mua 100 cổ phiếu. Nếu tín hiệu giao dịch là bán (position = -1), thì bán cổ phiếu hiện có.
- Thực hiện backtest chiến thuật SMA trên dữ liệu được lưu trữ trong df2 với số tiền khởi đầu là 100.000VND, giao dịch được thực hiện vào giá đóng cửa và các lệnh giao dịch được thực hiện độc quyền: Tiến hành kiểm tra và lưu giá trị SMA tốt nhất, in kết quả ra màn hình: 14 + Nếu giá trị cuối cùng của vốn (equity) trong quá trình backtest lớn hơn giá trị lợi nhuận tốt nhất hiện tại, thì cập nhật giá trị lợi nhuận tốt nhất, short_sma tốt nhất và long_sma tốt nhất. + In ra màn hình giá trị tối ưu của SMA ngắn hạn và SMA dài hạn, cùng với giá trị đầu tư cuối cùng tương ứng. Ta thu được kết quả như sau: Đường SMA ngắn hạn và đường SMA dài hạn tối ưu là SMA(20,43) và với giá trị đầu tư cuối cùng là 105675000.0 Backtest: - Tính toán các chỉ báo SMA, và thêm cột 'position' vào dataframe df2, sau đó triển khai một chiến thuật giao dịch: + Nếu giá trị của cột 'position' là 1, tức là có tín hiệu mua, thì sẽ thực hiện mua 100 cổ phiếu bằng lệnh self. + Nếu giá trị của cột 'position' là -1, tức là có tín hiệu bán, thì sẽ bán số cổ phiếu hiện có.
15 - Sau khi định nghĩa chiến thuật, đoạn code tiếp theo thực hiện chiến thuật và kiểm định kết quả với số tiền khởi đầu là 100000000, giao dịch được thực hiện vào giá đóng cửa và các lệnh giao dịch được thực hiện độc quyền ta thu được bảng số liệu sau: 3. Mô tả kết quả kiểm định: Tỷ trọng đầu tư và Tiền mặt: Tỷ trọng đầu tư trong danh mục thấp (<10%) và tỷ trọng tiền mặt cao cho thấy chiến thuật thường xuyên giữ vị thế tiền mặt. Điều này 16 có thể làm giảm lợi nhuận của chiến thuật và làm giảm sự tương xứng với lợi nhuận của cổ phiếu. Lợi nhuận tổng cộng và Tỷ suất lợi nhuận hàng năm: Lợi nhuận tổng cộng trong kỳ đầu tư là 5.675%, đây là mức lợi nhuận tích luỹ tương đối thấp trong khoảng thời gian kiểm tra.
Tỷ suất lợi nhuận hàng năm cũng thấp với 0. Sharpe Ratio: Hệ số Sharpe là 0.606, cho thấy rằng tỷ lệ lợi nhuận so với mức rủi ro trong khoảng thời gian 12 tháng không đủ hấp dẫn. Sự biến động của giá cổ phiếu không được đền bù bằng lợi nhuận hàng năm, và điều này cho thấy mức độ rủi ro trong danh mục đầu tư. Mức giảm lớn nhất: Tối đa giảm tỷ lệ là -1.650054%, vẫn thấp và tương tự với thông số trước đó.
Mức giảm lớn nhất này có thể được xem xét là ổn định, nhưng cũng cho thấy danh mục đầu tư không đạt được lợi nhuận cao trong khoảng thời gian kiểm tra. Nhận xét: Chiến thuật SMA trên cổ phiếu VCB trong khoảng thời gian này có sự kết hợp của lợi nhuận thấp, biến động giá cổ phiếu cao, và tỷ suất lợi nhuận hàng năm không đủ cao để đền bù cho rủi ro. Sử dụng chỉ số RSI: 3.