SlideShare a Scribd company logo
1 of 7
Download to read offline
6/16/14 Giải bài toán Markowitz: Tối ưu hóa danh mục đầu tư chứng khoán bằng VBA for Excel
www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5d5d5d5d5f 1/7
Giải bài toán Markowitz: Tối ưu hóa danh mục đầu tư chứng khoán
bằng VBA for Excel
Harry Markowitz đã mô hình hóa quá trình lựa chọn danh mục đầu tư (nhờ đó đoạt giải Nobel kinh tế
năm 1990) dưới dạng một bài toán quy hoạch phi tuyến (bài toán Markowitz). Mục tiêu của bài toán
Markowitz là tìm các tỉ trọng của các chứng khoán trong danh mục đầu tư sao cho giảm tới mức tối
thiểu phương sai (rủi ro) của danh mục mà đạt được một mức thu nhập đã định. Giải liên tiếp bài toán
với các mức thu nhập mục tiêu người ta xác định được một tập hợp các danh mục đầu tư có hiệu
quả. Từ đây nhà đầu tư sẽ lựa chọn một danh mục nằm trong tập hợp này dựa trên quan điểm của
mình về việc đánh đổi giữa thu nhập và rủi ro.
Tìm
Với hệ ràng buộc
Trong đó:
Phương sai thu nhập của danh mục đầu tư
Xi
Tỉ trọng của chứng khoán thứ i trong danh mục đầu
tư gồm n chứng khoán; do thị trường chứng khoán
nước ta chưa cho phép bán khống.
(Nếu cho phép bán khống thì bài toán được giải
bằng phương pháp Lagrange và rủi ro của danh mục
tối ưu còn giảm nhiều hơn, bài toán Markowitz kinh
điển không có điều kiện này)
ri Thu nhập kỳ vọng của chứng khoán thứ i
6/16/14 Giải bài toán Markowitz: Tối ưu hóa danh mục đầu tư chứng khoán bằng VBA for Excel
www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5d5d5d5d5f 2/7
(dữ liệu trích từ trang w eb http://w w w .saga.vn/
Taichinh/Quihoach/Mohinhhoa_Dubao/5673.saga)
Thu nhập dự tính của toàn bộ danh mục đầu tư
Tôi đã viết một chương trình nhỏ bằng VBA for Excel để giải bài toán Markowitz. Qua tạp chí TGVT giới
thiệu để các bạn cùng xem xét và sửa đổi chương trình hiệu quả hơn.
THUẬT TOÁN
Phương pháp giải: Tham khảo phương pháp “Gradien” và “đơn hình” trong giáo trình “Tối ưu hóa” – Nhà
xuất bản khoa học kỹ thuật của PGS.TS Bùi Minh Trí.
Bước 1 : Tìm phương án đầu tiên xo
Bước 2 : Tính các đạo hàm riêng của f(x) tại xo
Bước 3 : Khởi tạo vector ma trận cho bài toán đơn hình
Bước 4 : Sử dụng thuật toán đơn hình hai pha để giải bài toán đơn hình để tìm hướng di chuyển xk
Bước 5 : Kiểm tra điều kiện tối ưu của bài toán Markowitz
Bước 6 : Nếu chưa tìm thấy lời giải, tính nhân tố l, tính xk+1, đặt xo=xk+1 rồi quay trở lại bước 2.
CHƯƠNG TRÌNH
Chương trình gồm 20 hàm viết bằng VBA for Excel được
tóm tắt trong bảng bên dưới. Bạn đọc có thể tải file “Solution
for Markowitz.xls” tại website của TGVT để xem chi tiết mã
nguồn (mở ToolsMacroVisual Basic Editor để xem).
HƯỚNG DẪN SỬ DỤNG
Dữ liệu
Giả sử chúng ta xem xét việc thiết lập danh mục đầu tư từ 5
mã chứng khoán và có bảng dữ liệu về thu nhập từ tháng
12/2004 đến 7/2007 tại sheet Dulieu vùng B2:F33 như sau:
Để thuận lợi cho việc tính toán ta định nghĩa các vùng dữ liệu
bằng chọn InsertNameDefine như sau:
AGF=dulieu!$B2$B33; GIL=dulieu!$C2$C33;
GMD=dulieu!$D2$D33; NKD=dulieu!$E2$E33; REE
=dulieu!$F2$F33
Thiết lập các tham số
Tham số được thiết lập tại sheet thamso, như sau:
Hàm/thủ tục Chức năng Tham số
1. Function Sol(Var As
Range, R As Range,
RConst As Double, idx As
Integer) As Double
• Hàm lấy dữ liệu, tính phương án
khởi tạo, tạo lập vector Gradien của
f(xo), gọi hàm “donhinh” để tìm xk;
tìm lamda l, tính toán xk+1.
• Trả về tỷ trọng tối ưu của chứng
• “Var” bảng dữ liệu về ma trận phương sai;
• ”R” bảng dữ liệu về vector thu nhập kỳ
vọng của các chứng khoán,
• “Rconst” thu nhập mục tiêu của danh mục,
• “idx” số thứ tự của chứng khoán cần tính tỷ
6/16/14 Giải bài toán Markowitz: Tối ưu hóa danh mục đầu tư chứng khoán bằng VBA for Excel
www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5d5d5d5d5f 3/7
khoán thứ “idx” trong danh mục trọng
2. Sub FirstSol(R() As
Double, X() As Double,
RConst As Double)
• Thủ tục lập phương án đầu tiên
của bài toán Markow it (phương án
này chỉ bao gồm 2 chứng khoán)
• R() vector thu nhập kỳ vọng của các
chứng khoán
• X() vector trả về của phương án
• Rconst thu nhập mục tiêu của chứng khoán
3. Sub SetGradien(X() As
Double, Var() As Double,
Gra() As Double)
• Thủ tục tính các đạo hàm riêng của
hàm f(x) rồi gán vào mảng Gra()
• X() vector phương án đang xét Xo
• Var() (mảng 2 chiều) ma trận hiệp phương
sai các chứng khoán
• Gra() vector gradien của hàm f(x)
4. Function Lamda(X() As
Double, DX() As Double,
Var() As Double) As
Double
• Hàm trả về nhân tố lamda l để từ
đó chuyển sang một phương án
phân bổ chứng khoán mới tốt hơn
• X() vector phương án đang xét Xo
• DX() là vector hiệu của phương án Xk và
Xo
• Var() ma trận hiệp phương sai các chứng
khoán
5. Sub SetXnew (X() As
Double, Lamda As Double,
DX() As Double, X_new ()
As Double)
• Thủ tục trả về phương án tốt hơn
vào mảng X_new ()
• X() vector phương án đang xét Xo
• Lamda là nhân tố lamda l
• DX() là vector hiệu của phương án Xk và
Xo
• X_new () phương án tốt hơn trả về
6. Function donhinh(a()
As Double, b() As Double,
C() As Double, X() As
Double) As Boolean
• Hàm giải bài toán quy hoạch tuyến
tính theo thuật toán đơn hình 2 pha
• Trở về True nếu giải được bài toán
Phương án tối ưu được trả về mảng
X()
• A() mảng hai chiều ứng với ma trận tham
số của bài toán đơn hình
• B() mảng 1 chiều ứng với vector ràng buộc
• C() mảng 1 chiều ứng với vetor của hàm
mục tiêu
7. Sub SetXVector(X() As
Double, base() As Integer,
simplex() As Double)
• Thủ tục lập phương án cực biên
của bài toán quy hoạch tuyến tính
rồi gán vào mảng X()
• X() phương án cực biên trả về
• Base() mảng chỉ tới các cột cơ sở của
bảng đơn hình
• Simplex() mảng 2 chiều ứng bảng đơn hình
của bài toán quy hoạch tuyến tính
8. Function
TestDelta(Delta() As
Double, X() As Double,
base() As Integer,
C_matrix() As Double,
simplex() As Double, nv
As Integer) As Integer
• Hàm tính các Delta của bài toán
đơn hình rồi gán vào mảng Delta()
• Kiểm tra điều kiện tối ưu của bài
toán đơn hình
• Kiểm tra sự không giải được của
bài toán đơn hình
• Chỉ ra hướng để chuyển đổi bảng
đơn hình tốt hơn bằng cách trả về
số thứ tự của Delta lớn nhất( chính
là biến cần phải đưa vào cơ sở của
bảng đơn hình) và đặt giá trị cho
biến nv (giá trị mà Base(nv) chỉ tới là
biến phải đưa khỏi cơ sở của bảng
đơn hình)
• Delta() vector các Delta của bảng đơn hình
đang xét
• X() phương án cực biên đang xét
base() mảng chỉ tới các cột cơ sở của bảng
đơn hình
• C_matrix() vector của hàm mục tiêu của bài
toán đơn hình
• Simplex() là bảng đơn hình
• nv là giá trị mà Base(nv) chỉ tới chính là
biến phải đưa khỏi cơ sở của bảng đơn hình)
9. Sub
ChangeSimplex(base() As
Integer, simplex() As
Double, V_in As Integer,
nv As Integer)
• Thủ tục biến đổi bảng đơn hình
nhằm tìm ra phương án cực biên tốt
hơn
• base() mảng chỉ tới các cột cơ sở của
bảng đơn hình
• Simplex() là bảng đơn hình
• V_in là biến mới được đưa vào cơ sở
• Nv là chỉ số mà Base(nv) trỏ tới phải ra
khỏi cơ sở
10. Function Min(arr() As
Double) As Integer
• Hàm trả về chỉ số của phần tử
dương nhỏ nhất trong mảng
• arr() mảng 1 chiều
11. Function Max(arr() As
Double) As Integer
• Hàm trả về chỉ số của phần tử lớn
nhất trong mảng
• arr() mảng 1 chiều
12. Function Min2(arr() As
Double) As Integer
• Hàm trả về chỉ số của phần tử nhỏ
nhất trong mảng
• arr() mảng 1 chiều
6/16/14 Giải bài toán Markowitz: Tối ưu hóa danh mục đầu tư chứng khoán bằng VBA for Excel
www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5d5d5d5d5f 4/7
13. Function
SumProduct(X() As
Double, Y() As Double)
As Double
• Hàm trả về tích vô hướng của 2
vector
• X() mảng 1 chiều
• Y() mảng 1 chiều
14. Function
SumSuper(X() As Double,
Y() As Double, m As
Integer) As Double
• Hàm trả về tích vô hướng của 1
vector và 1 dòng của 1 ma trận
• X() mảng 1 chiều
• Y() ma trận
• M chỉ số dòng của ma trận được nhân
15. Sub SetDX(DX() As
Double, X_cu() As
Double, X_moi() As
Double)
• Thủ tục trả về hiệu của hai vector
X_cu() và X_moi() vào vector DX()
16. Sub SetEqual(X() As
Double, Y() As Double
• Thủ tục đặt vector X() bằng với
vector Y()
17. Sub SetB(b() As
Double, n As Integer,
RConst As Double)
• Thủ tục gán giá trị cho vector b()
của bài toán đơn hình
• B() vector ràng buộc của bài toán đơn hình
• N chính bằng số chứng khoán
• Rconst thu nhập mục tiêu của danh mục
chứng khoán
18. Sub SetA(a() As
Double, n As Integer, R()
As Double
• Thủ tục gán giá trị cho mảng 2
chiều a() của bài toán đơn hình
• A() ma trận tham số của bài toán đơn hình
• N chính bằng số chứng khoán
• R() vector thu nhập kỳ vọng của các
chứng khoán
19. Function SetC(C() As
Double, n As Integer, G()
As Double)
• Thủ tục gán giá trị cho vector c()
của bài toán đơn hình
• C() vector mục tiêu của bài toán đơn hình
• N chính bằng số chứng khoán
• G() vector gradien của hàm f(x)
20. Public Function
Varience(Var_matrix As
Range, W_matrix As
Range) As Double
• Hàm trả về phương sai của danh
mục đầu tư
• Var_matrix là bảng ma trận phương
sai/hiệp phương sai
• W_matrix phương án phân bổ các chứng
khoán
• Vùng từ B3:F3 là các tham số về thu nhập kỳ vọng (trung bình) chứng khoán
Tại ô B3 công thức =AVERAGE(AGF)
Tại ô C3 công thức =AVERAGE(GIL)
Tại ô D3 công thức =AVERAGE(GMD)
Tại ô E3 công thức =AVERAGE(NKD)
Tại ô F3 công thức=AVERAGE(REE)
6/16/14 Giải bài toán Markowitz: Tối ưu hóa danh mục đầu tư chứng khoán bằng VBA for Excel
www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5d5d5d5d5f 5/7
• Vùng từ B4:F4 là các tham số về độ lệch chuẩn về thu nhập của chứng khoán
Tại ô B4 công thức =SQRT(VAR(AGF))
Tại ô C4 công thức = SQRT(VAR(GIL))
Tại ô D4 công thức = SQRT(VAR(GMD))
Tại ô E4 công thức = SQRT(VAR(NKD))
Tại ô F4 công thức= SQRT(VAR(REE))
• Vùng từ B9:F13 là ma trận phương sai/hiệp phương sai của thu nhập của các chứng khoán
Tại ô B9 là phương sai của chứng khoán AGF; công thức =VAR(AGF)
Tại ô C10 phương sai của chứng khoán GIL; công thức =VAR(GIL)
Tại ô D11 phương sai của chứng khoán GMD; công thức =VAR(GMD)
Tại ô E12 phương sai của chứng khoán NKD; công thức =VAR(NKD)
Tại ô F13 phương sai của chứng khoán REE; công thức =VAR(REE)
Tại ô B10 là hiệp phương sai của chứng khoán AGF và GIL; công thức =COVAR(AGF;GIL)
Tại ô C9 là hiệp phương sai của chứng khoán GIL và AGF; công thức =COVAR(AGF;GIL)
Tại ô B11 là hiệp phương sai của chứng khoán AGF và GMD; công thức =COVAR(AGF;GMD)
Tương tự như vậy ta điền hết công thức vào các ô còn trống
• Ta tiếp tục định nghĩa các vùng dữ liệu sau cho tiện việc tính toán (bằng InsertNameDefine)
Thunhap=thamso!$B$3:$F$3;phuongsai= thamso!$B$9:$F$13
Xử lý bài toán
6/16/14 Giải bài toán Markowitz: Tối ưu hóa danh mục đầu tư chứng khoán bằng VBA for Excel
www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5d5d5d5d5f 6/7
• Vùng từ D3:H23 là các tính toán xử lý của chúng ta về tỷ trọng phân bổ chứng khoán, ví dụ:
Tại ô D4 công thức =sol(phuongsai;thunhap;A4;1)
Tại ô E4 công thức =sol(phuongsai;thunhap;A4;2)
Tại ô F4 công thức =sol(phuongsai;thunhap;A4;3)
Tại ô G4 công thức =sol(phuongsai;thunhap;A4;4)
Tại ô F4 công thức =sol(phuongsai;thunhap;A4;5)
Tương tự ô G22 công thức =sol(phuongsai;thunhap;A22;4)
• Vùng B3:B23 là tính toán về phương sai của danh mục, ví dụ:
tại ô B2 có công thức =varience(phuongsai;D2:F2)
tại ô B22 có công thức =varience(phuongsai;D22:F22)
• Vùng C3:C23 là tính toán về độ lệch chuẩn của danh mục:
tại ô C2 công thức=SQRT(B2)
tại ô C22 công thức=SQRT(B22)
Thông qua kết quả tính toán ta thấy ngay được hiệu của việc đa dạng hóa danh mục đầu tư, ví dụ danh
mục đầu tư Y ở vùng D13:F13 (AGF=26,7%;GIL=17,4%;GMD=21,2%;NKD=11,4%;REE=23,3%) có thu
nhập là 7% và độ lệch chuẩn là 15,04%; danh mục này hiệu quả hơn danh mục Z gồm 100% chứng
6/16/14 Giải bài toán Markowitz: Tối ưu hóa danh mục đầu tư chứng khoán bằng VBA for Excel
www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5d5d5d5d5f 7/7
khoán GMD có thu nhập 7% và độ lệch chuẩn 24,2%. Có thể nói danh mục Y chi phối danh mục Z. Các
danh mục đầu tư bị chi phối bởi các danh mục đầu tư khác gọi là “các danh mục đầu tư kém hiệu
quả”. Tập hợp hiệu quả là một phần của danh mục đầu tư khả dĩ có độ lệch chuẩn tối thiểu sau khi cắt
bỏ các danh mục đầu tư kém hiệu quả. Để làm rõ hơn điều này ta chọn vùng A3:C23 để vẽ biểu đồ có
dạng, như sau:
Ta thấy ngay danh mục đầu tư nằm trên đoạn BC chính là đường danh mục đầu tư hiệu quả. Đây là
các danh mục tốt nhất bởi vì không thể tìm được một danh mục nào khác tốt hơn về thu nhập mà lại
không phải hy sinh về rủi ro (độ lệch) và ngược lại không thể tìm một danh mục nào khác có rủi ro ít
hơn mà không phải hy sinh về thu nhập. Các danh mục đầu tư nằm phía dưới đoạn BC là không hiệu
quả vì cùng một mức rủi ro nhưng lại có thu nhập thấp hơn. Nhà đầu tư thông minh sẽ lựa chọn một
danh mục nào đó nằm trên đường BC dựa trên quan điểm của anh ta về việc đánh đổi giữa thu nhập và
rủi ro.
Nguyễn Văn Thắng
Công ty hợp danh Kiểm toán Hà Nội
Thang_via@yahoo.com
[In trang] [Đóng trang]
© Tạp chí Thế Giới Vi Tính - PC World VN. CQ chủ quản: Sở Khoa Học và Công Nghệ TP.HCM
Giấy phép (1) số 196/GP-BV HTT do Bộ V ăn hóa Thông tin cấp ngày 27-06-2003
Giấy phép (2) số 202/GP-BC do Bộ Thông tin v à Truy ền thông - C ục Báo chí cấp ngày 05-05-2008
Tòa soạn: Lầu 5, 79 Trương Định, Phường Bến Thành, Q uận 1, TP. HC M - ĐT: (08) 38 257 745
Bản quy ền của Thế Giới V i Tính - PC World V N

More Related Content

What's hot

BÀI TẬP KẾ TOÁN CHI PHÍ (CÓ LỜI GIẢI)
BÀI TẬP KẾ TOÁN CHI PHÍ (CÓ LỜI GIẢI)BÀI TẬP KẾ TOÁN CHI PHÍ (CÓ LỜI GIẢI)
BÀI TẬP KẾ TOÁN CHI PHÍ (CÓ LỜI GIẢI)Học Huỳnh Bá
 
Thuyết Trình Lý Thuyết Danh Mục Hiệu Quả - Markowitz
Thuyết Trình Lý Thuyết Danh Mục Hiệu Quả - Markowitz Thuyết Trình Lý Thuyết Danh Mục Hiệu Quả - Markowitz
Thuyết Trình Lý Thuyết Danh Mục Hiệu Quả - Markowitz hoangnhuthinh
 
Bài tập có lời giải môn phân tích tài chính doanh nghiệp nâng cao
Bài tập có lời giải môn phân tích tài chính doanh nghiệp nâng caoBài tập có lời giải môn phân tích tài chính doanh nghiệp nâng cao
Bài tập có lời giải môn phân tích tài chính doanh nghiệp nâng caoYenPhuong16
 
Lý thuyết danh mục đầu tư
Lý thuyết danh mục đầu tưLý thuyết danh mục đầu tư
Lý thuyết danh mục đầu tưmaianhbang
 
Cơ cấu vốn tối ưu của doanh nghiệp
Cơ cấu vốn tối ưu của doanh nghiệpCơ cấu vốn tối ưu của doanh nghiệp
Cơ cấu vốn tối ưu của doanh nghiệpPhan Ngoc
 
Chuong 6 thong tin thich hop cua ke toan cho viec ra qd
Chuong 6 thong tin thich hop cua ke toan cho viec ra qdChuong 6 thong tin thich hop cua ke toan cho viec ra qd
Chuong 6 thong tin thich hop cua ke toan cho viec ra qdatulavt01
 
giáo trình kế toán quản trị P2
giáo trình kế toán quản trị P2giáo trình kế toán quản trị P2
giáo trình kế toán quản trị P2Nguyen Phuong Thao
 
Tổng kết công thức kinh tế lượng ( kinh te luong)
Tổng kết công thức kinh tế lượng ( kinh te luong)Tổng kết công thức kinh tế lượng ( kinh te luong)
Tổng kết công thức kinh tế lượng ( kinh te luong)Quynh Anh Nguyen
 
Trắc nghiệm môn thị trường chứng khoán có đáp án
Trắc nghiệm môn thị trường chứng khoán có đáp ánTrắc nghiệm môn thị trường chứng khoán có đáp án
Trắc nghiệm môn thị trường chứng khoán có đáp ánTrần Vỹ Thông
 
Bai giang toan kinh te 2015
Bai giang toan kinh te 2015Bai giang toan kinh te 2015
Bai giang toan kinh te 2015ICTU
 
Bài tập hoạch định dòng tiền ( các dạng bài tập + lời giải và phân tích)
Bài tập hoạch định dòng tiền ( các dạng bài tập + lời giải và phân tích)Bài tập hoạch định dòng tiền ( các dạng bài tập + lời giải và phân tích)
Bài tập hoạch định dòng tiền ( các dạng bài tập + lời giải và phân tích)Thanh Hoa
 
Bài tập thuế xuất nhập khẩu có lời giải
Bài tập thuế xuất nhập khẩu có lời giảiBài tập thuế xuất nhập khẩu có lời giải
Bài tập thuế xuất nhập khẩu có lời giảiKetoantaichinh.net
 

What's hot (20)

Bt dinh gia
Bt dinh giaBt dinh gia
Bt dinh gia
 
BÀI TẬP KẾ TOÁN CHI PHÍ (CÓ LỜI GIẢI)
BÀI TẬP KẾ TOÁN CHI PHÍ (CÓ LỜI GIẢI)BÀI TẬP KẾ TOÁN CHI PHÍ (CÓ LỜI GIẢI)
BÀI TẬP KẾ TOÁN CHI PHÍ (CÓ LỜI GIẢI)
 
Biện pháp tăng roi
Biện pháp tăng roiBiện pháp tăng roi
Biện pháp tăng roi
 
Thuyết Trình Lý Thuyết Danh Mục Hiệu Quả - Markowitz
Thuyết Trình Lý Thuyết Danh Mục Hiệu Quả - Markowitz Thuyết Trình Lý Thuyết Danh Mục Hiệu Quả - Markowitz
Thuyết Trình Lý Thuyết Danh Mục Hiệu Quả - Markowitz
 
Bài tập có lời giải môn phân tích tài chính doanh nghiệp nâng cao
Bài tập có lời giải môn phân tích tài chính doanh nghiệp nâng caoBài tập có lời giải môn phân tích tài chính doanh nghiệp nâng cao
Bài tập có lời giải môn phân tích tài chính doanh nghiệp nâng cao
 
Lý thuyết danh mục đầu tư
Lý thuyết danh mục đầu tưLý thuyết danh mục đầu tư
Lý thuyết danh mục đầu tư
 
Mô hình Fama French ba nhân tố
Mô hình Fama French ba nhân tốMô hình Fama French ba nhân tố
Mô hình Fama French ba nhân tố
 
Luận văn: Quản lý nợ xấu tại Ngân hàng Thương mại ĐT&PT Việt Nam
Luận văn: Quản lý nợ xấu tại Ngân hàng Thương mại ĐT&PT Việt NamLuận văn: Quản lý nợ xấu tại Ngân hàng Thương mại ĐT&PT Việt Nam
Luận văn: Quản lý nợ xấu tại Ngân hàng Thương mại ĐT&PT Việt Nam
 
Cơ cấu vốn tối ưu của doanh nghiệp
Cơ cấu vốn tối ưu của doanh nghiệpCơ cấu vốn tối ưu của doanh nghiệp
Cơ cấu vốn tối ưu của doanh nghiệp
 
Chuong 6 thong tin thich hop cua ke toan cho viec ra qd
Chuong 6 thong tin thich hop cua ke toan cho viec ra qdChuong 6 thong tin thich hop cua ke toan cho viec ra qd
Chuong 6 thong tin thich hop cua ke toan cho viec ra qd
 
giáo trình kế toán quản trị P2
giáo trình kế toán quản trị P2giáo trình kế toán quản trị P2
giáo trình kế toán quản trị P2
 
Luận Văn Phân Tích Và Định Giá Tập Đoàn Vingroup Công Ty Cổ Phần VIC
Luận Văn Phân Tích Và Định Giá Tập Đoàn Vingroup Công Ty Cổ Phần VICLuận Văn Phân Tích Và Định Giá Tập Đoàn Vingroup Công Ty Cổ Phần VIC
Luận Văn Phân Tích Và Định Giá Tập Đoàn Vingroup Công Ty Cổ Phần VIC
 
Dap an-mon-quan-tri-ngan-hang-thuong-mai
Dap an-mon-quan-tri-ngan-hang-thuong-maiDap an-mon-quan-tri-ngan-hang-thuong-mai
Dap an-mon-quan-tri-ngan-hang-thuong-mai
 
Tổng kết công thức kinh tế lượng ( kinh te luong)
Tổng kết công thức kinh tế lượng ( kinh te luong)Tổng kết công thức kinh tế lượng ( kinh te luong)
Tổng kết công thức kinh tế lượng ( kinh te luong)
 
Trắc nghiệm môn thị trường chứng khoán có đáp án
Trắc nghiệm môn thị trường chứng khoán có đáp ánTrắc nghiệm môn thị trường chứng khoán có đáp án
Trắc nghiệm môn thị trường chứng khoán có đáp án
 
Bai giang toan kinh te 2015
Bai giang toan kinh te 2015Bai giang toan kinh te 2015
Bai giang toan kinh te 2015
 
Đề tài tình hình tài chính công ty cổ phần bánh kẹo Hải Hà, ĐIỂM 8
Đề tài  tình hình tài chính công ty cổ phần bánh kẹo Hải Hà, ĐIỂM 8Đề tài  tình hình tài chính công ty cổ phần bánh kẹo Hải Hà, ĐIỂM 8
Đề tài tình hình tài chính công ty cổ phần bánh kẹo Hải Hà, ĐIỂM 8
 
Bài tập hoạch định dòng tiền ( các dạng bài tập + lời giải và phân tích)
Bài tập hoạch định dòng tiền ( các dạng bài tập + lời giải và phân tích)Bài tập hoạch định dòng tiền ( các dạng bài tập + lời giải và phân tích)
Bài tập hoạch định dòng tiền ( các dạng bài tập + lời giải và phân tích)
 
Bài tập thuế xuất nhập khẩu có lời giải
Bài tập thuế xuất nhập khẩu có lời giảiBài tập thuế xuất nhập khẩu có lời giải
Bài tập thuế xuất nhập khẩu có lời giải
 
Đề tài: Phân tích tài chính tại công ty cổ phần Sữa Vinamilk, HAY
Đề tài: Phân tích tài chính tại công ty cổ phần Sữa Vinamilk, HAYĐề tài: Phân tích tài chính tại công ty cổ phần Sữa Vinamilk, HAY
Đề tài: Phân tích tài chính tại công ty cổ phần Sữa Vinamilk, HAY
 

Similar to Giải bài toán markowitz tối ưu hóa danh mục đầu tư chứng khoán bằng vba for excel

Giai phuong trinh bang excell
Giai phuong trinh bang excellGiai phuong trinh bang excell
Giai phuong trinh bang excelltrioby2
 
Bài tập CTDL và GT 4
Bài tập CTDL và GT 4Bài tập CTDL và GT 4
Bài tập CTDL và GT 4Hồ Lợi
 
Tai lieu huong_dan_hoc_matlab_danh_cho_mon_xu_ly_anh_rat_hay_2264_7433
Tai lieu huong_dan_hoc_matlab_danh_cho_mon_xu_ly_anh_rat_hay_2264_7433Tai lieu huong_dan_hoc_matlab_danh_cho_mon_xu_ly_anh_rat_hay_2264_7433
Tai lieu huong_dan_hoc_matlab_danh_cho_mon_xu_ly_anh_rat_hay_2264_7433Muoivy Wm
 
Bai thi Nghiem ky thuat dien tu
Bai thi Nghiem ky thuat dien tuBai thi Nghiem ky thuat dien tu
Bai thi Nghiem ky thuat dien tuBrand Xanh
 
Excel THVP.pdf
Excel THVP.pdfExcel THVP.pdf
Excel THVP.pdfHunhKim1
 
Bài tập thực hành số 1
Bài tập thực hành số 1Bài tập thực hành số 1
Bài tập thực hành số 1Tran Trung Dung
 
Bài 2: Biến và toán tử - Giáo trình FPT
Bài 2: Biến và toán tử - Giáo trình FPTBài 2: Biến và toán tử - Giáo trình FPT
Bài 2: Biến và toán tử - Giáo trình FPTMasterCode.vn
 
[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính
[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính
[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tínhNguyen Ngoc Binh Phuong
 
Arrays formulas rev1
Arrays formulas rev1Arrays formulas rev1
Arrays formulas rev1hanhnt10
 
Do hoa voi_matlab_1714
Do hoa voi_matlab_1714Do hoa voi_matlab_1714
Do hoa voi_matlab_1714Phi Phi
 
Thuchanh Ktdk-matlab
Thuchanh Ktdk-matlabThuchanh Ktdk-matlab
Thuchanh Ktdk-matlabmark
 

Similar to Giải bài toán markowitz tối ưu hóa danh mục đầu tư chứng khoán bằng vba for excel (20)

Giai phuong trinh bang excell
Giai phuong trinh bang excellGiai phuong trinh bang excell
Giai phuong trinh bang excell
 
Bài tập CTDL và GT 4
Bài tập CTDL và GT 4Bài tập CTDL và GT 4
Bài tập CTDL và GT 4
 
Tai lieu huong_dan_hoc_matlab_danh_cho_mon_xu_ly_anh_rat_hay_2264_7433
Tai lieu huong_dan_hoc_matlab_danh_cho_mon_xu_ly_anh_rat_hay_2264_7433Tai lieu huong_dan_hoc_matlab_danh_cho_mon_xu_ly_anh_rat_hay_2264_7433
Tai lieu huong_dan_hoc_matlab_danh_cho_mon_xu_ly_anh_rat_hay_2264_7433
 
Bai thi Nghiem ky thuat dien tu
Bai thi Nghiem ky thuat dien tuBai thi Nghiem ky thuat dien tu
Bai thi Nghiem ky thuat dien tu
 
Excel THVP.pdf
Excel THVP.pdfExcel THVP.pdf
Excel THVP.pdf
 
Bài tập thực hành số 1
Bài tập thực hành số 1Bài tập thực hành số 1
Bài tập thực hành số 1
 
Bài 2: Biến và toán tử - Giáo trình FPT
Bài 2: Biến và toán tử - Giáo trình FPTBài 2: Biến và toán tử - Giáo trình FPT
Bài 2: Biến và toán tử - Giáo trình FPT
 
Ch04
Ch04Ch04
Ch04
 
Phu luca ham
Phu luca hamPhu luca ham
Phu luca ham
 
Chap3 new
Chap3 newChap3 new
Chap3 new
 
[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính
[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính
[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính
 
Matlab intro
Matlab introMatlab intro
Matlab intro
 
Nmlt c06 ham
Nmlt c06 hamNmlt c06 ham
Nmlt c06 ham
 
Arrays formulas rev1
Arrays formulas rev1Arrays formulas rev1
Arrays formulas rev1
 
Cac lenh trong matlab
Cac lenh trong matlabCac lenh trong matlab
Cac lenh trong matlab
 
Do hoa voi_matlab_1714
Do hoa voi_matlab_1714Do hoa voi_matlab_1714
Do hoa voi_matlab_1714
 
Nmlt c06 ham_in
Nmlt c06 ham_inNmlt c06 ham_in
Nmlt c06 ham_in
 
Thuchanh Ktdk-matlab
Thuchanh Ktdk-matlabThuchanh Ktdk-matlab
Thuchanh Ktdk-matlab
 
344444
344444344444
344444
 
matlab co ban
matlab co banmatlab co ban
matlab co ban
 

Giải bài toán markowitz tối ưu hóa danh mục đầu tư chứng khoán bằng vba for excel

  • 1. 6/16/14 Giải bài toán Markowitz: Tối ưu hóa danh mục đầu tư chứng khoán bằng VBA for Excel www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5d5d5d5d5f 1/7 Giải bài toán Markowitz: Tối ưu hóa danh mục đầu tư chứng khoán bằng VBA for Excel Harry Markowitz đã mô hình hóa quá trình lựa chọn danh mục đầu tư (nhờ đó đoạt giải Nobel kinh tế năm 1990) dưới dạng một bài toán quy hoạch phi tuyến (bài toán Markowitz). Mục tiêu của bài toán Markowitz là tìm các tỉ trọng của các chứng khoán trong danh mục đầu tư sao cho giảm tới mức tối thiểu phương sai (rủi ro) của danh mục mà đạt được một mức thu nhập đã định. Giải liên tiếp bài toán với các mức thu nhập mục tiêu người ta xác định được một tập hợp các danh mục đầu tư có hiệu quả. Từ đây nhà đầu tư sẽ lựa chọn một danh mục nằm trong tập hợp này dựa trên quan điểm của mình về việc đánh đổi giữa thu nhập và rủi ro. Tìm Với hệ ràng buộc Trong đó: Phương sai thu nhập của danh mục đầu tư Xi Tỉ trọng của chứng khoán thứ i trong danh mục đầu tư gồm n chứng khoán; do thị trường chứng khoán nước ta chưa cho phép bán khống. (Nếu cho phép bán khống thì bài toán được giải bằng phương pháp Lagrange và rủi ro của danh mục tối ưu còn giảm nhiều hơn, bài toán Markowitz kinh điển không có điều kiện này) ri Thu nhập kỳ vọng của chứng khoán thứ i
  • 2. 6/16/14 Giải bài toán Markowitz: Tối ưu hóa danh mục đầu tư chứng khoán bằng VBA for Excel www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5d5d5d5d5f 2/7 (dữ liệu trích từ trang w eb http://w w w .saga.vn/ Taichinh/Quihoach/Mohinhhoa_Dubao/5673.saga) Thu nhập dự tính của toàn bộ danh mục đầu tư Tôi đã viết một chương trình nhỏ bằng VBA for Excel để giải bài toán Markowitz. Qua tạp chí TGVT giới thiệu để các bạn cùng xem xét và sửa đổi chương trình hiệu quả hơn. THUẬT TOÁN Phương pháp giải: Tham khảo phương pháp “Gradien” và “đơn hình” trong giáo trình “Tối ưu hóa” – Nhà xuất bản khoa học kỹ thuật của PGS.TS Bùi Minh Trí. Bước 1 : Tìm phương án đầu tiên xo Bước 2 : Tính các đạo hàm riêng của f(x) tại xo Bước 3 : Khởi tạo vector ma trận cho bài toán đơn hình Bước 4 : Sử dụng thuật toán đơn hình hai pha để giải bài toán đơn hình để tìm hướng di chuyển xk Bước 5 : Kiểm tra điều kiện tối ưu của bài toán Markowitz Bước 6 : Nếu chưa tìm thấy lời giải, tính nhân tố l, tính xk+1, đặt xo=xk+1 rồi quay trở lại bước 2. CHƯƠNG TRÌNH Chương trình gồm 20 hàm viết bằng VBA for Excel được tóm tắt trong bảng bên dưới. Bạn đọc có thể tải file “Solution for Markowitz.xls” tại website của TGVT để xem chi tiết mã nguồn (mở ToolsMacroVisual Basic Editor để xem). HƯỚNG DẪN SỬ DỤNG Dữ liệu Giả sử chúng ta xem xét việc thiết lập danh mục đầu tư từ 5 mã chứng khoán và có bảng dữ liệu về thu nhập từ tháng 12/2004 đến 7/2007 tại sheet Dulieu vùng B2:F33 như sau: Để thuận lợi cho việc tính toán ta định nghĩa các vùng dữ liệu bằng chọn InsertNameDefine như sau: AGF=dulieu!$B2$B33; GIL=dulieu!$C2$C33; GMD=dulieu!$D2$D33; NKD=dulieu!$E2$E33; REE =dulieu!$F2$F33 Thiết lập các tham số Tham số được thiết lập tại sheet thamso, như sau: Hàm/thủ tục Chức năng Tham số 1. Function Sol(Var As Range, R As Range, RConst As Double, idx As Integer) As Double • Hàm lấy dữ liệu, tính phương án khởi tạo, tạo lập vector Gradien của f(xo), gọi hàm “donhinh” để tìm xk; tìm lamda l, tính toán xk+1. • Trả về tỷ trọng tối ưu của chứng • “Var” bảng dữ liệu về ma trận phương sai; • ”R” bảng dữ liệu về vector thu nhập kỳ vọng của các chứng khoán, • “Rconst” thu nhập mục tiêu của danh mục, • “idx” số thứ tự của chứng khoán cần tính tỷ
  • 3. 6/16/14 Giải bài toán Markowitz: Tối ưu hóa danh mục đầu tư chứng khoán bằng VBA for Excel www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5d5d5d5d5f 3/7 khoán thứ “idx” trong danh mục trọng 2. Sub FirstSol(R() As Double, X() As Double, RConst As Double) • Thủ tục lập phương án đầu tiên của bài toán Markow it (phương án này chỉ bao gồm 2 chứng khoán) • R() vector thu nhập kỳ vọng của các chứng khoán • X() vector trả về của phương án • Rconst thu nhập mục tiêu của chứng khoán 3. Sub SetGradien(X() As Double, Var() As Double, Gra() As Double) • Thủ tục tính các đạo hàm riêng của hàm f(x) rồi gán vào mảng Gra() • X() vector phương án đang xét Xo • Var() (mảng 2 chiều) ma trận hiệp phương sai các chứng khoán • Gra() vector gradien của hàm f(x) 4. Function Lamda(X() As Double, DX() As Double, Var() As Double) As Double • Hàm trả về nhân tố lamda l để từ đó chuyển sang một phương án phân bổ chứng khoán mới tốt hơn • X() vector phương án đang xét Xo • DX() là vector hiệu của phương án Xk và Xo • Var() ma trận hiệp phương sai các chứng khoán 5. Sub SetXnew (X() As Double, Lamda As Double, DX() As Double, X_new () As Double) • Thủ tục trả về phương án tốt hơn vào mảng X_new () • X() vector phương án đang xét Xo • Lamda là nhân tố lamda l • DX() là vector hiệu của phương án Xk và Xo • X_new () phương án tốt hơn trả về 6. Function donhinh(a() As Double, b() As Double, C() As Double, X() As Double) As Boolean • Hàm giải bài toán quy hoạch tuyến tính theo thuật toán đơn hình 2 pha • Trở về True nếu giải được bài toán Phương án tối ưu được trả về mảng X() • A() mảng hai chiều ứng với ma trận tham số của bài toán đơn hình • B() mảng 1 chiều ứng với vector ràng buộc • C() mảng 1 chiều ứng với vetor của hàm mục tiêu 7. Sub SetXVector(X() As Double, base() As Integer, simplex() As Double) • Thủ tục lập phương án cực biên của bài toán quy hoạch tuyến tính rồi gán vào mảng X() • X() phương án cực biên trả về • Base() mảng chỉ tới các cột cơ sở của bảng đơn hình • Simplex() mảng 2 chiều ứng bảng đơn hình của bài toán quy hoạch tuyến tính 8. Function TestDelta(Delta() As Double, X() As Double, base() As Integer, C_matrix() As Double, simplex() As Double, nv As Integer) As Integer • Hàm tính các Delta của bài toán đơn hình rồi gán vào mảng Delta() • Kiểm tra điều kiện tối ưu của bài toán đơn hình • Kiểm tra sự không giải được của bài toán đơn hình • Chỉ ra hướng để chuyển đổi bảng đơn hình tốt hơn bằng cách trả về số thứ tự của Delta lớn nhất( chính là biến cần phải đưa vào cơ sở của bảng đơn hình) và đặt giá trị cho biến nv (giá trị mà Base(nv) chỉ tới là biến phải đưa khỏi cơ sở của bảng đơn hình) • Delta() vector các Delta của bảng đơn hình đang xét • X() phương án cực biên đang xét base() mảng chỉ tới các cột cơ sở của bảng đơn hình • C_matrix() vector của hàm mục tiêu của bài toán đơn hình • Simplex() là bảng đơn hình • nv là giá trị mà Base(nv) chỉ tới chính là biến phải đưa khỏi cơ sở của bảng đơn hình) 9. Sub ChangeSimplex(base() As Integer, simplex() As Double, V_in As Integer, nv As Integer) • Thủ tục biến đổi bảng đơn hình nhằm tìm ra phương án cực biên tốt hơn • base() mảng chỉ tới các cột cơ sở của bảng đơn hình • Simplex() là bảng đơn hình • V_in là biến mới được đưa vào cơ sở • Nv là chỉ số mà Base(nv) trỏ tới phải ra khỏi cơ sở 10. Function Min(arr() As Double) As Integer • Hàm trả về chỉ số của phần tử dương nhỏ nhất trong mảng • arr() mảng 1 chiều 11. Function Max(arr() As Double) As Integer • Hàm trả về chỉ số của phần tử lớn nhất trong mảng • arr() mảng 1 chiều 12. Function Min2(arr() As Double) As Integer • Hàm trả về chỉ số của phần tử nhỏ nhất trong mảng • arr() mảng 1 chiều
  • 4. 6/16/14 Giải bài toán Markowitz: Tối ưu hóa danh mục đầu tư chứng khoán bằng VBA for Excel www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5d5d5d5d5f 4/7 13. Function SumProduct(X() As Double, Y() As Double) As Double • Hàm trả về tích vô hướng của 2 vector • X() mảng 1 chiều • Y() mảng 1 chiều 14. Function SumSuper(X() As Double, Y() As Double, m As Integer) As Double • Hàm trả về tích vô hướng của 1 vector và 1 dòng của 1 ma trận • X() mảng 1 chiều • Y() ma trận • M chỉ số dòng của ma trận được nhân 15. Sub SetDX(DX() As Double, X_cu() As Double, X_moi() As Double) • Thủ tục trả về hiệu của hai vector X_cu() và X_moi() vào vector DX() 16. Sub SetEqual(X() As Double, Y() As Double • Thủ tục đặt vector X() bằng với vector Y() 17. Sub SetB(b() As Double, n As Integer, RConst As Double) • Thủ tục gán giá trị cho vector b() của bài toán đơn hình • B() vector ràng buộc của bài toán đơn hình • N chính bằng số chứng khoán • Rconst thu nhập mục tiêu của danh mục chứng khoán 18. Sub SetA(a() As Double, n As Integer, R() As Double • Thủ tục gán giá trị cho mảng 2 chiều a() của bài toán đơn hình • A() ma trận tham số của bài toán đơn hình • N chính bằng số chứng khoán • R() vector thu nhập kỳ vọng của các chứng khoán 19. Function SetC(C() As Double, n As Integer, G() As Double) • Thủ tục gán giá trị cho vector c() của bài toán đơn hình • C() vector mục tiêu của bài toán đơn hình • N chính bằng số chứng khoán • G() vector gradien của hàm f(x) 20. Public Function Varience(Var_matrix As Range, W_matrix As Range) As Double • Hàm trả về phương sai của danh mục đầu tư • Var_matrix là bảng ma trận phương sai/hiệp phương sai • W_matrix phương án phân bổ các chứng khoán • Vùng từ B3:F3 là các tham số về thu nhập kỳ vọng (trung bình) chứng khoán Tại ô B3 công thức =AVERAGE(AGF) Tại ô C3 công thức =AVERAGE(GIL) Tại ô D3 công thức =AVERAGE(GMD) Tại ô E3 công thức =AVERAGE(NKD) Tại ô F3 công thức=AVERAGE(REE)
  • 5. 6/16/14 Giải bài toán Markowitz: Tối ưu hóa danh mục đầu tư chứng khoán bằng VBA for Excel www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5d5d5d5d5f 5/7 • Vùng từ B4:F4 là các tham số về độ lệch chuẩn về thu nhập của chứng khoán Tại ô B4 công thức =SQRT(VAR(AGF)) Tại ô C4 công thức = SQRT(VAR(GIL)) Tại ô D4 công thức = SQRT(VAR(GMD)) Tại ô E4 công thức = SQRT(VAR(NKD)) Tại ô F4 công thức= SQRT(VAR(REE)) • Vùng từ B9:F13 là ma trận phương sai/hiệp phương sai của thu nhập của các chứng khoán Tại ô B9 là phương sai của chứng khoán AGF; công thức =VAR(AGF) Tại ô C10 phương sai của chứng khoán GIL; công thức =VAR(GIL) Tại ô D11 phương sai của chứng khoán GMD; công thức =VAR(GMD) Tại ô E12 phương sai của chứng khoán NKD; công thức =VAR(NKD) Tại ô F13 phương sai của chứng khoán REE; công thức =VAR(REE) Tại ô B10 là hiệp phương sai của chứng khoán AGF và GIL; công thức =COVAR(AGF;GIL) Tại ô C9 là hiệp phương sai của chứng khoán GIL và AGF; công thức =COVAR(AGF;GIL) Tại ô B11 là hiệp phương sai của chứng khoán AGF và GMD; công thức =COVAR(AGF;GMD) Tương tự như vậy ta điền hết công thức vào các ô còn trống • Ta tiếp tục định nghĩa các vùng dữ liệu sau cho tiện việc tính toán (bằng InsertNameDefine) Thunhap=thamso!$B$3:$F$3;phuongsai= thamso!$B$9:$F$13 Xử lý bài toán
  • 6. 6/16/14 Giải bài toán Markowitz: Tối ưu hóa danh mục đầu tư chứng khoán bằng VBA for Excel www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5d5d5d5d5f 6/7 • Vùng từ D3:H23 là các tính toán xử lý của chúng ta về tỷ trọng phân bổ chứng khoán, ví dụ: Tại ô D4 công thức =sol(phuongsai;thunhap;A4;1) Tại ô E4 công thức =sol(phuongsai;thunhap;A4;2) Tại ô F4 công thức =sol(phuongsai;thunhap;A4;3) Tại ô G4 công thức =sol(phuongsai;thunhap;A4;4) Tại ô F4 công thức =sol(phuongsai;thunhap;A4;5) Tương tự ô G22 công thức =sol(phuongsai;thunhap;A22;4) • Vùng B3:B23 là tính toán về phương sai của danh mục, ví dụ: tại ô B2 có công thức =varience(phuongsai;D2:F2) tại ô B22 có công thức =varience(phuongsai;D22:F22) • Vùng C3:C23 là tính toán về độ lệch chuẩn của danh mục: tại ô C2 công thức=SQRT(B2) tại ô C22 công thức=SQRT(B22) Thông qua kết quả tính toán ta thấy ngay được hiệu của việc đa dạng hóa danh mục đầu tư, ví dụ danh mục đầu tư Y ở vùng D13:F13 (AGF=26,7%;GIL=17,4%;GMD=21,2%;NKD=11,4%;REE=23,3%) có thu nhập là 7% và độ lệch chuẩn là 15,04%; danh mục này hiệu quả hơn danh mục Z gồm 100% chứng
  • 7. 6/16/14 Giải bài toán Markowitz: Tối ưu hóa danh mục đầu tư chứng khoán bằng VBA for Excel www.pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5d5d5d5d5f 7/7 khoán GMD có thu nhập 7% và độ lệch chuẩn 24,2%. Có thể nói danh mục Y chi phối danh mục Z. Các danh mục đầu tư bị chi phối bởi các danh mục đầu tư khác gọi là “các danh mục đầu tư kém hiệu quả”. Tập hợp hiệu quả là một phần của danh mục đầu tư khả dĩ có độ lệch chuẩn tối thiểu sau khi cắt bỏ các danh mục đầu tư kém hiệu quả. Để làm rõ hơn điều này ta chọn vùng A3:C23 để vẽ biểu đồ có dạng, như sau: Ta thấy ngay danh mục đầu tư nằm trên đoạn BC chính là đường danh mục đầu tư hiệu quả. Đây là các danh mục tốt nhất bởi vì không thể tìm được một danh mục nào khác tốt hơn về thu nhập mà lại không phải hy sinh về rủi ro (độ lệch) và ngược lại không thể tìm một danh mục nào khác có rủi ro ít hơn mà không phải hy sinh về thu nhập. Các danh mục đầu tư nằm phía dưới đoạn BC là không hiệu quả vì cùng một mức rủi ro nhưng lại có thu nhập thấp hơn. Nhà đầu tư thông minh sẽ lựa chọn một danh mục nào đó nằm trên đường BC dựa trên quan điểm của anh ta về việc đánh đổi giữa thu nhập và rủi ro. Nguyễn Văn Thắng Công ty hợp danh Kiểm toán Hà Nội Thang_via@yahoo.com [In trang] [Đóng trang] © Tạp chí Thế Giới Vi Tính - PC World VN. CQ chủ quản: Sở Khoa Học và Công Nghệ TP.HCM Giấy phép (1) số 196/GP-BV HTT do Bộ V ăn hóa Thông tin cấp ngày 27-06-2003 Giấy phép (2) số 202/GP-BC do Bộ Thông tin v à Truy ền thông - C ục Báo chí cấp ngày 05-05-2008 Tòa soạn: Lầu 5, 79 Trương Định, Phường Bến Thành, Q uận 1, TP. HC M - ĐT: (08) 38 257 745 Bản quy ền của Thế Giới V i Tính - PC World V N