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
xts Daten; 2 Monate exportieren
Re: xts Daten; 2 Monate exportieren
Bitte ein reproduzierbares Beispiel posten.
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Re: xts Daten; 2 Monate exportieren
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.
Danke nochmals
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)
Re: xts Daten; 2 Monate exportieren
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')
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.