原文链接:http://tecdat.cn/?p=25476
从狭义上讲,咱们能够将金融市场情况分为两类:牛市和熊市。第一个是安稳且通常向上倾斜。第二个形容了一个低迷的市场,通常更不稳固。在任何特定时刻,咱们只能猜想本人所处的状态;因为这两个状态没有对立精确的定义。
在这篇文章中,咱们将应用(无限)混合模型来尝试将每日股票收益分配给他们的牛 \ 熊子组。它实质上是一个无监督的聚类练习。咱们创立本人的消退指标,以帮忙咱们量化股市。咱们应用起码的输出,只应用股票收益数据。从对无限混合模型的简短形容开始,而后给出一个实际的例子。
混合模型
不是每个察看都来自一个定义明确或相熟的散布,例如高斯,当初的察看来自几个散布的混合。咱们能够将两种散布的混合示意为:
是整体散布, 是例如具备一些均值和方差的正态分布,并且 又是一个正态分布,但具备不同的均值和不同的方差。,这样它们总和为一。所以, 能够解释为来自每个散布的察看的概率。从实践上讲,如果咱们有足够的 ,这意味着 ,无论在事实中如许简单或灵便,都能够胜利迫近。这是在如此多的应用领域中发现混合模型的起因。
R 语言中的混合模型
您会诧异地发现它是如许容易:
1. 提取一些对于 SPY,ETF 的数据并转换为每日收益。
da0 <- getSymbol
n <- NROW
dat <- array
prv <- matrix
for (i in 1:l) {
da0 <- getSymbols
w1 <- daiyRern
w0 <- cbind
}
2. 应用 R 进行估算 和 的。在上面的代码中 k
是成分数,lambda
是混合比例的初始值。
norEM(w0SPY)
summary(mod)
预计的形式是应用 EM 算法 Expectation–maximization algorithm。咱们有两个散布,一个更稳固,波动性较低(~0.66)和正均值(~0.087),另一个散布具备更高的波动性(~2.0)和负均值(~-0.13)。此外,lambda 最终确定 75% 的工夫咱们处于稳固的环境中,而 25% 的工夫察看属于更不稳固的状态。所以有了这个无限的信息集,咱们失去了一些相当正当的货色。当初每次察看,您都有该察看来自第一个或第二个重量的后验概率。因而,要真正决定哪个察看属于哪个状态。如果察看后果有更高的概率来自更不稳固的状态,这就是它的类别,对概率进行四舍五入:
reg <- apply(round)
当咱们查看分类察看后果时,这两种区制看起来是这样的:
每日 SPY 收益率 (%)
两种状态(区制)的密度估计
因而,仅基于收益数据,数值算法就创立了这两种区制,十分直观。有了这些常识,咱们当初能够创立本人的消退指标。
创立本人的消退指标
创立消退指标的一种办法是计算在某个挪动窗口内归类为熊市状态的察看次数。波动性聚类程式化的事实使这个想法变得有意义。咱们应用 120 天的挪动窗口,并将后果标准化以使所有历史都处于同一根底上。
# # 抉择更不稳固的区制
rend <- mo(rege\[, 2\]) %>% scale
最好在左侧有消退的可能性。咱们能够应用 Sigmoid 映射轻松做到这一点:
reprob <- red %>% sigmoid
上图反映了更事实的状况;基金经理评估咱们所处的区制或状态有多艰难。将咱们的消退指标与其余更传统的消退指标进行比拟。
最受欢迎的见解
1.R 语言对 S&P500 股票指数进行 ARIMA + GARCH 交易策略
2.R 语言改良的股票配对交易策略剖析 SPY—TLT 组合和中国股市投资组合
3.R 语言工夫序列:ARIMA GARCH 模型的交易策略在外汇市场预测利用
4.TMA 三均线期指高频交易策略的 R 语言实现
5.r 语言多均线量化策略回测比拟
6. 用 R 语言实现神经网络预测股票实例
7.r 语言预测稳定率的实现:ARCH 模型与 HAR-RV 模型
8.R 语言如何做马尔科夫转换模型 markov switching model
9.matlab 应用 Copula 仿真优化市场危险