Seite 1 von 1

xts Daten; 2 Monate exportieren

Verfasst: Do Nov 30, 2017 9:37 pm
von blck
Hallo zusammen

Ich möchte den simple moving average (SMA aus dem Paket TTR) auf täglichen Daten berechnen.
Die SMA-Funktion ist wie folgt aufgebaut:

SMA(x, n = 10, ...)

wobei x = Preis, n = Periode, über die der Durchschnitt berechnet wird.

Nun mein Problem: Ich möchte gerne den SMA über zwei Monate berechnen. Wie definiere ich dieses subset möglichst flexibel bei täglichen Daten?
Die Daten liegen als xts vor. Die SMA-Berechnung ist danach rollen, d.h. jeden Tag wird ein neuer Preis in die Durchschnittsberechnung aufgenommen und der letzte Preis aus der Berechnung entfernt. Es handelt sich faktisch um ein moving window.

Besten Dank

Blck

Re: xts Daten; 2 Monate exportieren

Verfasst: Do Nov 30, 2017 10:47 pm
von EDi
Bitte ein reproduzierbares Beispiel posten.

Re: xts Daten; 2 Monate exportieren

Verfasst: So Dez 03, 2017 10:17 am
von blck
Hallo zusammen

Danke EDi für den Hinweis.

Die Datenreihe habe ich als rdata-file hier hochgeladen:

https://www.file-upload.net/download-12 ... RData.html

Hier der code in kurz, wobei ich eben nicht weiss, wie aus den täglichen Daten ein zweimonatiges EMA-Fenster definieren kann. Ich kann natürlich nicht fix
60 Tage definieren, da die Anzahl Tage je nach Monate unterschiedlich ist.

Code: Alles auswählen

# 1. Paket laden
require(TTR)
# 2. Daten laden
load("pathtofile/example.RData")
# 3. EMA berechnen
EMA(ldBond, 2months)
Danke nochmals

Re: xts Daten; 2 Monate exportieren

Verfasst: Mo Dez 04, 2017 11:19 pm
von EDi
Taugt dir period.apply() zusammen mit endpoints?

Code: Alles auswählen

require(zoo)
zoo.data <- zoo(c(rnorm(62)+10, rnorm(62) +5), as.Date(13514:13744,origin="1970-01-01"))
zoo.data
plot(zoo.data)

require(xts)
ep <- endpoints(zoo.data, 'months', k = 2)
ma <- period.apply(zoo.data, INDEX=ep, mean)
ma
lines(ma, col = 'red')