簡體   English   中英

R Project和MQL4將R中的預測對象轉換為Vector

[英]R Project and MQL4 convert forecast object in R to Vector

我在R中使用預測包,這會創建一個預測對象。

我想將預測轉換為向量,以便我可以使用7bits包裝並在MQL4代碼中使用R.

示例預測代碼:

> forecast(fit, h=5)
     Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
1057       1.605098 1.602110 1.608087 1.600528 1.609668
1058       1.605109 1.600891 1.609327 1.598658 1.611561
1059       1.604868 1.599723 1.610012 1.597000 1.612735
1060       1.604978 1.599037 1.610919 1.595892 1.614065
1061       1.605162 1.598511 1.611813 1.594990 1.615335

我希望能夠以某種方式存儲那些預測,低於80,高80等。在向量中,我可以將它們從R中拉出並進入MQL4以用於指標。

我試過了:

> test1 <- forecast(fit, h=5)
> test1
     Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
1057       1.605098 1.602110 1.608087 1.600528 1.609668
1058       1.605109 1.600891 1.609327 1.598658 1.611561
1059       1.604868 1.599723 1.610012 1.597000 1.612735
1060       1.604978 1.599037 1.610919 1.595892 1.614065
1061       1.605162 1.598511 1.611813 1.594990 1.615335

但是,如果我試圖提取預測,我得到:

> test1$Forecast
NULL

如果我跑頭,結構顯示為:

> head(test1)
$method
[1] "ARIMA(2,1,2)                   "

$model
Series: mt4test$close 
ARIMA(2,1,2)                    

Coefficients:
          ar1      ar2     ma1     ma2
      -0.5030  -0.9910  0.4993  0.9783
s.e.   0.0123   0.0089  0.0202  0.0140

sigma^2 estimated as 5.437e-06:  log likelihood=4897.31
AIC=-9784.61   AICc=-9784.55   BIC=-9759.81

$level
[1] 80 95

$mean
Time Series:
Start = 1057 
End = 1061 
Frequency = 1 
[1] 1.605098 1.605109 1.604868 1.604978 1.605162

$lower
          80%      95%
[1,] 1.602110 1.600528
[2,] 1.600891 1.598658
[3,] 1.599723 1.597000
[4,] 1.599037 1.595892
[5,] 1.598511 1.594990

$upper
          80%      95%
[1,] 1.608087 1.609668
[2,] 1.609327 1.611561
[3,] 1.610012 1.612735
[4,] 1.610919 1.614065
[5,] 1.611813 1.615335

任何幫助,將不勝感激。 哈哈,這讓我無法繼續前進。

提前致謝。

函數forecast()生成列表。 使用函數str()您可以檢查此對象的結構,並使用函數names()查看此列表中每個元素的名稱。

library(forecast)
fit <- Arima(WWWusage,c(3,1,0))
test1<-forecast(fit)

names(test1)
[1] "method"    "model"     "level"     "mean"      "lower"     "upper"     "x"        
[8] "xname"     "fitted"    "residuals"

 #to extract forecast
test1$mean

Time Series:
Start = 101 
End = 110 
Frequency = 1 
 [1] 219.6608 219.2299 218.2766 217.3484 216.7633 216.3785 216.0062 215.6326 215.3175 215.0749

 #or as vector
as.vector(test1$mean)
 [1] 219.6608 219.2299 218.2766 217.3484 216.7633 216.3785 216.0062 215.6326 215.3175 215.0749

 #to extract upper interval
test1$upper

           80%      95%
 [1,] 223.5823 225.6582
 [2,] 228.5332 233.4581
 [3,] 232.7151 240.3585
 .... .... ....
[10,] 260.7719 284.9625

 #to extract lower interval
test1$lower

 #to extract only 95% upper interval
test1$upper[,2]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM