Exam 2 - Practice Part

Macro economic relationships and volatility modelling

rm(list=ls())
options(scipen=999)
library(xts)
download.file("http://www.apradie.com/ec2004/ipcoil.csv", "ipcoil.csv")
trying URL 'http://www.apradie.com/ec2004/ipcoil.csv'
Content type 'text/csv' length 227451 bytes (222 KB)
==================================================
downloaded 222 KB
ipcoil <- read.csv(file="ipcoil.csv", header=TRUE, sep=",") 

ipcoil$date = as.Date(ipcoil$date)
# converting to an xts data frame:
ipcoil.xts = xts(ipcoil[,c(2:6)],order.by=ipcoil$date)
library(readxl)
library(tseries)
library(zoo)
library(rugarch)

This dataset has real information of the Mexican and the US market index, and crude oil daily prices from Jul 2006 to April, 2022 (includes the last 3 Mexican “sexenios”). The dataset has the following variables:

MXXUSD - Daily IPCyC index in USD (It is an the MXX index after adjusting for the MX-USD exchange rate) GSPC - Daily S&P 500 index OILPRICE - Daily price of crude oil (in USD)

You first have to create a “standardized” index for each of these indexes. Each index must represents a $1.00 USD invested at the first day of the series. For each day each index will show the value of the $1.00USD investment at any day. So you could easily compare these 3 investments over time. You have to divide the value of oil price by the first value of the series.

To help you out with the calculation of these 3 indexes, here is an example for the case of Oil price:

Oil Price

ipcoil.xts$indexoil = ipcoil.xts$OILPRICE /as.numeric( ipcoil.xts$OILPRICE[1])

Create the indexes for the mxx and for the sp500 following the same calculation as above.

MXXUSD

library(quantmod)
getSymbols(Symbols=c("^MXX"), peridiocity = "daily",
                     from="2006-07-01", to="2022-04-01")
Warning: ^MXX contains missing values. Some functions will not work if objects contain missing values in the middle of the series. Consider using na.omit(), na.approx(), na.fill(), etc to remove or replace them.
[1] "^MXX"
na.omit(MXX)
           MXX.Open MXX.High  MXX.Low MXX.Close MXX.Volume
2006-07-03 19147.17 20061.45 19134.20  20060.82  153643500
2006-07-04 20060.82 20532.30 20060.82  20329.49   77964200
2006-07-05 20287.51 20287.51 19501.44  19514.62  151064100
2006-07-06 19515.95 20248.44 19515.95  20047.62  129716000
2006-07-07 20047.62 20049.22 19764.37  19829.60   82683400
2006-07-10 19829.64 19899.89 19545.84  19700.15   71777000
2006-07-11 19682.65 19698.85 19217.77  19570.21  103478800
2006-07-12 19570.25 19664.04 19338.52  19419.44   70149200
2006-07-13 19388.55 19388.55 18712.69  18725.26   99299000
2006-07-14 18710.68 18747.13 18326.21  18328.66   92818000
2006-07-17 18325.48 18559.89 18244.28  18437.98   70155200
2006-07-18 18437.98 18889.88 18437.98  18885.67  102250700
2006-07-19 18901.64 19871.78 18901.51  19871.78  166219900
2006-07-20 19878.72 19992.09 19504.93  19510.52  104483000
2006-07-21 19510.52 19527.58 19197.80  19527.37   83525800
2006-07-24 19568.72 19938.85 19548.85  19938.70   95209400
2006-07-25 19967.33 20082.05 19800.03  20082.00  114031600
2006-07-26 20082.69 20090.12 19884.01  19913.19  123588800
2006-07-27 19947.34 20302.08 19947.34  20138.79  172493900
2006-07-28 20138.79 20374.46 20071.44  20252.33  139056500
2006-07-31 20252.33 20253.92 20007.53  20095.93   89155400
2006-08-01 20093.73 20096.61 19889.34  19973.20   90256800
2006-08-02 19984.33 20214.73 19960.38  20145.10   78077200
2006-08-03 20132.38 20358.41 20024.03  20261.81   80727000
2006-08-04 20269.56 20712.91 20268.23  20354.99   96772400
2006-08-07 20351.51 20414.08 20170.96  20412.49   64819000
2006-08-08 20417.26 20582.87 20306.90  20342.78  102169200
2006-08-09 20342.46 20538.35 20062.37  20062.37   97814200
2006-08-10 20051.94 20052.98 19868.47  20048.18   93523000
2006-08-11 20048.18 20273.86 19955.60  20273.86   78144600
2006-08-14 20274.90 20379.75 20197.38  20290.49   72874400
2006-08-15 20314.33 20544.44 20314.33  20544.44   91317600
2006-08-16 20547.46 20900.25 20547.46  20900.00  127905600
2006-08-17 20904.70 21017.16 20778.13  20971.78  134818300
2006-08-18 20974.21 21053.71 20760.53  21046.63  103099100
2006-08-21 21046.63 21046.99 20744.44  20861.56   67183600
2006-08-22 20856.79 20999.63 20776.55  20986.89   86946400
2006-08-23 20987.25 21019.87 20630.60  20742.44  133314100
2006-08-24 20742.99 20809.93 20558.54  20751.45   95773000
2006-08-25 20751.45 21042.32 20712.16  20994.94   93668200
2006-08-28 20994.94 21261.95 20922.20  21228.87   96971800
2006-08-29 21230.96 21301.61 21155.16  21282.08  122586300
2006-08-30 21285.36 21423.02 21258.42  21331.09  126797300
2006-08-31 21344.97 21352.38 21047.76  21049.35  139463600
2006-09-01 21057.30 21306.15 21049.51  21192.26   91418800
2006-09-04 21192.26 21387.47 21164.24  21385.63   19592000
2006-09-05 21404.70 21493.22 21166.94  21256.11  112871900
2006-09-06 21256.11 21256.11 20963.38  20965.24  105093200
2006-09-07 20960.47 20993.06 20590.41  20833.23  119312500
2006-09-08 20844.36 20902.87 20732.48  20795.82   75636800
2006-09-11 20791.05 20804.20 20481.70  20612.89   97878800
2006-09-12 20612.89 21105.16 20598.49  21102.77  125199500
2006-09-13 21102.72 21365.59 21078.82  21320.21  107080100
2006-09-14 21320.12 21441.30 21195.27  21334.02  148214500
2006-09-15 21328.79 21637.02 21328.79  21548.87  144380500
2006-09-18 21549.14 21812.98 21525.44  21666.07  128752900
2006-09-19 21666.07 21729.72 21376.82  21659.02  117126400
2006-09-20 21660.93 21932.00 21660.93  21841.45  144814400
2006-09-21 21847.72 21892.95 21465.82  21498.09  115319600
2006-09-22 21498.09 21498.09 21105.13  21390.43  120820700
2006-09-25 21390.43 21674.92 21155.26  21674.74  108586600
2006-09-26 21674.74 21846.48 21674.24  21792.30  106621800
2006-09-27 21793.89 21946.43 21692.93  21748.57  122870100
2006-09-28 21748.57 21872.51 21717.61  21854.48  109770400
2006-09-29 21857.78 21937.51 21795.12  21937.11   98624400
2006-10-02 21933.93 21934.50 21618.48  21619.96  116355300
2006-10-03 21619.96 21700.49 21479.07  21631.00   98010200
2006-10-04 21621.24 22106.65 21621.24  22105.97  171129800
2006-10-05 22105.82 22391.04 22105.19  22326.86  171421700
2006-10-06 22333.56 22525.44 22198.97  22350.05   94248600
2006-10-09 22350.05 22480.28 22313.42  22313.42   76823600
2006-10-10 22313.42 22528.82 22302.28  22523.56  102388400
2006-10-11 22524.11 22640.04 22386.86  22387.08  135377200
2006-10-12 22387.17 22710.78 22387.17  22661.82  171289900
2006-10-13 22662.42 23000.56 22660.83  22848.32  163374000
2006-10-16 22847.69 23047.98 22827.41  22950.18   94348200
2006-10-17 22950.18 22950.18 22606.68  22799.42  124462000
2006-10-18 22811.27 23048.94 22811.27  23012.87  114529600
2006-10-19 23012.87 23168.55 22905.71  23168.52  129892200
2006-10-20 23157.38 23282.92 22974.49  23233.48   94449600
2006-10-23 23233.88 23322.58 23208.60  23321.41   85172800
2006-10-24 23321.41 23379.16 23196.74  23279.77   93508000
2006-10-25 23279.77 23414.47 23269.26  23397.69  107807600
2006-10-26 23397.69 23461.49 23277.09  23361.42  116102200
2006-10-27 23361.42 23361.42 22759.57  22762.86  146948600
2006-10-30 22762.86 22788.01 22339.28  22370.09  144556200
2006-10-31 22370.09 23047.65 22370.09  23046.95  170365200
2006-11-01 23046.95 23363.12 23040.21  23042.28  127381700
2006-11-03 23042.28 23180.15 22880.13  23169.87  108475300
2006-11-06 23169.87 23733.07 23169.87  23733.07  119474200
2006-11-07 23733.07 24101.72 23472.73  23585.14  142274000
2006-11-08 23585.14 23931.27 23560.97  23930.64  117018900
2006-11-09 23930.64 24077.58 23872.49  23941.80  135418600
2006-11-10 23941.80 23985.48 23808.34  23951.63  145787800
2006-11-13 23951.63 24191.36 23922.02  24188.59   91457800
2006-11-14 24188.59 24458.76 24151.93  24288.06  154824100
2006-11-15 24288.06 24316.12 24079.95  24315.60  106539700
2006-11-16 24315.60 24400.99 24265.57  24266.03  107629500
2006-11-17 24266.03 24268.82 24052.10  24196.05   97518000
2006-11-21 24196.05 24617.37 24196.05  24585.68  155179000
2006-11-22 24585.68 24725.96 24585.64  24674.75  107323900
2006-11-23 24674.89 24730.01 24656.16  24730.01   12896000
2006-11-24 24725.24 24857.95 24663.25  24792.89   56737800
2006-11-27 24792.89 24830.86 24333.88  24442.79   92877800
2006-11-28 24446.95 24446.95 24017.21  24344.95  125332700
2006-11-29 24353.32 24782.77 24353.32  24776.09  132626100
2006-11-30 24776.09 25006.36 24636.79  24962.01  135667800
2006-12-04 24962.01 25207.67 24878.19  25207.48  124257400
2006-12-05 25207.48 25605.19 25207.48  25593.92  160592000
2006-12-06 25587.56 25634.63 25328.01  25615.85  146582500
2006-12-07 25614.65 25891.16 25585.66  25639.31  140974500
2006-12-08 25634.54 25776.70 25555.37  25756.81   95071600
2006-12-11 25756.81 25847.42 25649.36  25828.48   83340800
2006-12-13 25828.48 25948.92 25663.54  25690.39  131396300
2006-12-14 25690.39 25935.31 25660.16  25863.39  120841600
2006-12-15 25871.76 26091.13 25756.59  25757.68  173955400
2006-12-18 25757.97 26035.86 25757.97  25857.44   97986200
2006-12-19 25857.19 25857.19 25397.94  25621.50  117563100
2006-12-20 25621.50 25683.23 25377.53  25394.69  142515800
2006-12-21 25389.81 25549.26 25336.05  25546.82  191899400
2006-12-22 25546.82 25563.84 25265.10  25432.64   48394600
2006-12-26 25432.64 25720.26 25423.88  25705.04   35469000
2006-12-27 25706.63 26204.88 25706.63  26196.66   68134200
2006-12-28 26196.66 26424.21 26188.70  26295.21   57063600
2006-12-29 26295.21 26450.45 26284.66  26448.32   50410600
2007-01-02 26448.32 26666.92 26448.32  26664.45   37688400
2007-01-03 26666.84 26699.10 26319.50  26619.37  134658000
2007-01-04 26622.11 26623.06 26335.42  26566.28  103649000
2007-01-05 26566.28 26566.28 26112.77  26135.60  105575400
2007-01-08 26135.60 26282.39 26071.66  26281.64  122179800
2007-01-09 26287.22 26342.47 25627.93  25783.04  180993900
2007-01-10 25780.84 25954.13 25400.33  25885.80  138084700
2007-01-11 25882.74 26290.70 25851.15  26247.90  140544800
2007-01-12 26247.90 26335.29 26091.36  26324.38  100066800
2007-01-15 26324.38 26484.06 26313.02  26480.03   27718800
2007-01-16 26479.83 26487.17 26333.56  26480.33   91066000
2007-01-17 26480.33 26610.61 26381.94  26558.50  133658200
2007-01-18 26556.66 26594.60 26112.80  26112.87  155636700
2007-01-19 26112.87 26304.51 25939.44  26213.38  137020400
2007-01-22 26213.27 26432.25 26042.06  26432.25  124941800
2007-01-23 26432.63 26811.12 26419.22  26810.00  164098900
2007-01-24 26813.69 27338.37 26813.69  27338.30  249127300
2007-01-25 27341.48 27453.92 26793.70  26899.34  153883400
2007-01-26 26899.34 27049.72 26595.70  27045.71  174052300
2007-01-29 27036.86 27036.86 26721.50  26834.05  137731600
2007-01-30 26838.18 27154.18 26823.62  27135.37  145672800
2007-01-31 27136.72 27621.98 27074.00  27561.49  180003800
2007-02-01 27561.49 27945.30 27561.49  27842.76  181712800
2007-02-02 27842.62 28005.95 27818.04  27933.07  128897300
2007-02-07 28067.29 28293.44 28012.26  28123.76  157970100
2007-02-08 28225.34 28291.49 27921.28  28197.26  276774100
2007-02-09 28228.71 28346.01 27862.63  27906.89  164346500
2007-02-12 27906.89 27975.73 27624.97  27972.23  119112200
2007-02-13 27972.69 28278.97 27866.43  28262.65  176896000
2007-02-14 28262.65 28678.31 28256.41  28539.69  187197700
2007-02-15 28539.69 28619.23 28388.85  28498.75  145614300
2007-02-16 28500.20 28525.99 28301.32  28491.07  102281600
2007-02-19 28491.07 28601.23 28491.07  28590.17  211632000
2007-02-20 28590.46 28646.16 28355.92  28589.66  130141100
2007-02-21 28594.02 28715.96 28425.65  28715.96  189293700
2007-02-22 28715.96 28940.11 28505.58  28676.48  129334600
2007-02-23 28676.51 28691.46 28353.48  28505.72  114420200
2007-02-26 28505.72 28639.13 28029.18  28046.16  134842200
2007-02-27 28040.66 28040.66 26418.82  26418.82  332633900
2007-02-28 26420.64 26804.79 26320.26  26638.95  225400400
2007-03-01 26581.59 26689.80 25691.58  26647.65  196228400
           MXX.Adjusted
2006-07-03     20060.82
2006-07-04     20329.49
2006-07-05     19514.62
2006-07-06     20047.62
2006-07-07     19829.60
2006-07-10     19700.15
2006-07-11     19570.21
2006-07-12     19419.44
2006-07-13     18725.26
2006-07-14     18328.66
2006-07-17     18437.98
2006-07-18     18885.67
2006-07-19     19871.78
2006-07-20     19510.52
2006-07-21     19527.37
2006-07-24     19938.70
2006-07-25     20082.00
2006-07-26     19913.19
2006-07-27     20138.79
2006-07-28     20252.33
2006-07-31     20095.93
2006-08-01     19973.20
2006-08-02     20145.10
2006-08-03     20261.81
2006-08-04     20354.99
2006-08-07     20412.49
2006-08-08     20342.78
2006-08-09     20062.37
2006-08-10     20048.18
2006-08-11     20273.86
2006-08-14     20290.49
2006-08-15     20544.44
2006-08-16     20900.00
2006-08-17     20971.78
2006-08-18     21046.63
2006-08-21     20861.56
2006-08-22     20986.89
2006-08-23     20742.44
2006-08-24     20751.45
2006-08-25     20994.94
2006-08-28     21228.87
2006-08-29     21282.08
2006-08-30     21331.09
2006-08-31     21049.35
2006-09-01     21192.26
2006-09-04     21385.63
2006-09-05     21256.11
2006-09-06     20965.24
2006-09-07     20833.23
2006-09-08     20795.82
2006-09-11     20612.89
2006-09-12     21102.77
2006-09-13     21320.21
2006-09-14     21334.02
2006-09-15     21548.87
2006-09-18     21666.07
2006-09-19     21659.02
2006-09-20     21841.45
2006-09-21     21498.09
2006-09-22     21390.43
2006-09-25     21674.74
2006-09-26     21792.30
2006-09-27     21748.57
2006-09-28     21854.48
2006-09-29     21937.11
2006-10-02     21619.96
2006-10-03     21631.00
2006-10-04     22105.97
2006-10-05     22326.86
2006-10-06     22350.05
2006-10-09     22313.42
2006-10-10     22523.56
2006-10-11     22387.08
2006-10-12     22661.82
2006-10-13     22848.32
2006-10-16     22950.18
2006-10-17     22799.42
2006-10-18     23012.87
2006-10-19     23168.52
2006-10-20     23233.48
2006-10-23     23321.41
2006-10-24     23279.77
2006-10-25     23397.69
2006-10-26     23361.42
2006-10-27     22762.86
2006-10-30     22370.09
2006-10-31     23046.95
2006-11-01     23042.28
2006-11-03     23169.87
2006-11-06     23733.07
2006-11-07     23585.14
2006-11-08     23930.64
2006-11-09     23941.80
2006-11-10     23951.63
2006-11-13     24188.59
2006-11-14     24288.06
2006-11-15     24315.60
2006-11-16     24266.03
2006-11-17     24196.05
2006-11-21     24585.68
2006-11-22     24674.75
2006-11-23     24730.01
2006-11-24     24792.89
2006-11-27     24442.79
2006-11-28     24344.95
2006-11-29     24776.09
2006-11-30     24962.01
2006-12-04     25207.48
2006-12-05     25593.92
2006-12-06     25615.85
2006-12-07     25639.31
2006-12-08     25756.81
2006-12-11     25828.48
2006-12-13     25690.39
2006-12-14     25863.39
2006-12-15     25757.68
2006-12-18     25857.44
2006-12-19     25621.50
2006-12-20     25394.69
2006-12-21     25546.82
2006-12-22     25432.64
2006-12-26     25705.04
2006-12-27     26196.66
2006-12-28     26295.21
2006-12-29     26448.32
2007-01-02     26664.45
2007-01-03     26619.37
2007-01-04     26566.28
2007-01-05     26135.60
2007-01-08     26281.64
2007-01-09     25783.04
2007-01-10     25885.80
2007-01-11     26247.90
2007-01-12     26324.38
2007-01-15     26480.03
2007-01-16     26480.33
2007-01-17     26558.50
2007-01-18     26112.87
2007-01-19     26213.38
2007-01-22     26432.25
2007-01-23     26810.00
2007-01-24     27338.30
2007-01-25     26899.34
2007-01-26     27045.71
2007-01-29     26834.05
2007-01-30     27135.37
2007-01-31     27561.49
2007-02-01     27842.76
2007-02-02     27933.07
2007-02-07     28123.76
2007-02-08     28197.26
2007-02-09     27906.89
2007-02-12     27972.23
2007-02-13     28262.65
2007-02-14     28539.69
2007-02-15     28498.75
2007-02-16     28491.07
2007-02-19     28590.17
2007-02-20     28589.66
2007-02-21     28715.96
2007-02-22     28676.48
2007-02-23     28505.72
2007-02-26     28046.16
2007-02-27     26418.82
2007-02-28     26638.95
2007-03-01     26647.65
 [ reached getOption("max.print") -- omitted 3780 rows ]
library(quantmod)
getSymbols(Symbols=c("^GSPC"), peridiocity = "daily",
                     from="2006-07-01", to="2022-04-01")
[1] "^GSPC"
na.omit(GSPC)
           GSPC.Open GSPC.High GSPC.Low GSPC.Close GSPC.Volume
2006-07-03   1270.06   1280.38  1270.06    1280.19  1114470000
2006-07-05   1280.05   1280.05  1265.91    1270.91  2165070000
2006-07-06   1270.58   1278.32  1270.58    1274.08  2009160000
2006-07-07   1274.08   1275.38  1263.13    1265.48  1988150000
2006-07-10   1265.46   1274.06  1264.46    1267.34  1854590000
2006-07-11   1267.26   1273.64  1259.65    1272.43  2310850000
2006-07-12   1272.39   1273.31  1257.29    1258.60  2250450000
2006-07-13   1258.58   1258.58  1241.43    1242.28  2545760000
2006-07-14   1242.29   1242.70  1228.45    1236.20  2467120000
2006-07-17   1236.20   1240.07  1231.49    1234.49  2146410000
2006-07-18   1234.48   1239.86  1224.54    1236.86  2481750000
2006-07-19   1236.74   1261.81  1236.74    1259.81  2701980000
2006-07-20   1259.81   1262.56  1249.13    1249.13  2345580000
2006-07-21   1249.12   1250.96  1238.72    1240.29  2704090000
2006-07-24   1240.25   1262.50  1240.25    1260.91  2312720000
2006-07-25   1260.91   1272.39  1257.19    1268.88  2563930000
2006-07-26   1268.87   1273.89  1261.94    1268.40  2667710000
2006-07-27   1268.20   1275.85  1261.92    1263.20  2776710000
2006-07-28   1263.15   1280.42  1263.15    1278.55  2480420000
2006-07-31   1278.53   1278.66  1274.31    1276.66  2461300000
2006-08-01   1278.53   1278.66  1265.71    1270.92  2527690000
2006-08-02   1270.73   1283.42  1270.73    1277.41  2610750000
2006-08-03   1278.22   1283.96  1271.25    1280.27  2728440000
2006-08-04   1280.26   1292.92  1273.82    1279.36  2530970000
2006-08-07   1279.31   1279.31  1273.00    1275.77  2045660000
2006-08-08   1275.67   1282.75  1268.37    1271.48  2457840000
2006-08-09   1271.13   1283.74  1264.73    1265.95  2555180000
2006-08-10   1265.72   1272.55  1261.30    1271.81  2402190000
2006-08-11   1271.64   1271.64  1262.08    1266.74  2004540000
2006-08-14   1266.67   1278.90  1266.67    1268.21  2118020000
2006-08-15   1268.19   1286.23  1268.19    1285.58  2334100000
2006-08-16   1285.27   1296.21  1285.27    1295.43  2554570000
2006-08-17   1295.37   1300.78  1292.71    1297.48  2458340000
2006-08-18   1297.48   1302.30  1293.57    1302.30  2033910000
2006-08-21   1302.30   1302.30  1295.51    1297.52  1759240000
2006-08-22   1297.52   1302.49  1294.44    1298.82  1908740000
2006-08-23   1298.73   1301.50  1289.82    1292.99  1893670000
2006-08-24   1292.97   1297.23  1291.40    1296.06  1930320000
2006-08-25   1295.92   1298.88  1292.39    1295.09  1667580000
2006-08-28   1295.09   1305.02  1293.97    1301.78  1834920000
2006-08-29   1301.57   1305.02  1295.29    1304.28  2093720000
2006-08-30   1303.70   1306.74  1302.15    1305.37  2060690000
2006-08-31   1304.25   1306.11  1302.45    1303.82  1974540000
2006-09-01   1303.80   1312.03  1303.80    1311.01  1800520000
2006-09-05   1310.94   1314.67  1308.82    1313.25  2114480000
2006-09-06   1313.04   1313.04  1299.28    1300.26  2329870000
2006-09-07   1300.21   1301.25  1292.13    1294.02  2325850000
2006-09-08   1294.02   1300.14  1294.02    1298.92  2132890000
2006-09-11   1298.86   1302.36  1290.93    1299.54  2506430000
2006-09-12   1299.53   1314.28  1299.53    1313.00  2791580000
2006-09-13   1312.74   1319.92  1311.12    1318.07  2597220000
2006-09-14   1318.00   1318.00  1313.25    1316.28  2351220000
2006-09-15   1316.28   1324.65  1316.28    1319.66  3198030000
2006-09-18   1319.85   1324.87  1318.16    1321.18  2325080000
2006-09-19   1321.17   1322.04  1312.17    1317.64  2390850000
2006-09-20   1318.28   1328.53  1318.28    1325.18  2543070000
2006-09-21   1324.89   1328.19  1315.45    1318.03  2627440000
2006-09-22   1318.03   1318.03  1310.94    1314.78  2162880000
2006-09-25   1314.78   1329.35  1311.58    1326.37  2710240000
2006-09-26   1326.35   1336.60  1325.30    1336.35  2673350000
2006-09-27   1336.12   1340.08  1333.54    1336.59  2749190000
2006-09-28   1336.56   1340.28  1333.75    1338.88  2397820000
2006-09-29   1339.15   1339.88  1335.64    1335.85  2273430000
2006-10-02   1335.82   1338.54  1330.28    1331.32  2154480000
2006-10-03   1331.32   1338.31  1327.10    1334.11  2682690000
2006-10-04   1333.81   1350.20  1331.48    1350.20  3019880000
2006-10-05   1349.84   1353.79  1347.75    1353.22  2817240000
2006-10-06   1353.22   1353.22  1344.21    1349.59  2523000000
2006-10-09   1349.58   1352.69  1346.55    1350.66  1935170000
2006-10-10   1350.62   1354.23  1348.60    1353.42  2376140000
2006-10-11   1353.28   1353.97  1343.57    1349.95  2521000000
2006-10-12   1349.94   1363.76  1349.94    1362.83  2514350000
2006-10-13   1362.82   1366.63  1360.50    1365.62  2482920000
2006-10-16   1365.61   1370.20  1364.48    1369.06  2305920000
2006-10-17   1369.05   1369.05  1356.87    1364.05  2519620000
2006-10-18   1363.93   1372.87  1360.95    1365.80  2658840000
2006-10-19   1365.95   1368.09  1362.06    1366.96  2619830000
2006-10-20   1366.94   1368.66  1362.10    1368.60  2526410000
2006-10-23   1368.58   1377.40  1363.94    1377.02  2480430000
2006-10-24   1377.02   1377.78  1372.42    1377.38  2876890000
2006-10-25   1377.36   1383.61  1376.00    1382.22  2953540000
2006-10-26   1382.21   1389.45  1379.47    1389.08  2793350000
2006-10-27   1388.89   1388.89  1375.85    1377.34  2458450000
2006-10-30   1377.30   1381.22  1373.46    1377.93  2770440000
2006-10-31   1377.93   1381.21  1372.19    1377.94  2803030000
2006-11-01   1377.76   1381.95  1366.26    1367.81  2821160000
2006-11-02   1367.44   1368.39  1362.21    1367.34  2646180000
2006-11-03   1367.31   1371.68  1360.98    1364.30  2419730000
2006-11-06   1364.27   1381.40  1364.27    1379.78  2533550000
2006-11-07   1379.75   1388.19  1379.19    1382.84  2636390000
2006-11-08   1382.50   1388.61  1379.33    1385.72  2814820000
2006-11-09   1385.43   1388.92  1377.31    1378.33  3012050000
2006-11-10   1378.33   1381.04  1375.60    1380.90  2290200000
2006-11-13   1380.58   1387.61  1378.80    1384.42  2386340000
2006-11-14   1384.36   1394.49  1379.07    1393.22  3027480000
2006-11-15   1392.91   1401.35  1392.13    1396.57  2831130000
2006-11-16   1396.53   1403.76  1396.53    1399.76  2835730000
2006-11-17   1399.76   1401.21  1394.55    1401.20  2726100000
2006-11-20   1401.17   1404.37  1397.85    1400.50  2546710000
2006-11-21   1400.43   1403.49  1399.99    1402.81  2597940000
2006-11-22   1402.69   1407.89  1402.26    1406.09  2237710000
2006-11-24   1405.94   1405.94  1399.25    1400.95   832550000
2006-11-27   1400.95   1400.95  1381.44    1381.96  2711210000
2006-11-28   1381.61   1387.91  1377.83    1386.72  2639750000
2006-11-29   1386.11   1401.14  1386.11    1399.48  2790970000
2006-11-30   1399.47   1406.30  1393.83    1400.63  4006230000
2006-12-01   1400.63   1402.46  1385.93    1396.71  2800980000
2006-12-04   1396.67   1411.23  1396.67    1409.12  2766320000
2006-12-05   1409.10   1415.27  1408.78    1414.76  2755700000
2006-12-06   1414.40   1415.93  1411.05    1412.90  2725280000
2006-12-07   1412.86   1418.27  1406.80    1407.29  2743150000
2006-12-08   1407.27   1414.09  1403.67    1409.84  2440460000
2006-12-11   1409.81   1415.60  1408.56    1413.04  2289900000
2006-12-12   1413.00   1413.78  1404.75    1411.56  2738170000
2006-12-13   1411.32   1416.64  1411.05    1413.21  2552260000
2006-12-14   1413.16   1427.23  1413.16    1425.49  2729700000
2006-12-15   1425.48   1431.63  1425.48    1427.09  3229580000
2006-12-18   1427.08   1431.81  1420.65    1422.48  2568140000
2006-12-19   1422.42   1428.30  1414.88    1425.55  2717060000
2006-12-20   1425.51   1429.05  1423.51    1423.53  2387630000
2006-12-21   1423.20   1426.40  1415.90    1418.30  2322410000
2006-12-22   1418.10   1418.82  1410.28    1410.76  1647590000
2006-12-26   1410.75   1417.91  1410.45    1416.90  1310310000
2006-12-27   1416.63   1427.72  1416.63    1426.84  1667370000
2006-12-28   1426.77   1427.26  1422.05    1424.73  1508570000
2006-12-29   1424.71   1427.00  1416.84    1418.30  1678200000
2007-01-03   1418.03   1429.42  1407.86    1416.60  3429160000
2007-01-04   1416.60   1421.84  1408.43    1418.34  3004460000
2007-01-05   1418.34   1418.34  1405.75    1409.71  2919400000
2007-01-08   1409.26   1414.98  1403.97    1412.84  2763340000
2007-01-09   1412.84   1415.61  1405.42    1412.11  3038380000
2007-01-10   1408.70   1415.99  1405.32    1414.85  2764660000
2007-01-11   1414.84   1427.12  1414.84    1423.82  2857870000
2007-01-12   1423.82   1431.23  1422.58    1430.73  2686480000
2007-01-16   1430.73   1433.93  1428.62    1431.90  2599530000
2007-01-17   1431.77   1435.27  1428.57    1430.62  2690270000
2007-01-18   1430.59   1432.96  1424.21    1426.37  2822430000
2007-01-19   1426.35   1431.57  1425.19    1430.50  2777480000
2007-01-22   1430.47   1431.39  1420.40    1422.95  2540120000
2007-01-23   1422.95   1431.33  1421.66    1427.99  2975070000
2007-01-24   1427.96   1440.14  1427.96    1440.13  2783180000
2007-01-25   1440.12   1440.69  1422.34    1423.90  2994330000
2007-01-26   1423.90   1427.27  1416.96    1422.18  2626620000
2007-01-29   1422.03   1426.94  1418.46    1420.62  2730480000
2007-01-30   1420.61   1428.82  1420.61    1428.82  2706250000
2007-01-31   1428.65   1441.61  1424.78    1438.24  2976690000
2007-02-01   1437.90   1446.64  1437.90    1445.94  2914890000
2007-02-02   1445.94   1449.33  1444.49    1448.39  2569450000
2007-02-05   1448.33   1449.38  1443.85    1446.99  2439430000
2007-02-06   1446.98   1450.19  1443.40    1448.00  2608710000
2007-02-07   1447.41   1452.99  1446.44    1450.02  2618820000
2007-02-08   1449.99   1450.45  1442.81    1448.31  2816180000
2007-02-09   1448.25   1452.45  1433.44    1438.06  2951810000
2007-02-12   1438.00   1439.11  1431.44    1433.37  2395680000
2007-02-13   1433.22   1444.41  1433.22    1444.26  2652150000
2007-02-14   1443.91   1457.65  1443.91    1455.30  2699290000
2007-02-15   1455.15   1457.97  1453.19    1456.81  2490920000
2007-02-16   1456.77   1456.77  1451.57    1455.54  2399450000
2007-02-20   1455.53   1460.53  1449.20    1459.68  2337860000
2007-02-21   1459.60   1459.60  1452.02    1457.63  2606980000
2007-02-22   1457.29   1461.57  1450.51    1456.38  1950770000
2007-02-23   1456.22   1456.22  1448.36    1451.19  2579950000
2007-02-26   1451.04   1456.95  1445.48    1449.37  2822170000
2007-02-27   1449.25   1449.25  1389.42    1399.04  4065230000
2007-02-28   1398.64   1415.89  1396.65    1406.82  3925250000
2007-03-01   1406.80   1409.46  1380.87    1403.17  3874910000
           GSPC.Adjusted
2006-07-03       1280.19
2006-07-05       1270.91
2006-07-06       1274.08
2006-07-07       1265.48
2006-07-10       1267.34
2006-07-11       1272.43
2006-07-12       1258.60
2006-07-13       1242.28
2006-07-14       1236.20
2006-07-17       1234.49
2006-07-18       1236.86
2006-07-19       1259.81
2006-07-20       1249.13
2006-07-21       1240.29
2006-07-24       1260.91
2006-07-25       1268.88
2006-07-26       1268.40
2006-07-27       1263.20
2006-07-28       1278.55
2006-07-31       1276.66
2006-08-01       1270.92
2006-08-02       1277.41
2006-08-03       1280.27
2006-08-04       1279.36
2006-08-07       1275.77
2006-08-08       1271.48
2006-08-09       1265.95
2006-08-10       1271.81
2006-08-11       1266.74
2006-08-14       1268.21
2006-08-15       1285.58
2006-08-16       1295.43
2006-08-17       1297.48
2006-08-18       1302.30
2006-08-21       1297.52
2006-08-22       1298.82
2006-08-23       1292.99
2006-08-24       1296.06
2006-08-25       1295.09
2006-08-28       1301.78
2006-08-29       1304.28
2006-08-30       1305.37
2006-08-31       1303.82
2006-09-01       1311.01
2006-09-05       1313.25
2006-09-06       1300.26
2006-09-07       1294.02
2006-09-08       1298.92
2006-09-11       1299.54
2006-09-12       1313.00
2006-09-13       1318.07
2006-09-14       1316.28
2006-09-15       1319.66
2006-09-18       1321.18
2006-09-19       1317.64
2006-09-20       1325.18
2006-09-21       1318.03
2006-09-22       1314.78
2006-09-25       1326.37
2006-09-26       1336.35
2006-09-27       1336.59
2006-09-28       1338.88
2006-09-29       1335.85
2006-10-02       1331.32
2006-10-03       1334.11
2006-10-04       1350.20
2006-10-05       1353.22
2006-10-06       1349.59
2006-10-09       1350.66
2006-10-10       1353.42
2006-10-11       1349.95
2006-10-12       1362.83
2006-10-13       1365.62
2006-10-16       1369.06
2006-10-17       1364.05
2006-10-18       1365.80
2006-10-19       1366.96
2006-10-20       1368.60
2006-10-23       1377.02
2006-10-24       1377.38
2006-10-25       1382.22
2006-10-26       1389.08
2006-10-27       1377.34
2006-10-30       1377.93
2006-10-31       1377.94
2006-11-01       1367.81
2006-11-02       1367.34
2006-11-03       1364.30
2006-11-06       1379.78
2006-11-07       1382.84
2006-11-08       1385.72
2006-11-09       1378.33
2006-11-10       1380.90
2006-11-13       1384.42
2006-11-14       1393.22
2006-11-15       1396.57
2006-11-16       1399.76
2006-11-17       1401.20
2006-11-20       1400.50
2006-11-21       1402.81
2006-11-22       1406.09
2006-11-24       1400.95
2006-11-27       1381.96
2006-11-28       1386.72
2006-11-29       1399.48
2006-11-30       1400.63
2006-12-01       1396.71
2006-12-04       1409.12
2006-12-05       1414.76
2006-12-06       1412.90
2006-12-07       1407.29
2006-12-08       1409.84
2006-12-11       1413.04
2006-12-12       1411.56
2006-12-13       1413.21
2006-12-14       1425.49
2006-12-15       1427.09
2006-12-18       1422.48
2006-12-19       1425.55
2006-12-20       1423.53
2006-12-21       1418.30
2006-12-22       1410.76
2006-12-26       1416.90
2006-12-27       1426.84
2006-12-28       1424.73
2006-12-29       1418.30
2007-01-03       1416.60
2007-01-04       1418.34
2007-01-05       1409.71
2007-01-08       1412.84
2007-01-09       1412.11
2007-01-10       1414.85
2007-01-11       1423.82
2007-01-12       1430.73
2007-01-16       1431.90
2007-01-17       1430.62
2007-01-18       1426.37
2007-01-19       1430.50
2007-01-22       1422.95
2007-01-23       1427.99
2007-01-24       1440.13
2007-01-25       1423.90
2007-01-26       1422.18
2007-01-29       1420.62
2007-01-30       1428.82
2007-01-31       1438.24
2007-02-01       1445.94
2007-02-02       1448.39
2007-02-05       1446.99
2007-02-06       1448.00
2007-02-07       1450.02
2007-02-08       1448.31
2007-02-09       1438.06
2007-02-12       1433.37
2007-02-13       1444.26
2007-02-14       1455.30
2007-02-15       1456.81
2007-02-16       1455.54
2007-02-20       1459.68
2007-02-21       1457.63
2007-02-22       1456.38
2007-02-23       1451.19
2007-02-26       1449.37
2007-02-27       1399.04
2007-02-28       1406.82
2007-03-01       1403.17
 [ reached getOption("max.print") -- omitted 3799 rows ]

MXXUSD

ipcoil.xts$indexmxxusd <- ipcoil.xts$MXXUSD /as.numeric( ipcoil.xts$MXXUSD[1])

GSPC

ipcoil.xts$indexgspc <- ipcoil.xts$GSPC /as.numeric( ipcoil.xts$GSPC[1])

Now do a plot for each index over time to have a general idea about the 3 instruments. Oil Index

plot(ipcoil.xts$indexoil)

GSPC Index

plot(ipcoil.xts$indexgspc)

MXX INDEX

plot(ipcoil.xts$indexmxxusd)

3

plot(ipcoil.xts)

Using your knowledge about time series econometrics (Cointegration, regression, volatility models), you have to respond to the following questions, AND your responses must be supported with statistical/econometrical analysis:

  1. How the Mexican financial market is related with the oil commodity for the whole period?
model1<-lm(ipcoil.xts$indexmxxusd~ipcoil.xts$indexoil)
summary(model1)

Call:
lm(formula = ipcoil.xts$indexmxxusd ~ ipcoil.xts$indexoil)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.62468 -0.12554 -0.00326  0.14933  0.42338 

Coefficients:
                    Estimate Std. Error t value
(Intercept)         0.919819   0.009832   93.56
ipcoil.xts$indexoil 0.473935   0.008580   55.24
                               Pr(>|t|)    
(Intercept)         <0.0000000000000002 ***
ipcoil.xts$indexoil <0.0000000000000002 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1967 on 3820 degrees of freedom
Multiple R-squared:  0.4441,    Adjusted R-squared:  0.4439 
F-statistic:  3051 on 1 and 3820 DF,  p-value: < 0.00000000000000022
# I see statistics on my regression model

Here you have to support your answer running 1 or 2 econometric models along with its interpretation (if you think you need to do a statistical test, you have to run it)

I RAN A REGRESSION TO OBSERVE THE RELATIONSHIP BETWEEN THE MEXICAN FINANCIAL MARKET AND OIL COMMODITIES.THE BETA1 COEFFICIENT IS POSITIVE WITH A VALUE OF .4739, AND IT IS SIGNIFICANTLY GREATER THAN ZERO (T-VALUE= 55.24) THIS MEANS THAT THERE IS STRONG EVIDENCE THAT BOTH, THE MEXICAN FINANCIAL MARKET IS STRONGLY RELATED IN A POSITIVE WAY WITH THE OIL COMMODITIES, AND FOR EACH MOVEMENT OF 1 FOR OIL COMMODITIES, THE EXPECTED MOVEMENT FOR THE MEXICAN FINANCIAL MARKET IS ABOUT .4739 points.

adf.test(model1$residuals, k=0)

    Augmented Dickey-Fuller Test

data:  model1$residuals
Dickey-Fuller = -3.4278, Lag order = 0, p-value =
0.04922
alternative hypothesis: stationary

BASED OFF OF P, I CAN INFER THAT THE RESIDUALS ARE STATIONARY AND BOTH SERIES ARE COINTEGRATED AND SHOW A POSITIVE MOVEMENT.

  1. Which instrument has been more volatile in the whole period? In other words, which is the instrument with the highest daily volatility of RETURNS in the whole period?

Oil’s Volatility

returns <- na.omit(diff(log(ipcoil.xts)))
OILroll_mean <- na.omit(rollapply(returns$OILPRICE, 20, mean))
OILroll_sd <- na.omit(rollapply(returns$OILPRICE, 20, sd))
OIL_mean_vol <- merge(OILroll_mean, OILroll_sd)
colnames(OIL_mean_vol) <- c("roll_mean", "roll_sd")
plot(OIL_mean_vol)

MXXUSD’s Volatility

MXXUSDroll_mean <- na.omit(rollapply(returns$MXXUSD, 20, mean))
MXXUSDroll_sd <- na.omit(rollapply(returns$MXXUSD, 20, sd))
MXXUSD_mean_vol <- merge(MXXUSDroll_mean, MXXUSDroll_sd)
colnames(MXXUSD_mean_vol) <- c("roll_mean", "roll_sd")
plot(MXXUSD_mean_vol)

GSPC’s Volatility

GSPCroll_mean <- na.omit(rollapply(returns$GSPC, 20, mean))
GSPCroll_sd <- na.omit(rollapply(returns$GSPC, 20, sd))
GSPC_mean_vol <- merge(GSPCroll_mean, GSPCroll_sd)
colnames(GSPC_mean_vol) <- c("roll_mean", "roll_sd")
plot(GSPC_mean_vol)

AFTER ANLYZING THE 3 GRAPHS, MY DECISION TO APPOINT A HIGHER VOLATILITY GOES WITH MXXUSD, SINCE IT EXHIBITS HIGHER DAILY VOLATILITY THAN THE OTHER INDEXES.

  1. ONLY for this instrument with the highest volatility, design and run a GARCH(1,1) to model daily volatility of returns, and based on this model do the following:

ESTIMATING GARCH(1,1)

Especgarch1=ugarchspec(variance.model= list(model= "sGARCH", garchOrder= c(1, 1), 
submodel= NULL,  variance.targeting= FALSE), 
mean.model= list(armaOrder= c(0, 0), include.mean= TRUE, archm= FALSE, 
archpow= 0, arfima= FALSE,  external.regressors= NULL, archex= FALSE), 
distribution.model= "norm", start.pars= list(), fixed.pars= list())
garch1<- ugarchfit(spec=Especgarch1, data = returns$MXXUSD)
garch1

*---------------------------------*
*          GARCH Model Fit        *
*---------------------------------*

Conditional Variance Dynamics   
-----------------------------------
GARCH Model : sGARCH(1,1)
Mean Model  : ARFIMA(0,0,0)
Distribution    : norm 

Optimal Parameters
------------------------------------
        Estimate  Std. Error  t value Pr(>|t|)
mu      0.000370    0.000209   1.7703 0.076669
omega   0.000008    0.000001   7.1940 0.000000
alpha1  0.110800    0.007284  15.2113 0.000000
beta1   0.858007    0.008599  99.7831 0.000000

Robust Standard Errors:
        Estimate  Std. Error  t value Pr(>|t|)
mu      0.000370    0.000221   1.6711 0.094697
omega   0.000008    0.000002   3.8313 0.000127
alpha1  0.110800    0.009172  12.0803 0.000000
beta1   0.858007    0.013640  62.9031 0.000000

LogLikelihood : 10800.32 

Information Criteria
------------------------------------
                    
Akaike       -5.6510
Bayes        -5.6445
Shibata      -5.6510
Hannan-Quinn -5.6487

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                        statistic         p-value
Lag[1]                      35.29 0.0000000028411
Lag[2*(p+q)+(p+q)-1][2]     35.65 0.0000000003518
Lag[4*(p+q)+(p+q)-1][5]     38.43 0.0000000001294
d.o.f=0
H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.1972  0.6570
Lag[2*(p+q)+(p+q)-1][5]    3.5478  0.3161
Lag[4*(p+q)+(p+q)-1][9]    6.1072  0.2861
d.o.f=2

Weighted ARCH LM Tests
------------------------------------
            Statistic Shape Scale P-Value
ARCH Lag[3]    0.1734 0.500 2.000  0.6771
ARCH Lag[5]    0.3485 1.440 1.667  0.9271
ARCH Lag[7]    2.8801 2.315 1.543  0.5365

Nyblom stability test
------------------------------------
Joint Statistic:  14.0332
Individual Statistics:             
mu     0.2741
omega  3.0540
alpha1 0.2447
beta1  0.3233

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:         1.07 1.24 1.6
Individual Statistic:    0.35 0.47 0.75

Sign Bias Test
------------------------------------


Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
  group statistic p-value(g-1)
1    20     63.89 0.0000009225
2    30     78.95 0.0000016513
3    40     95.01 0.0000014163
4    50    110.31 0.0000012732


Elapsed time : 0.4180157 

A. INTERPRET your GARCH(1,1) model BASED OFF THE MODEL, THE VALUE FOR BETA1 IS EQUAL TO 0.858007 WHCIH MEANS IT IS POSITIVE AND SIGNIFICANT. WE ALSO HAVE ALPHA 1 WITH A VALUE OF 0.110799 WHICH ONCE AGAIN IS POSITIVE AND SIGNIFICANT. mu IS 0.000369, REPRESENTING THE AVERAGE DAILY RETURN FOR MXXUSD AT 0.0369 PERCENT. TAKING INTO ACCOUNT ALL COEFFICIENTS, THE AVERAGE OF THE DAILY VARIANCE OF THE SHOCK IS 0.0008 PERCENT.

B. Use your previous GARCH(1,1) model and predict volatility for the future day Forecast:

garch1.prediction <- ugarchforecast(garch1,n.ahead= 1)
garch1.prediction@forecast$sigmaFor
    2022-04-29
T+1 0.01159217

C. Using the previous predicted volatility, estimate the 5%VaR of this instrument for the next future day assuming fat-tail distribution of returns

kurtosis <- as.numeric(kurtosis(returns$MXXUSD))
Error in kurtosis(returns$MXXUSD) : could not find function "kurtosis"

D. Interpret 5%VaR of the following 1 day in the future

SORRY TEACHER, I DON’T KNOW WHAT I MISSED BUT I CAN’T SEEM TO RUN THE CHUNK ABOVE.

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKYXV0aG9yOiBTdGVmYW4gU2Nod2VpdHplciwgQTAxMjA5NzU1Cm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KIyBFeGFtIDIgLSBQcmFjdGljZSBQYXJ0CiMjIE1hY3JvIGVjb25vbWljIHJlbGF0aW9uc2hpcHMgYW5kIHZvbGF0aWxpdHkgbW9kZWxsaW5nIAoKYGBge3J9CnJtKGxpc3Q9bHMoKSkKb3B0aW9ucyhzY2lwZW49OTk5KQpsaWJyYXJ5KHh0cykKZG93bmxvYWQuZmlsZSgiaHR0cDovL3d3dy5hcHJhZGllLmNvbS9lYzIwMDQvaXBjb2lsLmNzdiIsICJpcGNvaWwuY3N2IikKaXBjb2lsIDwtIHJlYWQuY3N2KGZpbGU9ImlwY29pbC5jc3YiLCBoZWFkZXI9VFJVRSwgc2VwPSIsIikgCgppcGNvaWwkZGF0ZSA9IGFzLkRhdGUoaXBjb2lsJGRhdGUpCiMgY29udmVydGluZyB0byBhbiB4dHMgZGF0YSBmcmFtZToKaXBjb2lsLnh0cyA9IHh0cyhpcGNvaWxbLGMoMjo2KV0sb3JkZXIuYnk9aXBjb2lsJGRhdGUpCmBgYApgYGB7cn0KbGlicmFyeShyZWFkeGwpCmxpYnJhcnkodHNlcmllcykKYGBgCmBgYHtyfQpsaWJyYXJ5KHpvbykKbGlicmFyeShydWdhcmNoKQpgYGAKClRoaXMgZGF0YXNldCBoYXMgcmVhbCBpbmZvcm1hdGlvbiBvZiB0aGUgTWV4aWNhbiBhbmQgdGhlIFVTIG1hcmtldCBpbmRleCwgYW5kIGNydWRlIG9pbCBkYWlseSBwcmljZXMgZnJvbSBKdWwgMjAwNiB0byBBcHJpbCwgMjAyMiAoaW5jbHVkZXMgdGhlIGxhc3QgMyBNZXhpY2FuIOKAnHNleGVuaW9z4oCdKS4gVGhlIGRhdGFzZXQgaGFzIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzOgoKCk1YWFVTRCAtIERhaWx5IElQQ3lDIGluZGV4IGluIFVTRCAoSXQgaXMgYW4gdGhlIE1YWCBpbmRleCBhZnRlciBhZGp1c3RpbmcgZm9yIHRoZSBNWC1VU0QgZXhjaGFuZ2UgcmF0ZSkKR1NQQyAtIERhaWx5IFMmUCA1MDAgaW5kZXgKT0lMUFJJQ0UgLSBEYWlseSBwcmljZSBvZiBjcnVkZSBvaWwgKGluIFVTRCkKCllvdSBmaXJzdCBoYXZlIHRvIGNyZWF0ZSBhICJzdGFuZGFyZGl6ZWQiIGluZGV4IGZvciBlYWNoIG9mIHRoZXNlIGluZGV4ZXMuIEVhY2ggaW5kZXggbXVzdCByZXByZXNlbnRzIGEgJDEuMDAgVVNEIGludmVzdGVkIGF0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHNlcmllcy4gRm9yIGVhY2ggZGF5IGVhY2ggaW5kZXggd2lsbCBzaG93IHRoZSB2YWx1ZSBvZiB0aGUgJDEuMDBVU0QgaW52ZXN0bWVudCBhdCBhbnkgZGF5LiBTbyB5b3UgY291bGQgZWFzaWx5IGNvbXBhcmUgdGhlc2UgMyBpbnZlc3RtZW50cyBvdmVyIHRpbWUuIFlvdSBoYXZlIHRvIGRpdmlkZSB0aGUgdmFsdWUgb2Ygb2lsIHByaWNlIGJ5IHRoZSBmaXJzdCB2YWx1ZSBvZiB0aGUgc2VyaWVzLiAKClRvIGhlbHAgeW91IG91dCB3aXRoIHRoZSBjYWxjdWxhdGlvbiBvZiB0aGVzZSAzIGluZGV4ZXMsIGhlcmUgaXMgYW4gZXhhbXBsZSBmb3IgdGhlIGNhc2Ugb2YgT2lsIHByaWNlOgoKT2lsIFByaWNlCmBgYHtyfQppcGNvaWwueHRzJGluZGV4b2lsID0gaXBjb2lsLnh0cyRPSUxQUklDRSAvYXMubnVtZXJpYyggaXBjb2lsLnh0cyRPSUxQUklDRVsxXSkKYGBgCgpDcmVhdGUgdGhlIGluZGV4ZXMgZm9yIHRoZSBteHggYW5kIGZvciB0aGUgc3A1MDAgZm9sbG93aW5nIHRoZSBzYW1lIGNhbGN1bGF0aW9uIGFzIGFib3ZlLiAKCk1YWFVTRApgYGB7cn0KbGlicmFyeShxdWFudG1vZCkKZ2V0U3ltYm9scyhTeW1ib2xzPWMoIl5NWFgiKSwgcGVyaWRpb2NpdHkgPSAiZGFpbHkiLAogICAgICAgICAgICAgICAgICAgICBmcm9tPSIyMDA2LTA3LTAxIiwgdG89IjIwMjItMDQtMDEiKQpuYS5vbWl0KE1YWCkKYGBgCgpgYGB7cn0KbGlicmFyeShxdWFudG1vZCkKZ2V0U3ltYm9scyhTeW1ib2xzPWMoIl5HU1BDIiksIHBlcmlkaW9jaXR5ID0gImRhaWx5IiwKICAgICAgICAgICAgICAgICAgICAgZnJvbT0iMjAwNi0wNy0wMSIsIHRvPSIyMDIyLTA0LTAxIikKbmEub21pdChHU1BDKQpgYGAKTVhYVVNECmBgYHtyfQppcGNvaWwueHRzJGluZGV4bXh4dXNkIDwtIGlwY29pbC54dHMkTVhYVVNEIC9hcy5udW1lcmljKCBpcGNvaWwueHRzJE1YWFVTRFsxXSkKYGBgCgpHU1BDCmBgYHtyfQppcGNvaWwueHRzJGluZGV4Z3NwYyA8LSBpcGNvaWwueHRzJEdTUEMgL2FzLm51bWVyaWMoIGlwY29pbC54dHMkR1NQQ1sxXSkKYGBgCgpOb3cgZG8gYSBwbG90IGZvciBlYWNoIGluZGV4IG92ZXIgdGltZSB0byBoYXZlIGEgZ2VuZXJhbCBpZGVhIGFib3V0IHRoZSAzIGluc3RydW1lbnRzLgpPaWwgSW5kZXgKYGBge3J9CnBsb3QoaXBjb2lsLnh0cyRpbmRleG9pbCkKYGBgCkdTUEMgSW5kZXgKYGBge3J9CnBsb3QoaXBjb2lsLnh0cyRpbmRleGdzcGMpCmBgYAoKTVhYIElOREVYCmBgYHtyfQpwbG90KGlwY29pbC54dHMkaW5kZXhteHh1c2QpCmBgYAozCmBgYHtyfQpwbG90KGlwY29pbC54dHMpCmBgYAoKVXNpbmcgeW91ciBrbm93bGVkZ2UgYWJvdXQgdGltZSBzZXJpZXMgZWNvbm9tZXRyaWNzIChDb2ludGVncmF0aW9uLCByZWdyZXNzaW9uLCB2b2xhdGlsaXR5IG1vZGVscyksIHlvdSBoYXZlIHRvIHJlc3BvbmQgdG8gdGhlIGZvbGxvd2luZyBxdWVzdGlvbnMsIEFORCB5b3VyIHJlc3BvbnNlcyBtdXN0IGJlIHN1cHBvcnRlZCB3aXRoIHN0YXRpc3RpY2FsL2Vjb25vbWV0cmljYWwgYW5hbHlzaXM6CgoxLiBIb3cgdGhlIE1leGljYW4gZmluYW5jaWFsIG1hcmtldCBpcyByZWxhdGVkIHdpdGggdGhlIG9pbCBjb21tb2RpdHkgZm9yIHRoZSB3aG9sZSBwZXJpb2Q/CgpgYGB7cn0KbW9kZWwxPC1sbShpcGNvaWwueHRzJGluZGV4bXh4dXNkfmlwY29pbC54dHMkaW5kZXhvaWwpCnN1bW1hcnkobW9kZWwxKQojIEkgc2VlIHN0YXRpc3RpY3Mgb24gbXkgcmVncmVzc2lvbiBtb2RlbApgYGAKSGVyZSB5b3UgaGF2ZSB0byBzdXBwb3J0IHlvdXIgYW5zd2VyIHJ1bm5pbmcgMSBvciAyIGVjb25vbWV0cmljIG1vZGVscyBhbG9uZyB3aXRoIGl0cyBpbnRlcnByZXRhdGlvbiAoaWYgeW91IHRoaW5rIHlvdSBuZWVkIHRvIGRvIGEgc3RhdGlzdGljYWwgdGVzdCwgeW91IGhhdmUgdG8gcnVuIGl0KQoKSSBSQU4gQSBSRUdSRVNTSU9OIFRPIE9CU0VSVkUgVEhFIFJFTEFUSU9OU0hJUCBCRVRXRUVOIFRIRSBNRVhJQ0FOIEZJTkFOQ0lBTCBNQVJLRVQgQU5EIE9JTCBDT01NT0RJVElFUy5USEUgQkVUQTEgQ09FRkZJQ0lFTlQgSVMgUE9TSVRJVkUgV0lUSCBBIFZBTFVFIE9GIC40NzM5LCBBTkQgSVQgSVMgU0lHTklGSUNBTlRMWSBHUkVBVEVSIFRIQU4gWkVSTyAoVC1WQUxVRT0gNTUuMjQpIFRISVMgTUVBTlMgVEhBVCBUSEVSRSBJUyBTVFJPTkcgRVZJREVOQ0UgVEhBVCBCT1RILCBUSEUgTUVYSUNBTiBGSU5BTkNJQUwgTUFSS0VUIElTIFNUUk9OR0xZIFJFTEFURUQgSU4gQSBQT1NJVElWRSBXQVkgV0lUSCBUSEUgT0lMIENPTU1PRElUSUVTLCBBTkQgRk9SIEVBQ0ggTU9WRU1FTlQgT0YgMSBGT1IgT0lMIENPTU1PRElUSUVTLCBUSEUgRVhQRUNURUQgTU9WRU1FTlQgRk9SIFRIRSBNRVhJQ0FOIEZJTkFOQ0lBTCBNQVJLRVQgSVMgQUJPVVQgLjQ3MzkgcG9pbnRzLgoKYGBge3J9CmFkZi50ZXN0KG1vZGVsMSRyZXNpZHVhbHMsIGs9MCkKYGBgCkJBU0VEIE9GRiBPRiBQLCBJIENBTiBJTkZFUiBUSEFUIFRIRSBSRVNJRFVBTFMgQVJFIFNUQVRJT05BUlkgQU5EIEJPVEggU0VSSUVTIEFSRSBDT0lOVEVHUkFURUQgQU5EIFNIT1cgQSBQT1NJVElWRSBNT1ZFTUVOVC4KCjIuIFdoaWNoIGluc3RydW1lbnQgaGFzIGJlZW4gbW9yZSB2b2xhdGlsZSBpbiB0aGUgd2hvbGUgcGVyaW9kPyBJbiBvdGhlciB3b3Jkcywgd2hpY2ggaXMgdGhlIGluc3RydW1lbnQgd2l0aCB0aGUgaGlnaGVzdCBkYWlseSB2b2xhdGlsaXR5IG9mIFJFVFVSTlMgaW4gdGhlIHdob2xlIHBlcmlvZD8KCk9pbCdzIFZvbGF0aWxpdHkKYGBge3J9CnJldHVybnMgPC0gbmEub21pdChkaWZmKGxvZyhpcGNvaWwueHRzKSkpCk9JTHJvbGxfbWVhbiA8LSBuYS5vbWl0KHJvbGxhcHBseShyZXR1cm5zJE9JTFBSSUNFLCAyMCwgbWVhbikpCk9JTHJvbGxfc2QgPC0gbmEub21pdChyb2xsYXBwbHkocmV0dXJucyRPSUxQUklDRSwgMjAsIHNkKSkKT0lMX21lYW5fdm9sIDwtIG1lcmdlKE9JTHJvbGxfbWVhbiwgT0lMcm9sbF9zZCkKY29sbmFtZXMoT0lMX21lYW5fdm9sKSA8LSBjKCJyb2xsX21lYW4iLCAicm9sbF9zZCIpCnBsb3QoT0lMX21lYW5fdm9sKQpgYGAKCgpNWFhVU0QncyBWb2xhdGlsaXR5CmBgYHtyfQpNWFhVU0Ryb2xsX21lYW4gPC0gbmEub21pdChyb2xsYXBwbHkocmV0dXJucyRNWFhVU0QsIDIwLCBtZWFuKSkKTVhYVVNEcm9sbF9zZCA8LSBuYS5vbWl0KHJvbGxhcHBseShyZXR1cm5zJE1YWFVTRCwgMjAsIHNkKSkKTVhYVVNEX21lYW5fdm9sIDwtIG1lcmdlKE1YWFVTRHJvbGxfbWVhbiwgTVhYVVNEcm9sbF9zZCkKY29sbmFtZXMoTVhYVVNEX21lYW5fdm9sKSA8LSBjKCJyb2xsX21lYW4iLCAicm9sbF9zZCIpCnBsb3QoTVhYVVNEX21lYW5fdm9sKQpgYGAKCgpHU1BDJ3MgVm9sYXRpbGl0eQpgYGB7cn0KR1NQQ3JvbGxfbWVhbiA8LSBuYS5vbWl0KHJvbGxhcHBseShyZXR1cm5zJEdTUEMsIDIwLCBtZWFuKSkKR1NQQ3JvbGxfc2QgPC0gbmEub21pdChyb2xsYXBwbHkocmV0dXJucyRHU1BDLCAyMCwgc2QpKQpHU1BDX21lYW5fdm9sIDwtIG1lcmdlKEdTUENyb2xsX21lYW4sIEdTUENyb2xsX3NkKQpjb2xuYW1lcyhHU1BDX21lYW5fdm9sKSA8LSBjKCJyb2xsX21lYW4iLCAicm9sbF9zZCIpCnBsb3QoR1NQQ19tZWFuX3ZvbCkKYGBgCgpBRlRFUiBBTkxZWklORyBUSEUgMyBHUkFQSFMsIE1ZIERFQ0lTSU9OIFRPIEFQUE9JTlQgQSBISUdIRVIgVk9MQVRJTElUWSBHT0VTIFdJVEggTVhYVVNELCBTSU5DRSBJVCBFWEhJQklUUyBISUdIRVIgREFJTFkgVk9MQVRJTElUWSBUSEFOIFRIRSBPVEhFUiBJTkRFWEVTLgoKMy4gT05MWSBmb3IgdGhpcyBpbnN0cnVtZW50IHdpdGggdGhlIGhpZ2hlc3Qgdm9sYXRpbGl0eSwgZGVzaWduIGFuZCBydW4gYSBHQVJDSCgxLDEpIHRvIG1vZGVsIGRhaWx5IHZvbGF0aWxpdHkgb2YgcmV0dXJucywgYW5kIGJhc2VkIG9uIHRoaXMgbW9kZWwgZG8gdGhlIGZvbGxvd2luZzoKCkVTVElNQVRJTkcgR0FSQ0goMSwxKQpgYGB7cn0KRXNwZWNnYXJjaDE9dWdhcmNoc3BlYyh2YXJpYW5jZS5tb2RlbD0gbGlzdChtb2RlbD0gInNHQVJDSCIsIGdhcmNoT3JkZXI9IGMoMSwgMSksIApzdWJtb2RlbD0gTlVMTCwgIHZhcmlhbmNlLnRhcmdldGluZz0gRkFMU0UpLCAKbWVhbi5tb2RlbD0gbGlzdChhcm1hT3JkZXI9IGMoMCwgMCksIGluY2x1ZGUubWVhbj0gVFJVRSwgYXJjaG09IEZBTFNFLCAKYXJjaHBvdz0gMCwgYXJmaW1hPSBGQUxTRSwgIGV4dGVybmFsLnJlZ3Jlc3NvcnM9IE5VTEwsIGFyY2hleD0gRkFMU0UpLCAKZGlzdHJpYnV0aW9uLm1vZGVsPSAibm9ybSIsIHN0YXJ0LnBhcnM9IGxpc3QoKSwgZml4ZWQucGFycz0gbGlzdCgpKQpnYXJjaDE8LSB1Z2FyY2hmaXQoc3BlYz1Fc3BlY2dhcmNoMSwgZGF0YSA9IHJldHVybnMkTVhYVVNEKQpnYXJjaDEKYGBgCgpBLiBJTlRFUlBSRVQgeW91ciBHQVJDSCgxLDEpIG1vZGVsCkJBU0VEIE9GRiBUSEUgTU9ERUwsIFRIRSBWQUxVRSBGT1IgQkVUQTEgSVMgRVFVQUwgVE8gMC44NTgwMDcgIFdIQ0lIIE1FQU5TIElUIElTIFBPU0lUSVZFIEFORCBTSUdOSUZJQ0FOVC4gV0UgQUxTTyBIQVZFIEFMUEhBIDEgV0lUSCBBIFZBTFVFIE9GIDAuMTEwNzk5IFdISUNIIE9OQ0UgQUdBSU4gSVMgUE9TSVRJVkUgQU5EIFNJR05JRklDQU5ULiBtdSBJUyAwLjAwMDM2OSwgUkVQUkVTRU5USU5HIFRIRSBBVkVSQUdFIERBSUxZIFJFVFVSTiBGT1IgTVhYVVNEIEFUIDAuMDM2OSBQRVJDRU5ULiBUQUtJTkcgSU5UTyBBQ0NPVU5UIEFMTCBDT0VGRklDSUVOVFMsIFRIRSBBVkVSQUdFIE9GIFRIRSBEQUlMWSBWQVJJQU5DRSBPRiBUSEUgU0hPQ0sgSVMgMC4wMDA4IFBFUkNFTlQuCgpCLiBVc2UgeW91ciBwcmV2aW91cyBHQVJDSCgxLDEpIG1vZGVsIGFuZCBwcmVkaWN0IHZvbGF0aWxpdHkgZm9yIHRoZSBmdXR1cmUgZGF5CkZvcmVjYXN0OiAKYGBge3J9CmdhcmNoMS5wcmVkaWN0aW9uIDwtIHVnYXJjaGZvcmVjYXN0KGdhcmNoMSxuLmFoZWFkPSAxKQpnYXJjaDEucHJlZGljdGlvbkBmb3JlY2FzdCRzaWdtYUZvcgpgYGAKCkMuIFVzaW5nIHRoZSBwcmV2aW91cyBwcmVkaWN0ZWQgdm9sYXRpbGl0eSwgZXN0aW1hdGUgdGhlIDUlVmFSIG9mIHRoaXMgaW5zdHJ1bWVudCBmb3IgdGhlIG5leHQgZnV0dXJlIGRheSBhc3N1bWluZyBmYXQtdGFpbCBkaXN0cmlidXRpb24gb2YgcmV0dXJucwpgYGB7cn0Ka3VydG9zaXMgPC0gYXMubnVtZXJpYyhrdXJ0b3NpcyhyZXR1cm5zJE1YWFVTRCkpCgpkZiA8LSA2L2t1cnRvc2lzICsgNAoKdCA8LSBxdCgwLjA1LGRmKQoKbWVhbiA8LSBtZWFuKHJldHVybnMkTVhYVVNEKQoKdm9sYXRpbGl0eSA8LSBnYXJjaDEucHJlZGljdGlvbkBmb3JlY2FzdCRzaWdtYUZvcgoKVmFSIDwtIChtZWFuICsgdCAqIGdhcmNoMS5wcmVkaWN0aW9uQGZvcmVjYXN0JHNpZ21hRm9yKSoxMDAKVmFSCmBgYAoKRC4gSW50ZXJwcmV0IDUlVmFSIG9mIHRoZSBmb2xsb3dpbmcgMSBkYXkgaW4gdGhlIGZ1dHVyZQoKU09SUlkgVEVBQ0hFUiwgSSBET04nVCBLTk9XIFdIQVQgSSBNSVNTRUQgQlVUIEkgQ0FOJ1QgU0VFTSBUTyBSVU4gVEhFIENIVU5LIEFCT1ZFLiA=