![](/img/trans.png)
[英]How to import data from mql4 (metatrader) to r in order to automate?
[英]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.