Luận văn thạc sĩ 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 466 0
Luận văn thạc sĩ 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

Đ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 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 i 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 tố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 i 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 TỐ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à ut ) 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 ng biên hi u qu c a mơ hình (Zulkifli Bi u 4.4: Quan h gi a 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 ng biên hi u qu c a d n xu t mô hình (Zulkifli Bi u 4.9: Quan h c a Mohamed c ng s , 2009) uj = 20% t i a hóa TSSL 52 ng biên hi u qu c a d n xu t mơ hình (Zulkifli Bi u 4.10: Quan h c a 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 i n logic m 11 Hình 2.2: Hàm thành viên c a t p h p c i n 11 Hình 2.3: Lý thuy t t p h p c i 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 i m t v i v n d li u l ch s nh ng th tr ng lai Nh t u t t i u không ch i v i nh ng qu c gia có th tr thơng tin xác, s nh n ng c n qua Ph th ng ic a ut , c bi t v i ng thông tin iv ns h um tl c xem xét trình phân tích quy t nh c tình hu ng th c t không ch c ch n mà mơ hình truy n th ng ã b 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 d n xu t mơ hình l a ch n danh m c v n Cho v n ti p c n m l a ch n danh m c c u ph nhi u Ngoài ra, s thay u t c n m t mơ hình có th di n t gi i quy t v n n thu n s d ng ng ch ng khoán m i n i nh kinh nghi m c a nhà chuyên gia ch ng khoán, nh ng ng kinh nghi m v th tr ng giá ng ã th hi n kh không h n s l p l i nh Vi t Nam mà d li u l ch s ch a có u t Vì v y, Nhà u t ph i : s ng u nhiên, m h nh p nh ng bi n ch ng khốn Vi c phân tích danh m c t y th thách Nhà u t t i u có kh n ng x lý n hi n nay, ch a có nghiên c u th c nghi m Vi t Nam v u t TTCK, v y, nghiên 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, i 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 i 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 c xác ng ch ng khoán nh b ng tố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 Efficient Frontier - Vercher P2 Model Revised [ max allocation = 30% ; lamda = 0.3] 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 1.20% 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 Efficient Frontier - Vercher P2 Model Revised [ max allocation = 30% ; lamda = 0.7] 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 5.5 1.20% Fuzzy Return 1.40% 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 ... …………………………………………………………… 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…… ……………………………………………………………………………... 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 n nh ánh giá c a 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 m

Ngày đăng: 08/08/2015, 19:15

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan