我一直在努力应对波动率预测.在网上挖掘之后,我想出了一个准解决方案.但是,结果对我来说没有意义.我想预测未来多天的波动性.我得到的sigma增加了n.ahead = 50的加班时间.我希望看到未来50天的波动性.但它不能总是增加.
假设我想从今天+ 20天预测西格玛.我该怎么做才能正确?任何提示将不胜感激.也许我应该使用ugarchroll而不是?
library(quantmod)
library(rugarch)
data<-getSymbols("SPY", from="2000-01-01")
dailyreturn<-dailyReturn(SPY$SPY.Adjusted)
mydata<-dailyreturn[,1]
model<-ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(0, 0), include.mean = FALSE), distribution.model = "norm")
modelfit<-ugarchfit(spec=model,data=mydata)
data = mydata[1:3521, ,drop=FALSE]
spec = getspec(modelfit)
setfixed(spec) <- as.list(coef(modelfit))
forecast = ugarchforecast(spec, n.ahead = 50, n.roll = 3520, data = mydata[1:3521, ,drop=FALSE], out.sample = 3520)
sigma(forecast)
plot(forecast)
Run Code Online (Sandbox Code Playgroud)
非常感谢!
我有一个工作公式,用于以下文本到目前为止的转换.但是,我不明白为什么必须添加尾随0才能以YYYY格式显示年份.
2016年4月21日转换为2016年4月21日
=(MID(A2,4,2)&"/"&LEFT(A2,2)&"/"&RIGHT(A2,2))+0
Run Code Online (Sandbox Code Playgroud)
这非常简单直接.但是,如果你删除公式末尾的0,它将只显示16而不是2016.但我可以做Right(A2,4)而不是Right(A2,2).但我还是想知道为什么?任何人?谢谢!
嗨,有经验的 R 用户,
这是一件很简单的事情。我想和x
通过Group.1
根据一个可控变量。
x
当我说这样的话时,我想通过对前两行进行分组来求和:number <- 2
如果我说3
,它应该x
对前三行求和Group.1
知道我如何解决这个问题吗?我应该写一个函数吗?提前谢谢大家。
Group.1 Group.2 x
1 1 Eggs 230299
2 2 Eggs 263066
3 3 Eggs 266504
4 4 Eggs 177196
Run Code Online (Sandbox Code Playgroud) 我一直试图解决这个问题,但没有运气.我想要做的就是区分多项式,如P(x) = 3x^3 + 2x^2 + 4x + 5
代码末尾,程序应该评估这个函数并给我一个答案.
衍生物P(x)
是P'(x) = 3*3x^2 + 2*2x + 4*1
.如果x = 1,答案是17.无论我如何改变循环,我都无法得到答案.
/*
x: value of x in the polynomial
c: array of coefficients
n: number of coefficients
*/
double derivePolynomial(double x, double c[], int n) {
double result = 0;
double p = 1;
int counter = 1;
for(int i=n-1; i>=0; i--) //backward loop
{
result = result + c[i]*p*counter;
counter++; // number of power
p = …
Run Code Online (Sandbox Code Playgroud) 对于有经验的人来说,这应该很简单.我想用R求解方程.我知道你可以使用Solve()求解不同的线性/二次方程.
但我有这样的事情:
1/20 = 1/8 * (1/(12+x)) + 1/4*(1/(40+x)) + 3/4*(1/(50+x))
Run Code Online (Sandbox Code Playgroud)
在这种情况下如何解决x?它不能手工完成.它需要一些数字方法来解决这个问题,就像在TI83中一样.
有没有一种简单快捷的方法在R中执行此操作而无需编写代码行?谢谢!
这可能是微不足道的,但我找不到答案.我知道我的Intel i7 8核心处理器每秒可以计算数百万比特.
但是,控制台以较慢的速度显示以下简单代码.在控制台中,它已经很快但是需要一些时间才能结束.
这是因为MS修复了win32控制台窗口的刷新速度吗?先感谢您!
for(int i=1; i<=10e8;i++){
cout<<i<<endl;
}
Run Code Online (Sandbox Code Playgroud) 一个数组不能定义为c [0],它至少必须像c [1]为什么下面的代码是正确的?他在那做什么?谢谢你的解释.
编辑:对不起伙计们,我正在VS2012中编写C++代码
int foo(double c[], int n)
{
if (n==1) {
c[0] = 0; //why is this possible?
} else {
.
.
.
}
Run Code Online (Sandbox Code Playgroud)