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

Nghiên cứu phương pháp tiếp cận mờ trong lựa chọn danh mục dự án đầu tư tối ưu

227 45 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

B GIÁO D C VÀ ÀO T O TR NG I H C KINH T TP.H CHÍ MINH  CÁI PHÚC THIÊN KHOA NGHIÊN C U PH NG PHÁP TI P C N M TRONG L A CH N DANH M C UT T I LU N V N TH C S KINH T THÀNH PH H CHÍ MINH - N M 2013 U B GIÁO D C VÀ ÀO T O TR NG I H C KINH T TP.H CHÍ MINH  CÁI PHÚC THIÊN KHOA NGHIÊN C U PH NG PHÁP TI P C N M TRONG L A CH N DANH M C UT T I U Chuyên ngành : TÀI CHÍNH – NGÂN HÀNG Mã s : 60340201 LU N V N TH C S KINH T NG IH NG D N KHOA H C PGS.TS NGUY N TH LIÊN HOA THÀNH PH H CHÍ MINH - N M 2013 C NG HÒA XÃ H I CH NGH A VI T NAM c L p – T Do – H nh Phúc L I CAM OAN Tôi xin cam đoan Lu n v n Th c s Kinh t “Nghiên c u ph ng pháp ti p c n m l a ch n danh m c đ u t t i u” công trình nghiên c u c a riêng tơi Các k t qu nghiên c u lu n v n trung th c ch a t ng đ b t c cơng trình khác c cơng b H c viên cao h c Cái Phúc Thiên Khoa M CL C TRANG PH BÌA L I CAM OAN M CL C DANH M C CÁC KÝ HI U VÀ CH VI T T T DANH M C CÁC B NG DANH M C CÁC BI U DANH M C CÁC HÌNH V TĨM T T CH NG 1: GI I THI U CH NG 2: T NG QUAN CÁC NGHIÊN C U TR C ÂY 2.1 Lý thuy t t p m s m (Fuzzy set theory and Fuzzy number) 2.1.1 Logic m (Fuzzy Logic) 10 2.1.1.1 Logic truy n th ng c n .10 2.1.1.2 Logic đa tr (multi-valued logic) .10 2.1.2 T p m (Fuzzy Set) 11 2.1.3 S m (Fuzzy Number) 13 2.1.3.1 S m hình tam giác (triangular fuzzy number) .14 2.1.3.2 S m hình thang (trapezoid fuzzy number) 16 2.1.3.3 S m LR (LR Fuzzy Number) (Basim & Imad, 2003) 18 2.2 R i ro gi m giá m (Fuzzy Downside Risk) 19 CH NG 3: PH NG PHÁP NGHIÊN C U 21 3.1 Mơ hình nghiên c u 21 3.2 L y m u x lý d li u 32 3.3 Tính tốn danh m c t i u m (fuzzy portfolio) 33 3.4 Tính toán danh m c t i u theo ph ng pháp gi n đ n (naïve portfolio selection) 34 CH NG 4: N I DUNG VÀ CÁC K T QU NGHIÊN C U 35 4.1 Nh ng m chung c a mơ hình 35 4.1.1 S h i t s l ng ch ng khoán danh m c t i u 35 4.1.2 Tính đa d ng hóa c a danh m c t i u: 45 4.1.3 Hi u qu c a danh m c m t i u so v i danh m c m 1/N: 45 4.1.4 V trí c a đ ng biên hi u qu thay đ i 47 4.2 Mơ hình c a (Zulkifli Mohamed c ng s , 2009) 48 4.3 i u ch nh mô hình P1 & P2 c a (Vercher c ng s , 2007) 49 4.4 i u ch nh mơ hình c a (Zulkifli Mohamed c ng s , 2009) 51 CH NG 5: K T LU N & TH O LU N .53 5.1 K t lu n 53 5.2 Th o lu n 54 TÀI LI U THAM KH O PH L C A CÁC NGHIÊN C U VÀ NG D NG C A LÝ THUY T T P M VÀ LOGIC M TRONG CÁC L NH V C KINH T - TÀI CHÍNH……… B CÁC PHÉP TOÁN C B N TRÊN T P M …….……………………………………7 C CÁC PHÉP TOÁN C B N TRÊN S M ………………………………………… D BI N NGÔN NG VÀ TI N TRÌNH M HĨA & GI I M 12 E MÔ T CÁC M U D LI U…………………………………………………………16 F C U TRÚC CÁC FILE EXCEL TÍNH TOÁN……………………………………… 24 G NH Y C A H S CZV KHI NH N NH ÁNH GIÁ C A NHÀ UT THAY I……………………………………… ………………………………… 35 H SO SÁNH HI U QU C A DANH M C T I U M V I DANH M C NAÏVE B NG T S SORTINO …………………………………………………………… 47 I S H I T S L NG CH NG KHOÁN TRONG DANH M C T I U M VÀ SO SÁNH HI U QU C A DANH M C T I U M V I DANH M C NAÏVE B NG T S SORTINO KHI S CH NG KHOÁN TRONG DANH M C THAY I…… …………………………………………………………………………… 83 J TH NG BIÊN HI U QU & S CH NG KHOÁN TRONG DANH M C T I U KHI C NH R I RO GI M GIÁ VÀ T I A HÓA T SU T SINH L I……………………………….………………………………………………… 119 K TH NG BIÊN HI U QU & S CH NG KHOÁN TRONG DANH M C T I U KHI C NH T SU T SINH L I VÀ T I THI U HÓA R I RO GI M GIÁ………………………………………….………………….…………………… 131 L MÃ NGU N VBA C A CÁC MACRO CHO Q TRÌNH TÍNH TỐN T I U VÀ V TH NG BIÊN HI U QU T NG… ……………………… 143 DANH M C CÁC KÝ HI U VÀ CH CV TBTL VI T T T Coefficient Variation i m Trung Bình Tích L y FMPM Financial Markets and Portfolio Management HNX Ha Noi Stock Exchange HOSE Ho Chi Minh Security Exchange LPM Lower Partial Moment MAR Minimum Accepted Return MPT Modern Portfolio Theory MV Mean – Variance RFR Risk Free Rate TSSL T Su t Sinh L i TTCK Th Tr ng Ch ng Khoán Investor’s judgment (Nh n đ nh đánh giá c a nhà đ u t ) DANH M C CÁC B NG B ng 4.1: S h i t s l ng ch ng khoán danh m c t i u m thay đ i 36 B ng 4.2: S h i t s l ng ch ng khoán danh m c t i u m thay đ i c a h s CV uj thay đ i 41 B ng 4.3: S h i t s l ng ch ng khoán hi u qu c a danh m c t i u m so v i danh m c m 1/N thay s l ng ch ng khoán c a danh m c m 1/N 43 DANH M C CÁC BI U Bi u đ 4.1: S h i t s l ng ch ng khoán danh m c t i u m c đ nh r i ro gi m giá t i đa hóa TSSL m c tiêu 38 Bi u đ 4.2: S h i t s l ng ch ng khoán danh m c t i u m c đ nh TSSL t i hi u hóa r i ro gi m giá 40 Bi u đ 4.3: Quan h gi a đ ng biên hi u qu c a mơ hình (Zulkifli Mohamed c ng s , 2009) uj = 30% t i đa hóa TSSL 48 Bi u đ 4.4: Quan h gi a đ ng biên hi u qu c a mơ hình (Zulkifli Mohamed c ng s , 2009) uj = 15% t i thi u hóa r i ro gi m giá 48 Bi u đ 4.5: Quan h c a đ ng biên hi u qu c a d n xu t mơ hình P1 (Vercher c ng s , 2007) uj = 15% t i đa hóa TSSL 49 Bi u đ 4.6: Quan h c a đ ng biên hi u qu c a d n xu t mơ hình P1 (Vercher c ng s , 2007) uj = 20% t i thi u hóa r i ro gi m giá 50 Bi u đ 4.7: Quan h c a đ ng biên hi u qu c a d n xu t mơ hình P2 (Vercher c ng s , 2007) uj = 20% t i đa hóa TSSL 50 Bi u đ 4.8: Quan h c a đ ng biên hi u qu c a d n xu t mơ hình P2 (Vercher c ng s , 2007) uj = 20% t i thi u hóa r i ro gi m giá 51 Bi u đ 4.9: Quan h c a đ ng biên hi u qu c a d n xu t mơ hình (Zulkifli Mohamed c ng s , 2009) uj = 20% t i đa hóa TSSL 52 Bi u đ 4.10: Quan h c a đ ng biên hi u qu c a d n xu t mơ hình (Zulkifli Mohamed c ng s , 2009) uj = 20% t i thi u hóa r i ro gi m giá 52 DANH M C CÁC HÌNH V Hình 2.1: Logic c n logic m 11 Hình 2.2: Hàm thành viên c a t p h p c n 11 Hình 2.3: Lý thuy t t p h p c n lý thuy t t p m 12 Hình 2.4: Các d ng t p m .13 Hình 2.5: Các d ng s m 14 Hình 2.6: S m tam giác .15 Hình 2.7: S m tam giác có AL = AR .16 Hình 2.8: S m tam giác trung tâm đ i x ng qua tr c 16 Hình 2.9: S m hình thang .17 Hình 2.10: S m hình thang d ng trung tâm (central form) 17 Hình 2.11: S hình thang ph i 18 Hình 2.12: S hình thang trái 18 Hình 2.13: S m L-R 18 Hình 3.1: Hàm thành viên su t sinh l i c a tài s n, (Zulkifli Mohamed c ng s , 2009) 23 Hình 3.2: ng biên hi u qu - ph ng sai trung bình đ ng biên hi u qu MV (danh m c I), (Li & Xu, 2007) 27 Hình 3.3: ng biên hi u qu - ph ng sai trung bình đ ng biên hi u qu MV (danh m c II), (Li & Xu, 2007) 27 Hình 3.4: ng biên hi u qu - ph ng sai trung bình đ ng biên hi u qu MV (danh m c III), (Li & Xu, 2007) 28 Hình 3.5: ng biên hi u qu - ph ng sai trung bình L c quan, Trung dung Bi quan, (Li & Xu, 2007) 28 PH L C: Hình PL.1: M t ph ng đ c đ nh ngh a b i mơ hình t h i quy (AR) .4 Hình PL.2: th bi u di n lu t m s d ng mơ hình t h i quy (FAR) Hình PL.3: Bù c a tâp m Hình PL.4: H p hai t p m Hình PL.5: Giao hai t p m .8 Hình PL.6: C ng hai s m tam giác .9 Hình PL.7: Nhân & chia s m tam giác v i s th c Hình PL.8: Bi u di n giá tr m cho bi n ngôn ng 12 TÓM T T M c tiêu nghiên c u: u t th tr ng ch ng khoán m t v n đ đ y th thách Nhà đ u t ph i đ i m t v i v n đ : s ng u nhiên, m h nh p nh ng bi n đ ng giá ch ng khoán Vi c phân tích danh m c đ u t t i u không ch đ n thu n s d ng d li u l ch s nh ng th tr t ng th hi n kh không h n s l p l i ng lai Nh t đ i v i nh ng qu c gia có th tr ng ch ng khoán m i n i nh Vi t Nam mà d li u l ch s ch a có đ nhi u Ngoài ra, s thay đ i c a thơng tin xác, s nh n đ nh kinh nghi m c a nhà đ u t , đ c bi t v i chuyên gia ch ng khoán, nh ng ng kinh nghi m v th tr ng c n đ ng đ thông tin iv ns h um tl c xem xét q trình phân tích quy t đ nh đ u t Vì v y, Nhà đ u t c n m t mơ hình có th di n t đ c tình hu ng th c t đ gi i quy t v n đ khơng ch c ch n mà mơ hình truy n th ng b qua Ph ng pháp ti p c n m k t h p v i m t s c i bi n c a mơ hình truy n th ng đ d n xu t mơ hình l a ch n danh m c đ u t t i u có kh n ng x lý v n đ Cho đ n hi n nay, ch a có nghiên c u th c nghi m Vi t Nam v v n đ ti p c n m l a ch n danh m c đ u t TTCK, v y, nghiên c u ph ng pháp ti p c n m s m m t hu ng m i cho nghiên c u kinh t t i Vi t Nam Thi t k /ph ng pháp nghiên c u/ph ng pháp ti p c n: Các mơ hình l a ch n danh m c m c a (Zulkifli Mohamed c ng s , 2009), (Vercher c ng s , 2007) (Li & Xu, 2007) đ c s d ng, u ch nh, d n xu t ki m nghi m d a c s d li u giá ch ng khoán theo tháng đ c u ch nh c a t t c công ty niêm y t TTCK Vi t Nam (trên sàn HOSE HNX) Các mã ch ng khốn cịn l i sau sàng l c d li u m u ban đ u đ c chia thành nhóm theo khung th i gian s l khác Các danh m c t i u m đ ng ch ng khoán c xác đ nh b ng toán t i u hóa v i ràng bu c m c tiêu Sau đó, hi u qu c a danh m c t i u m đ v i danh m c m 1/N t đ c so sánh ng ng b ng t s Sortino M i quan h hình d ng ng biên hi u qu c a mơ hình c ng đ c phát th o phân tích 142 – Ph L c TH NG BIÊN HI U QU & S TÀI S N TRONG DANH M C T I NH T SU T SINH L I VÀ T I THI U HÓA R I RO GI M GIÁ Time Frame: years (Vercher et al, 2007) P2 Model Revised Sample: 92 assets Max allocation: Optimized Lamda: U KHI C 30% 0.3 1.20% 5.5 1.00% Fuzzy Return 4.5 0.80% 0.60% 3.5 0.40% 0.20% 0.00% 0.00% Number of Selected Assets Efficient Frontier - Vercher P2 Model Revised [ max allocation = 30% ; lamda = 0.3] 2.5 5.00% 10.00% 15.00% 20.00% 25.00% 30.00% Fuzzy Downside Risk Efficient Frontier - EF Time Frame: years Number of Selected Assets (Vercher et al, 2007) P2 Model Revised Sample: 92 assets Max allocation: Optimized Lamda: 30% 0.7 1.40% 5.5 1.20% 1.00% 4.5 0.80% 0.60% 3.5 0.40% 0.20% 2.5 0.00% 12.50% 13.00% 13.50% 14.00% 14.50% 15.00% Number of Selected Assets Fuzzy Return Efficient Frontier - Vercher P2 Model Revised [ max allocation = 30% ; lamda = 0.7] 15.50% Fuzzy Downside Risk Efficient Frontier - EF Time Frame: years Number of Selected Assets (Vercher et al, 2007) P2 Model Revised Sample: 92 assets Max allocation: Optimized Lamda: 30% 1.0 Efficient Frontier - Vercher P2 Model Revised [ max allocation = 30% ; lamda = 1.0] 1.80% 5.5 1.60% 4.5 1.20% 1.00% 0.80% 3.5 0.60% 0.40% 2.5 0.20% 0.00% 12.60% 12.80% 13.00% 13.20% 13.40% 13.60% 13.80% 14.00% 14.20% 14.40% 14.60% Fuzzy Downside Risk Efficient Frontier - EF Number of Selected Assets Number of Selected Assets 1.40% Fuzzy Return K 143 – Ph L c L.1 MÃ NGU N VBA C A MACRO TÍNH TỐN, C P NH T S LI U DANH M C T I L MÃ NGU N VBA C A CÁC MACRO CHO Q TRÌNH TÍNH TỐN T I T NG U VÀ V L.1 Tính tốn, c p nh t s li u danh m c t i u m danh m c m 1/N Option Explicit Sub updatePortfolio6Years92Assets() Dim tmpStr As String With Application ScreenUpdating = False DisplayAlerts = False EnableEvents = False AlertBeforeOverwriting = False End With Range("B30:CO31").Select Selection.Copy Range("B32").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Selection.Copy Range("CQ2").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Application.CutCopyMode = False If Range("B34").Value = "agf" Then tmpStr = _ "=[FZPortfolio_6years_dataSource.xls]excel_" & Range("B34").Value & ".xls!RC[-78]*R34C3" _ & "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B35").Value & "!RC[-78]*R35C3" & "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B36").Value & "!RC[-78]*R36C3" & "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B37").Value & "!RC[-78]*R37C3" Else tmpStr = _ "=[FZPortfolio_6years_dataSource.xls]excel_" & Range("B34").Value & "!RC[-78]*R34C3" _ & "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B35").Value & "!RC[-78]*R35C3" & "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B36").Value & "!RC[-78]*R36C3" & "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B37").Value & "!RC[-78]*R37C3" End If If Range("B38").Value "" Then _ _ _ _ UM TH VÀ DANH M C M 1/N NG BIÊN HI U QU 144 – Ph L c L.1 MÃ NGU N VBA C A MACRO TÍNH TỐN, C P NH T S tmpStr = tmpStr & End If If Range("B39").Value tmpStr = tmpStr & End If If Range("B40").Value tmpStr = tmpStr & End If If Range("B41").Value tmpStr = tmpStr & End If LI U DANH M C T I UM VÀ DANH M C M "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B38").Value & "!RC[-78]*R38C3" "" Then "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B39").Value & "!RC[-78]*R39C3" "" Then "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B40").Value & "!RC[-78]*R40C3" "" Then "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B41").Value & "!RC[-78]*R41C3" Range("CT2").Select Range("CT2").Activate ActiveCell.FormulaR1C1 = tmpStr Range("CT2").Select Selection.AutoFill Destination:=Range("CT2:CT73"), Type:=xlFillDefault Application.SendKeys ("{Enter}") Application.Run "ATPVBAEN.XLA!Descr", ActiveSheet.Range("$CT$2:$CT$73"), ActiveSheet.Range("$CW$42"), "C", False, True, , , 95 Application.SendKeys ("{Enter}") Application.Run "ATPVBAEN.XLA!Descr", ActiveSheet.Range("$CU$2:$CU$73"), ActiveSheet.Range("$CW$59"), "C", False, True, , , 95 Application.SendKeys ("{Enter}") Application.Run "ATPVBAEN.XLA!Regress", ActiveSheet.Range("$CT$2:$CT$73"), ActiveSheet.Range("$CS$2:$CS$73"), False, False, 95, ActiveSheet.Range("$CS$75"), False, False, False, False, , False Application.SendKeys ("{Enter}") Application.Run "ATPVBAEN.XLA!Regress", ActiveSheet.Range("$CU$2:$CU$73"), ActiveSheet.Range("$CS$2:$CS$73"), False, False, 95, ActiveSheet.Range("$CS$94"), False, False, False, False, , False Range("A2").Select End Sub Sub updateNaivePortfolio6Years92Assets() Dim tmpStr As String With Application ScreenUpdating = False DisplayAlerts = False EnableEvents = False AlertBeforeOverwriting = False End With Range("B30:CO31").Select 1/N 145 – Ph L c L.1 MÃ NGU N VBA C A MACRO TÍNH TỐN, C P NH T S LI U DANH M C T I UM Selection.Copy Range("B32").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Selection.Copy Range("CQ2").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Application.CutCopyMode = False If Range("B34").Value = "agf" Then tmpStr = _ "=[FZPortfolio_6years_dataSource.xls]excel_" & Range("B34").Value & ".xls!RC[-78]*R34C3" _ & "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B35").Value & "!RC[-78]*R35C3" & "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B36").Value & "!RC[-78]*R36C3" & "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B37").Value & "!RC[-78]*R37C3" Else tmpStr = _ "=[FZPortfolio_6years_dataSource.xls]excel_" & Range("B34").Value & "!RC[-78]*R34C3" _ & "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B35").Value & "!RC[-78]*R35C3" & "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B36").Value & "!RC[-78]*R36C3" & "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B37").Value & "!RC[-78]*R37C3" End If If Range("B38").Value tmpStr = tmpStr & End If If Range("B39").Value tmpStr = tmpStr & End If If Range("B40").Value tmpStr = tmpStr & End If If Range("B41").Value tmpStr = tmpStr & End If End Sub _ _ "" Then "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B38").Value & "!RC[-78]*R38C3" "" Then "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B39").Value & "!RC[-78]*R39C3" "" Then "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B40").Value & "!RC[-78]*R40C3" "" Then "+[FZPortfolio_6years_dataSource.xls]excel_" & Range("B41").Value & "!RC[-78]*R41C3" Range("CT2").Select Range("CT2").Activate ActiveCell.FormulaR1C1 = tmpStr Range("CT2").Select Selection.AutoFill Destination:=Range("CT2:CT73"), Type:=xlFillDefault Range("A2").Select _ _ VÀ DANH M C M 1/N 146 – Ph L c L.2 MÃ NGU N VBA C A MACRO T O T NG B T SU T SINH L I S D NG CÔNG C SOLVER L.2 T o t đ ng b d li u đ D LI U NG BIÊN HI U QU V I M C TIÊU T I A HÓA ng biên hi u qu v i m c tiêu t i đa hóa TSSL s d ng cơng c Solver Option Explicit Sub SolveMin(ByRef fuzzyDownsideRiskMin As Double, ByRef fuzzyReturnMin As Double, ByRef solverResult As Long) ActiveSheet.Range("B23:CO23").Value = Application.ScreenUpdating = False SolverLoad (ActiveSheet.Range("A50:A54")) SolverOptions MaxTime:=1000, Iterations:=1000 solverResult = Application.Run("Solver.xla!SolverSolve", True) fuzzyDownsideRiskMin = Range("B25").Value fuzzyReturnMin = Range("B28").Value End Sub Sub SolveMaxReturn(ByVal downsideRiskTarget As Double, ByRef solverResult As Long) Dim strTmp As String ActiveSheet.Range("B23:CO23").Value = Application.ScreenUpdating = False SolverLoad loadArea:=Range("A57:A62") strTmp = CStr(downsideRiskTarget) SolverChange CellRef:="$B$25", Relation:=2, FormulaText:=strTmp SolverOptions MaxTime:=1000, Iterations:=1000 solverResult = Application.Run("Solver.xla!SolverSolve", True) End Sub Sub SolveMinRisk(ByVal returnTarget As Double, ByRef solverResult As Long) Dim strTmp As String 147 – Ph L c L.2 MÃ NGU N VBA C A MACRO T O T NG B T SU T SINH L I S D NG CÔNG C SOLVER D LI U NG BIÊN HI U QU V I M C TIÊU T I A HÓA ActiveSheet.Range("B23:CO23").Value = Application.ScreenUpdating = False SolverLoad loadArea:=Range("A65:A70") strTmp = CStr(returnTarget) SolverChange CellRef:="$B$28", Relation:=2, FormulaText:=strTmp SolverOptions MaxTime:=1000, Iterations:=1000 solverResult = Application.Run("Solver.xla!SolverSolve", True) End Sub Sub TaoDuLieuDuongEF() Dim fuzzyDownsideRiskTarget As Double Dim fuzzyDownsideRiskMin As Double Dim fuzzyReturnMin As Double Dim counter As Long Dim assetColIndx As Long Dim solvingResult As Long fuzzyDownsideRiskTarget = fuzzyDownsideRiskMin = fuzzyReturnMin = counter = assetColIndx = solvingResult = 100 With Application ScreenUpdating = False End With Call SolveMin(fuzzyDownsideRiskMin, fuzzyReturnMin, solvingResult) If solvingResult > Then ' Result = 0, Solution found, optimality and constraints satisfied ' Result = 1, Converged, constraints satisfied ' Result = 2, Cannot improve, constraints satisfied ' Result = 3, Stopped at maximum iterations ' Result = 4, Solver did not converge ' Result = 5, No feasible solution Beep MsgBox "Solver was unable to find a solution.", vbExclamation, "SOLUTION NOT FOUND" Exit Sub End If ActiveSheet.Range("DL3:HA32").ClearContents 148 – Ph L c L.2 MÃ NGU N VBA C A MACRO T O T NG B T SU T SINH L I S D NG CÔNG C SOLVER D LI U NG BIÊN HI U QU V I M C TIÊU T I A HÓA ActiveSheet.Range("DL3:HA32").Cells(1, 1).Value = ActiveSheet.Range("B25").Value ActiveSheet.Range("DL3:HA32").Cells(1, 2).Value = ActiveSheet.Range("B28").Value For assetColIndx = To 92 If Not ActiveSheet.Range("B31:CO31").Cells(1, assetColIndx).Value = "" Then If Round(ActiveSheet.Range("B31:CO31").Cells(1, assetColIndx).Value * 100, 0) > Then ActiveSheet.Range("DN3:HA32").Cells(1, assetColIndx).Value = ActiveSheet.Range("B31:CO31").Cells(1, assetColIndx).Value End If End If Next assetColIndx For counter = To 28 fuzzyDownsideRiskTarget = Round(fuzzyDownsideRiskMin + (counter - 1) * 0.01, 4) solvingResult = 100 Call SolveMaxReturn(fuzzyDownsideRiskTarget, solvingResult) If solvingResult > Then Beep GoTo ContinueLoop End If Application.SendKeys ("{Enter}") ActiveSheet.Range("DL3:HA32").Cells(counter, 1).Value = ActiveSheet.Range("B25").Value ActiveSheet.Range("DL3:HA32").Cells(counter, 2).Value = ActiveSheet.Range("B28").Value For assetColIndx = To 92 If Not ActiveSheet.Range("B31:CO31").Cells(1, assetColIndx).Value = "" Then If Round(ActiveSheet.Range("B31:CO31").Cells(1, assetColIndx).Value * 100, 0) > Then ActiveSheet.Range("DN3:HA32").Cells(counter, assetColIndx).Value = ActiveSheet.Range("B31:CO31").Cells(1, assetColIndx).Value End If End If Next assetColIndx ContinueLoop: Next counter End Sub Sub backup() ActiveSheet.Range("B112:CO112").Value = ActiveSheet.Range("weightArr").Value End Sub Sub restore() Application.ScreenUpdating = False SolverLoad (ActiveSheet.Range("A65:A70")) ActiveSheet.Range("weightArr").Value = ActiveSheet.Range("B112:CO112").Value ActiveSheet.Range("B112:CO112").Value = "" End Sub 149 – Ph L c L.3 MÃ NGU N VBA C A MACRO T O T 1/N KHI S TÀI S N TRONG DANH M C M L.3 T o t đ ng b d li u đ NG B D 1/N THAY LI U SO SÁNH DANH M C M I U V I DANH M C M ng biên hi u qu v i m c tiêu t i thi u hóa r i ro gi m giá s d ng công c Solver Option Explicit Sub SolveMin(ByRef fuzzyDownsideRiskMin As Double, ByRef fuzzyReturnMin As Double, ByRef solverResult As Long) ActiveSheet.Range("B23:CO23").Value = Application.ScreenUpdating = False SolverLoad (ActiveSheet.Range("A50:A54")) SolverOptions MaxTime:=1000, Iterations:=1000 solverResult = Application.Run("Solver.xla!SolverSolve", True) fuzzyDownsideRiskMin = Range("B25").Value fuzzyReturnMin = Range("B28").Value End Sub Sub SolveMaxReturn(ByVal downsideRiskTarget As Double, ByRef solverResult As Long) Dim strTmp As String ActiveSheet.Range("B23:CO23").Value = Application.ScreenUpdating = False SolverLoad loadArea:=Range("A57:A62") strTmp = CStr(downsideRiskTarget) SolverChange CellRef:="$B$25", Relation:=2, FormulaText:=strTmp SolverOptions MaxTime:=1000, Iterations:=1000 solverResult = Application.Run("Solver.xla!SolverSolve", True) End Sub Sub SolveMinRisk(ByVal returnTarget As Double, ByRef solverResult As Long) Dim strTmp As String T I 150 – Ph L c L.3 MÃ NGU N VBA C A MACRO T O T 1/N KHI S TÀI S N TRONG DANH M C M NG B D 1/N THAY ActiveSheet.Range("B23:CO23").Value = Application.ScreenUpdating = False SolverLoad loadArea:=Range("A65:A70") strTmp = CStr(returnTarget) SolverChange CellRef:="$B$28", Relation:=2, FormulaText:=strTmp SolverOptions MaxTime:=1000, Iterations:=1000 solverResult = Application.Run("Solver.xla!SolverSolve", True) End Sub Sub TaoDuLieuDuongEF() Dim fuzzyReturnTarget As Double Dim fuzzyDownsideRiskMin As Double Dim fuzzyReturnMin As Double Dim counter As Long Dim assetColIndx As Long Dim solvingResult As Long Dim numOfRoundedDigit As Long Dim plusMinus As Integer Dim fuzzyReturnStep As Double Dim dataRow As Long fuzzyReturnTarget = fuzzyDownsideRiskMin = fuzzyReturnMin = counter = assetColIndx = solvingResult = 100 numOfRoundedDigit = plusMinus = With Application ScreenUpdating = False End With Call SolveMin(fuzzyDownsideRiskMin, fuzzyReturnMin, solvingResult) If solvingResult > Then ' Result = 0, Solution found, optimality and constraints satisfied ' Result = 1, Converged, constraints satisfied ' Result = 2, Cannot improve, constraints satisfied LI U SO SÁNH DANH M C M I T I U V I DANH M C M 151 – Ph L c L.3 MÃ NGU N VBA C A MACRO T O T 1/N KHI S TÀI S N TRONG DANH M C M NG B D 1/N THAY LI U SO SÁNH DANH M C M I T I U V I DANH M C M ' Result = 3, Stopped at maximum iterations ' Result = 4, Solver did not converge ' Result = 5, No feasible solution MsgBox "Solver was unable to find a solution.", vbExclamation, "SOLUTION NOT FOUND" Exit Sub End If ActiveSheet.Range("DL3:HA32").ClearContents ActiveSheet.Range("DL3:HA32").Cells(1, 1).Value = ActiveSheet.Range("B25").Value ActiveSheet.Range("DL3:HA32").Cells(1, 2).Value = ActiveSheet.Range("B28").Value For assetColIndx = To 92 If Not ActiveSheet.Range("B31:CO31").Cells(1, assetColIndx).Value = "" Then If Round(ActiveSheet.Range("B31:CO31").Cells(1, assetColIndx).Value * 100, 0) > Then ActiveSheet.Range("DN3:HA32").Cells(1, assetColIndx).Value = ActiveSheet.Range("B31:CO31").Cells(1, assetColIndx).Value End If End If Next assetColIndx If InStr(ActiveSheet.Name, "org") > Then numOfRoundedDigit = plusMinus = -1 fuzzyReturnStep = 0.01 ElseIf InStr(ActiveSheet.Name, "revised") > Then numOfRoundedDigit = plusMinus = fuzzyReturnStep = 0.01 ElseIf InStr(ActiveSheet.Name, "Vercher1") > Then numOfRoundedDigit = plusMinus = fuzzyReturnStep = 0.0025 ElseIf InStr(ActiveSheet.Name, "Vercher2") > Then numOfRoundedDigit = plusMinus = fuzzyReturnStep = 0.0025 End If dataRow = For counter = To 28 fuzzyReturnTarget = Round(fuzzyReturnMin + plusMinus * (counter - 1) * fuzzyReturnStep, numOfRoundedDigit) solvingResult = 100 Call SolveMinRisk(fuzzyReturnTarget, solvingResult) 152 – Ph L c L.3 MÃ NGU N VBA C A MACRO T O T 1/N KHI S TÀI S N TRONG DANH M C M NG B D 1/N THAY LI U SO SÁNH DANH M C M I T I U V I DANH M C M If solvingResult > Then Beep GoTo ContinueLoop End If dataRow = dataRow + Application.SendKeys ("{Enter}") ActiveSheet.Range("DL3:HA32").Cells(dataRow, 1).Value = ActiveSheet.Range("B25").Value ActiveSheet.Range("DL3:HA32").Cells(dataRow, 2).Value = ActiveSheet.Range("B28").Value For assetColIndx = To 92 If Not ActiveSheet.Range("B31:CO31").Cells(1, assetColIndx).Value = "" Then If Round(ActiveSheet.Range("B31:CO31").Cells(1, assetColIndx).Value * 100, 0) > Then ActiveSheet.Range("DN3:HA32").Cells(dataRow, assetColIndx).Value = ActiveSheet.Range("B31:CO31").Cells(1, assetColIndx).Value End If End If Next assetColIndx ContinueLoop: Next counter End Sub 153 – Ph L c J.4 MÃ NGU N VBA C A MACRO T O T 1/N KHI S TÀI S N TRONG DANH M C M NG B D LI U SO SÁNH DANH M C M 1/N THAY I L.4 T o b d li u so sánh danh m c m t i u v i danh m c m 1/N s l Option Explicit Sub SolveNaiveMinRisk(ByVal numberAssets As Long, ByRef solverResult As Long) Dim strTmp As String ActiveSheet.Range("weightNaiveArr").Value = Application.ScreenUpdating = False SolverLoad loadArea:=Range("A50:A53") strTmp = CStr(numberAssets) SolverChange CellRef:="$CP$23", Relation:=2, FormulaText:=strTmp SolverOptions MaxTime:=1000, Iterations:=1000 solverResult = Application.Run("Solver.xla!SolverSolve", True) End Sub Sub SolveNaiveMaxReturn(ByVal numberAssets As Long, ByRef solverResult As Long) Dim strTmp As String ActiveSheet.Range("weightNaiveArr").Value = Application.ScreenUpdating = False SolverLoad loadArea:=Range("A56:A59") strTmp = CStr(numberAssets) SolverChange CellRef:="$CP$23", Relation:=2, FormulaText:=strTmp SolverOptions MaxTime:=1000, Iterations:=1000 solverResult = Application.Run("Solver.xla!SolverSolve", True) End Sub T I U V I DANH M C M ng ch ng khoán danh m c m 1/N thay đ i 154 – Ph L c J.4 MÃ NGU N VBA C A MACRO T O T 1/N KHI S TÀI S N TRONG DANH M C M NG B D LI U SO SÁNH DANH M C M 1/N THAY I Sub TaoDuLieuDuongEFNaive() Dim counter As Long Dim numberAssets As Long Dim solvingResult As Long Dim tmpReturn As Double Dim tmpRisk As Double Dim indexOfNaiveSheet As Long counter = numberAssets = solvingResult = 100 tmpReturn = tmpRisk = With Application ScreenUpdating = False End With backup 'ActiveSheet.Range("naiveEfficientFrontierDataSet").ClearContents indexOfNaiveSheet = ActiveSheet.Index For counter = To 32 If ActiveSheet.Range("CV" & CStr(counter)).Value > Then ActiveSheet.Range("C29").Value = ActiveSheet.Range("CV" & CStr(counter)).Value solvingResult = 100 Call SolveNaiveMinRisk(ActiveSheet.Range("CV" & CStr(counter)).Value, solvingResult) If solvingResult > Then ' Result = 0, Solution found, optimality and constraints satisfied ' Result = 1, Converged, constraints satisfied ' Result = 2, Cannot improve, constraints satisfied ' Result = 3, Stopped at maximum iterations ' Result = 4, Solver did not converge ' Result = 5, No feasible solution Application.SendKeys ("{Enter}") ActiveSheet.Range("CW" & CStr(counter)).Value = "" ActiveSheet.Range("CX" & CStr(counter)).Value = "" Beep Else Application.SendKeys ("{Enter}") ActiveSheet.Range("CW" & CStr(counter)).Value = ActiveSheet.Range("B25").Value ActiveSheet.Range("CX" & CStr(counter)).Value = ActiveSheet.Range("B28").Value T I U V I DANH M C M 155 – Ph L c J.4 MÃ NGU N VBA C A MACRO T O T 1/N KHI S TÀI S N TRONG DANH M C M NG B D LI U SO SÁNH DANH M C M 1/N THAY I tmpReturn = ActiveSheet.Range("CX" & CStr(counter)).Value Sheets(indexOfNaiveSheet - 1).Activate Module1.backup Call Module1.SolveMinRisk(tmpReturn, solvingResult) If solvingResult > Then Sheets(indexOfNaiveSheet).Activate Beep Else numberAssets = ActiveSheet.Range("B29").Value tmpRisk = ActiveSheet.Range("B25").Value Module1.restore Sheets(indexOfNaiveSheet).Activate If numberAssets Then ActiveSheet.Range("CZ" & CStr(counter)).Value = numberAssets If tmpRisk Then ActiveSheet.Range("DA" & CStr(counter)).Value = tmpRisk If tmpReturn Then ActiveSheet.Range("DB" & CStr(counter)).Value = tmpReturn End If End If Call SolveNaiveMaxReturn(ActiveSheet.Range("CV" & CStr(counter)).Value, solvingResult) If solvingResult > Then ' Result = 0, Solution found, optimality and constraints satisfied ' Result = 1, Converged, constraints satisfied ' Result = 2, Cannot improve, constraints satisfied ' Result = 3, Stopped at maximum iterations ' Result = 4, Solver did not converge ' Result = 5, No feasible solution Application.SendKeys ("{Enter}") ActiveSheet.Range("DE" & CStr(counter)).Value = "" ActiveSheet.Range("DF" & CStr(counter)).Value = "" Beep GoTo ContinueLoop Else Application.SendKeys ("{Enter}") ActiveSheet.Range("DE" & CStr(counter)).Value = ActiveSheet.Range("B25").Value ActiveSheet.Range("DF" & CStr(counter)).Value = ActiveSheet.Range("B28").Value tmpRisk = ActiveSheet.Range("DE" & CStr(counter)).Value Sheets(indexOfNaiveSheet - 1).Activate Module1.backup Call Module1.SolveMaxReturn(tmpRisk, solvingResult) If solvingResult > Then Sheets(indexOfNaiveSheet).Activate Beep Else numberAssets = ActiveSheet.Range("B29").Value tmpReturn = ActiveSheet.Range("B28").Value T I U V I DANH M C M 156 – Ph L c J.4 MÃ NGU N VBA C A MACRO T O T 1/N KHI S TÀI S N TRONG DANH M C M NG B D LI U SO SÁNH DANH M C M 1/N THAY I Module1.restore Sheets(indexOfNaiveSheet).Activate If numberAssets Then ActiveSheet.Range("DH" & CStr(counter)).Value = numberAssets If tmpRisk Then ActiveSheet.Range("DI" & CStr(counter)).Value = tmpRisk If tmpReturn Then ActiveSheet.Range("DJ" & CStr(counter)).Value = tmpReturn End If End If End If ContinueLoop: Next counter restore End Sub Sub backup() ActiveSheet.Range("B77:CO77").Value = ActiveSheet.Range("weightNaiveArr").Value ActiveSheet.Range("B76").Value = ActiveSheet.Range("C29").Value End Sub Sub restore() Application.ScreenUpdating = False SolverLoad (ActiveSheet.Range("A62:A65")) ActiveSheet.Range("weightNaiveArr").Value = ActiveSheet.Range("B77:CO77").Value ActiveSheet.Range("B77:CO77").Value = "" ActiveSheet.Range("C29").Value = ActiveSheet.Range("B76").Value ActiveSheet.Range("B76").Value = "" End Sub T I U V I DANH M C M ... ch n danh m c đ u t TTCK, v y, nghiên c u ph ng pháp ti p c n m s m m t hu ng m i cho nghiên c u kinh t t i Vi t Nam Thi t k /ph ng pháp nghiên c u/ph ng pháp ti p c n: Các mô hình l a ch n danh. .. nh đánh giá c a nhà đ u t v TSSL c a m i ch ng khoán; Optimized: danh m c t i u m ; Naïve: danh m c m 1/N; Asset: ch ng khoán danh m c k t qu ; selected assets: mã ch ng khoán đ c ch n vào danh. .. 47 I S H I T S L NG CH NG KHOÁN TRONG DANH M C T I U M VÀ SO SÁNH HI U QU C A DANH M C T I U M V I DANH M C NAÏVE B NG T S SORTINO KHI S CH NG KHOÁN TRONG DANH M C THAY I…… ……………………………………………………………………………

Ngày đăng: 03/09/2020, 21:43

Xem thêm:

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w