R与现代金融分析.pdf
第四届中国R语言会议报告 R与现代金融分析 五个示例 邓一硕 dengyishuo@163.com http://yishuo.org 示例1: • R与金融时间序列建模 示例1:R与金融时间序列建模 • 1.1 波动率模型 – Garch族 • Garch、eGARCH、gjrGARCH、apARCH • iGARCH、TGARCH、AVGARCH等 – 多元Garch族 • BEKK等 – SV模型 • R都能搞定么? • 是的。 • rgarch包,mgarchBEKK包,SV包。 示例1:R与金融时间序列建模 • 1.2 rarch包 – 指定模型类型 – ugarchspec() – 下面的代码复杂么?不要害怕! ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1), submodel = NULL, external.regressors = NULL, variance.targeting = FALSE), mean.model = list(armaOrder = c(1, 1), include.mean = TRUE, garchInMean = FALSE, inMeanType = 1, arfima = FALSE, external.regressors = NULL), distribution.model = "norm", start.pars = list(), fixed.pars = list(), ...) 示例1:R与金融时间序列建模 • 1.2 rarch包 – 拟合模型 – ugarchfit() – 这个很简单,要特别注意solver和fit.control ugarchfit(spec, data, out.sample = 0, solver = "solnp", solver.control = list(), fit.control = list(stationarity = 1, fixed.se = 0, scale = 0), ...) 示例1:R与金融时间序列建模 • 1.2 rgarch包 – 提取模型结果:as.data.frame(,which=…) – 模型预测: ugarchforecast() – 滚动分析:ugarchroll() – Bootstrap: ugarchboot() – 模拟:ugarchsim() – 还有,VaR和CVaR…… 示例2: • R与金融风险度量 示例2:R与金融风险度量 • 2.1 在险价值(Valut at Risk) – 定义: → – :资产价值变化量 的累积分布函数→核心 – :满足 内条件的最小实数 – 算法: • 历史模拟法 • 蒙特卡罗模拟法 • 方差-协方差法 示例2:R与金融风险度量 – R包:PerformanceAnalytics – R代码: >library(PerformanceAnalytics) >VaR(test, clean=“boudt”, portfolio_method=“component”,weights=weights) $MVaR [,1] [1,] 0.02147515 $contribution Convertible.Arbitrage 0.0026391217 CTA.Global Distressed.Securities 0.0000237569 0.0068367477 Emerging.Markets 0.0119755210 $pct_contrib_MVaR Convertible.Arbitrage 0.122891904 CTA.Global Distressed.Securities 0.001106251 0.318356266 Emerging.Markets 0.557645580 示例2:R与金融风险度量 • 2.2 条件在险价值(Conditional Valut at Risk) – 定义: – R代码: > ES(test, clean="boudt", portfolio_method="component",weights=weights) $MES [,1] [1,] 0.03415114 $contribution Convertible.Arbitrage 0.006950150 CTA.Global Distressed.Securities -0.004918395 0.013451737 $pct_contrib_MES Convertible.Arbitrage 0.2035115 CTA.Global Distressed.Securities Emerging.Markets -0.1440185 0.3938884 0.5466185 Emerging.Markets 0.018667645 示例3: • R与技术分析 示例3:R与技术分析 • 3.1 计算技术分析指标 – 包:TTR – ADX():平均趋向指标 – OBV():平衡交易量指标 – CMF ():Chaikin资金流量指标 – RSI():相对强弱指标 – Bbands():布林线 – 等等…但是,有什么用呢? 示例3:R与技术分析 • 3.2 用平衡交易量指标获利 – 理论基础:市场价格的变化必须有成交量的配合。 – 算法:以某日为基期,逐日累计每日总成交量,若隔 日指数或股票上涨,则基期OBV加上本日成交量为本日 OBV。隔日指数或股票下跌,则基期OBV减去本日成交 量为本日OBV。 – 交易策略: • 买进@t日: • 卖出@t日: 示例3:R与技术分析 – R代码: getSymbols("^SSEC") obv=OBV(Cl(SSEC), Vo(SSEC)) obvma=SMA(obv, n=10) Mm=merge(Cl(SSEC),obv,obvma,signal) for(i in 25:dim(Mm)[1]){ if(Mm[i-1,2]