2016-08-05 15 views
2

Ich bin neu in R und versuche, eine Back-Testing-Strategie mithilfe der MACD-Funktion aus dem TTR-Paket zu entwickeln.MACD-Funktion im R TTR-Paket mit unterschiedlichen Ergebnissen für denselben Datensatz

Ich beobachte ein verdrahtetes Verhalten, wo ich verschiedene Ergebnisse für den gleichen Datensatz bekomme.

Hier sind die Befehle, die ich bin Ausführung ...

# Restarting R session... 

library(quantmod) 
getSymbols(c('INDRAMEDCO.BO'), from="2016-01-01") 
# [1] "INDRAMEDCO.BO" 
macd <- MACD(INDRAMEDCO.BO[, "Adjusted"], 12, 26, 9, percent=FALSE) 
last(macd) 
#     macd  signal 
# 2016-08-04 3.031666e-317 2.521193e-317 
macd <- MACD(INDRAMEDCO.BO[, "Adjusted"], 12, 26, 9, percent=FALSE) 
last(macd) 
#     macd   signal 
#2016-08-04 4.100941e-317 -2.366901e-318 
macd <- MACD(INDRAMEDCO.BO[, "Adjusted"], 12, 26, 9, percent=FALSE) 
last(macd) 
#      macd   signal 
#2016-08-04 -6.664617e-317 -4.561214e-317 

Beachten Sie, wie MACD und Signalwerte bei jeder Ausführung auf dieselben Daten und gleichen Parametern MACD-Funktion ändern. Ich bin mir nicht sicher, was ich falsch mache.

Hinweis: Ich verwende RStudio IDE. Nicht sicher, ob es wichtig ist.

Antwort

1

verwenden:

macd <- MACD(INDRAMEDCO.BO[, "INDRAMEDCO.BO.Adjusted"], 12, 26, 9, percent=FALSE) 
last(macd) 

       macd signal 
2016-08-04 0.3242379 0.3371936 

Es ist nicht "Adjusted" Spalte in den Daten.

+0

Dank @Rober. Es klappt. – Programmer

2

Dies ist ein Grund, warum die Säulenextraktor-Hilfsfunktionen existieren (z. B. Cl, OHLC, Ad). Ich empfehle Ihnen, sie zu verwenden, anstatt direkt auf die Spalte zu verweisen.

R> macd <- MACD(Ad(INDRAMEDCO.BO), 12, 26, 9, percent=FALSE) 
R> last(macd) 
       macd signal 
2016-08-05 0.346095 0.3387478 
+0

Korrigieren Sie @Joshua. Dies ist genau das, was ich getan habe :) – Programmer

+1

@Programmer: Dann sollten Sie vielleicht Up-Voting und/oder wählen Sie dies als die Antwort, die am besten beantwortet die Frage. Siehe [Was soll ich tun, wenn jemand meine Frage beantwortet?] (Http://stackoverflow.com/help/someone-answers). –