2013-02-09 6 views
6

Ich verwende derzeit quantmod ZigZag Overlay und ich bemerkte, dass es etwas anders als das Original-Overlay berechnet wird. Ich habe den Unterschied in der folgenden picture von RDWR mit ZigZag (5%) mit quantmod und einem mit einem anderen Programm gezeigt. Wie Sie sehen können, fehlt quantmod eine Unmenge von signifikanten Punkten, Peaks und Höhen. Sie können den Unterschied auch ziemlich deutlich sehen, wenn Sie StockCharts verwenden.eine alternative Quantmod ZigZag Überlagerung

Ich denke, es ist wegen der Art und Weise quantmod den Trend glätten. Der Algorithmus sollte sowohl hohe & niedrige Werte und nicht nur einen Durchschnittspreis oder eine andere Regression verwenden. Ich frage mich, ob quantmod oder vielleicht TTR eine alternative ZigZag-Overlay zur Verfügung stellen, die die gewünschte Ausgabe produziert (im oberen Teil des Bildes dargestellt).

Danke.

der Code für die Anzeige der quantmod Ausgabe im Bild ist

s<-get(getSymbols('rdwr'))["2012-07::"] 
chart_Series(s) 
add_TA(ZigZag(s,5),on=1) 
+2

FWIW, funktioniert es mit 'chartSeries' wie folgt aus:' Chart (s); addZigZag (5) ', oder in einem Schritt' chartSeries (s, TA = "addZigZag (5)") '. Ich denke, es gibt noch etwas zu tun auf dem 'chart_Series' Framework ... – GSee

+1

Richtig du bist! z <-na.omit (ZigZag (s, 5)); z <-rind (z [findPeaks (z)], z [findValleys (z)]); z; Gelöst! (wusste nicht, dass sie eine andere Implementierung für die Überlagerungen in der neuen Diagrammfunktion haben). BTW, wie kann ich das alte Overlay mit chart_Series zeichnen (@agstudy hat mir gerade ein anderes Problem gelöst, indem ich zur experimentellen Funktion übergegangen bin) – haki

Antwort

5

Das Problem ist, dass ?ZigZag sagt die Eingabe eine hohe/niedrige Preis Serie sein sollte und Sie bot eine OHLCVA Serie. Es funktioniert korrekt, wenn Sie eine High/Low-Serie angeben.

s <- getSymbols('rdwr', auto.assign=FALSE) 
chart_Series(s, subset="2012-07::") 
add_TA(ZigZag(s[,2:3],5),on=1) 

enter image description here

+0

+1, aber '? ZigZag' ist etwas mehrdeutig. Es besagt, dass "HL" ein "Objekt sein sollte, das zu xts oder Matrix koerzitierbar ist und * entweder eine High-Low-Preisserie oder eine Close-Price-Serie enthält". [Betonung hinzugefügt]. Wenn man bedenkt, dass quantmod oft Eingaben mit Dingen wie "HLC", "Cl" usw. untergliedert, ist es vernünftig zu erwarten, dass ZigZag mit einem OHLCVA-Objekt arbeitet. – GSee

+0

@GSee: * Seufz * Ich kann sehen, wie das verwirrend sein könnte. –