2016-03-24 72 views
1

我有以下代碼可以使用R軟件包quantmod使用來自Yahoo的數據創建股票圖表。在我的例子中,代碼中檢索到的符號是「KR」。更改Quantmod代碼中的符號

如何更改代碼以便我可以檢索其他股票代碼而不必用新股票代碼替換每個「KR」的發生率?

library(quantmod) 
library(TTR) 


getSymbols("KR", src="yahoo") 
KR <- adjustOHLC(KR, use.Adjusted=TRUE) 

KR.EMA.9<- EMA(KR$KR.Close, n=5) 
KR.EMA.34<- EMA(KR$KR.Close, n=50) 
KR.EMA.200 <- EMA(KR$KR.Close, n=200) 


candleChart(KR, theme="white", 
      subset='2015-09::2015-10') 
      addTA(KR.EMA.9, on=1, col = "red") 
      addTA(KR.EMA.34, on=1, col = "blue") 
      addTA(KR.EMA.9 - KR.EMA.34,col='blue', type='h',legend="9-34 MA") 

回答

1

這可以通過選項auto.assign=FALSE來實現。這是一個例子。

library(quantmod) 
my_tickers <- c("KR","AAPL", "MSFT") #store the tickers in a vector 
my_xts <- getSymbols(my_tickers[1], src="yahoo", auto.assign=FALSE) 
tail(my_xts) 
#   KR.Open KR.High KR.Low KR.Close KR.Volume KR.Adjusted 
#2016-03-16 37.87 38.69 37.82 38.61 6208100  38.61 
#2016-03-17 38.45 38.56 37.98 38.09 9445400  38.09 
#2016-03-18 38.14 38.88 38.00 38.56 9809000  38.56 
#2016-03-21 38.38 38.60 38.09 38.13 5911400  38.13 
#2016-03-22 38.18 38.32 37.69 37.95 7988000  37.95 
#2016-03-23 37.92 38.02 37.35 37.59 9089000  37.59 

同樣的代碼可用於通過僅改變的my_tickers[]索引以選擇另一個代碼:

my_xts <- getSymbols(my_tickers[2], src="yahoo", auto.assign=FALSE) 
tail(my_xts) 
#   AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted 
#2016-03-16 104.61 106.31 104.59  105.97 37893800  105.97 
#2016-03-17 105.52 106.47 104.96  105.80 34244600  105.80 
#2016-03-18 106.34 106.50 105.19  105.92 43402300  105.92 
#2016-03-21 105.93 107.65 105.14  105.91 35180800  105.91 
#2016-03-22 105.25 107.29 105.21  106.72 32232600  106.72 
#2016-03-23 106.48 107.07 105.90  106.13 25452600  106.13 

因此代碼可以運行,例如,與所述類型的環

for (i in 1:length(my_tickers)) { 
    my_xts <- getSymbols(my_tickers[i], src="yahoo", auto.assign=FALSE) 
    # perform analysis of the time series my_xts here 
} 

收盤價格可以使用Cl()選擇(有相應的功能可以選擇其他欄位,詳見?OHLC.Transformations瞭解詳情ILS)。

由此,能夠基於這樣的緊密數據來計算EMA等指標:

EMA.9 <- EMA(Cl(my_xts), 9) 
tail(EMA.9) 
#    EMA 
#2016-03-16 102.6959 
#2016-03-17 103.3167 
#2016-03-18 103.8374 
#2016-03-21 104.2519 
#2016-03-22 104.7455 
#2016-03-23 105.0224