xts Daten; 2 Monate exportieren

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
blck

xts Daten; 2 Monate exportieren

Beitrag 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
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: xts Daten; 2 Monate exportieren

Beitrag von EDi »

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
Bild.
blck

Re: xts Daten; 2 Monate exportieren

Beitrag 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
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: xts Daten; 2 Monate exportieren

Beitrag 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')
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
Bild.
Antworten