我試圖使用MFI生成買/賣信號來測試策略。這實際上應該很簡單,但是R給我一個很難的時間。在q中添加qountmod數據框中的計算列
這裏是我的代碼:
q <- get(getSymbols('spy',src='yahoo'))
q$mfi <- MFI(q[,2:4],q[,5],5)
sig <- function(row) {
if (row$mfi < 20) { return (1)}
else if (row$mfi > 80) { return (-1)}
else { return (0)}}
q$result<-apply(q,1,sig)
是我得到的錯誤是:
Error in row$mfi : $ operator is invalid for atomic vectors
如果有使用簡單的條件,我將不勝感激的測試策略,更好的方法...
做,當你運行'typeof運算(行),你會得到什麼'? –
您應該使用'[]'[indexing operator](http://cran.r-project.org/doc/manuals/R-lang.html#Indexing)訪問行。你還沒有在代碼中定義'x'。 –
SeñorO - 你是對的,這是一個錯誤 - 我需要寫q而不是x。埃裏克,我不能到行類型,因爲該功能失敗。 q是「xts」「zoo」類型。 – haki