[quote author=trantute2 link=topic=4586924.msg43359966#msg43359966 date=1533241092]
Poste mal die Fehlermeldungen. R ist nicht sonderlich gesprächig und informativ was Fehler angeht. Aber wenn man ein Weilchen damit arbeitet, dann bekommt man ein Gefühl dafür. Und ja, ich muss das nochmal vollständig überarbeiten und die ganzen neuen Sachen mit übernehmen. Das könnte sich aber etwas ziehen ...
Aber wie schon weiter oben irgendwo erwähnt, Du musst zu Beginn die entsprechenden Pakete installieren (falls Du das noch nicht gemacht hast):
[code]
install.packages("anytime");
install.packages("data.table");
install.packages('depmixS4');
Dies fehlt in oberen Codesnippets. Desweiteren kann es sein, dass das Betriebssystem Bibliotheken bereitstellen muss, welche R wiederum benötigt um die Pakete zu kompilieren. Bei Windows ist das nicht nötig soweit ich weiss. Also nochmals, poste mal die Fehlermeldungen.[/code]
Hallo Trantute,
Vielen Dank für die schnelle Antwort.
Hier mal die Fehlermeldungen:
> install.packages("anytime");
versuche URL '
https://ftp.fau.de/cran/bin/macosx/el-capitan/contrib/3.5/anytime_0.3.1.tgz'
Content type 'application/x-gzip' length 879140 bytes (858 KB)
==================================================
downloaded 858 KB
Die heruntergeladenen Binärpakete sind in
/var/folders/vd/lyd0z2f97wbb0xvrlgb1khwh0000gn/T//RtmpJdsmFy/downloaded_packages
> install.packages("data.table");
versuche URL '
https://ftp.fau.de/cran/bin/macosx/el-capitan/contrib/3.5/data.table_1.11.4.tgz'
Content type 'application/x-gzip' length 1700724 bytes (1.6 MB)
==================================================
downloaded 1.6 MB
Die heruntergeladenen Binärpakete sind in
/var/folders/vd/lyd0z2f97wbb0xvrlgb1khwh0000gn/T//RtmpJdsmFy/downloaded_packages
> install.packages('depmixS4');
versuche URL '
https://ftp.fau.de/cran/bin/macosx/el-capitan/contrib/3.5/depmixS4_1.3-3.tgz'
Content type 'application/x-gzip' length 828506 bytes (809 KB)
==================================================
downloaded 809 KB
Die heruntergeladenen Binärpakete sind in
/var/folders/vd/lyd0z2f97wbb0xvrlgb1khwh0000gn/T//RtmpJdsmFy/downloaded_packages
> x <- cbind(x, "CLOSE_PRICE"=close$PRICE);
Fehler in cbind(x, CLOSE_PRICE = close$PRICE) : Objekt 'x' nicht gefunden
>
> # berechne return eines Tages
> x <- cbind(x, "RETURN"=(x$CLOSE_PRICE - x$OPEN_PRICE)/x$OPEN_PRICE);
Fehler in cbind(x, RETURN = (x$CLOSE_PRICE - x$OPEN_PRICE)/x$OPEN_PRICE) :
Objekt 'x' nicht gefunden
>
> # nicht so wichtig, gibt im Chart an ob Eröffungspreis über oder unter Schlusspreis liegt bzw. vice versa (das Rot und Grün auf bitcoinwisdom)
> change <- c(NA, as.integer(diff(x$MEAN_PRICE) > 0));
Fehler in diff(x$MEAN_PRICE) : Objekt 'x' nicht gefunden
> color <- as.integer(x$CLOSE_PRICE-x$OPEN_PRICE > 0);
Fehler: Objekt 'x' nicht gefunden
>
> # Spalten anfügen
> x <- cbind(x, "CHANGE"=change);
Fehler in cbind(x, CHANGE = change) : Objekt 'x' nicht gefunden
> x <- cbind(x, "COLOR"=color);
Fehler in cbind(x, COLOR = color) : Objekt 'x' nicht gefunden
>
> # build and fit the HMM mit 3 States stellvertretend für bärsich, bullisch und seitwärts
> hmm <- depmix(RETURN ~ 1, family = gaussian(), nstates = 3, data=x);
Fehler in depmix(RETURN ~ 1, family = gaussian(), nstates = 3, data = x) :
Objekt 'x' nicht gefunden
> hmmfit <- fit(hmm, verbose = FALSE); # entält den Akaike-Score des Modells, braucht man um Modelle zu vergleichen
Fehler in fit(hmm, verbose = FALSE) : Objekt 'hmm' nicht gefunden
> post_probs <- posterior(hmmfit); # berechnet welcher Zustand wann aktiv war
Fehler in posterior(hmmfit) : Objekt 'hmmfit' nicht gefunden
>
> matplot(post_probs[,-1], type="l"); # Bildchen hmmfit <- fit(hmm, em.control=em.control(maxit=5000), verbose = FALSE); # extrahiere ersten und letzten Tag der Woche
Fehler in matplot(post_probs[, -1], type = "l") :
Objekt 'post_probs' nicht gefunden
> x <- cbind(x, "WEEK_DAY"=((1:nrow(x))%%7));
Fehler in cbind(x, WEEK_DAY = ((1:nrow(x))%%7)) :
Objekt 'x' nicht gefunden
> open <- x$OPEN_PRICE[x$WEEK_DAY==1];
Fehler: Objekt 'x' nicht gefunden
> close <- x$CLOSE_PRICE[x$WEEK_DAY==0];
Fehler: Objekt 'x' nicht gefunden
>
> # passe die Länge der Vektoren an sodass es für jeden Tag eine Entsprechung gibt, einer der Fälle ist glaube ich unnötig
> if (length(open) > length(close)) open <- open[1:length(close)];
> if (length(open) < length(close)) close <- close[1:length(open)];
>
> # erzeuge Datenframe für Wochen
> y <- data.frame("OPEN_PRICE"=open, "CLOSE_PRICE"=close);
Fehler in as.data.frame.default(x[
], optional = TRUE) :
cannot coerce class "function" to a data.frame
> y <- cbind(y, "RETURN"=(y$CLOSE_PRICE - y$OPEN_PRICE)/y$OPEN_PRICE);
Fehler in cbind(y, RETURN = (y$CLOSE_PRICE - y$OPEN_PRICE)/y$OPEN_PRICE) :
Objekt 'y' nicht gefunden
>
> #####################
>
> # HMM für 2 Zustände
> hmm2 <- depmix(RETURN ~ 1, family = gaussian(), nstates = 2, data=y);
Fehler in depmix(RETURN ~ 1, family = gaussian(), nstates = 2, data = y) :
Objekt 'y' nicht gefunden
> hmmfit2 <- fit(hmm2, verbose = FALSE);
Fehler in fit(hmm2, verbose = FALSE) : Objekt 'hmm2' nicht gefunden
> post_probs2 <- posterior(hmmfit2);
Fehler in posterior(hmmfit2) : Objekt 'hmmfit2' nicht gefunden
>
> matplot(post_probs2[,-1], type="l");
Fehler in matplot(post_probs2[, -1], type = "l") :
Objekt 'post_probs2' nicht gefunden
>
> # HMM für 3 Zustände
> hmm3 <- depmix(RETURN ~ 1, family = gaussian(), nstates = 3, data=y);
Fehler in depmix(RETURN ~ 1, family = gaussian(), nstates = 3, data = y) :
Objekt 'y' nicht gefunden
> hmmfit3 <- fit(hmm3, verbose = FALSE);
Fehler in fit(hmm3, verbose = FALSE) : Objekt 'hmm3' nicht gefunden
> post_probs3 <- posterior(hmmfit3);
Fehler in posterior(hmmfit3) : Objekt 'hmmfit3' nicht gefunden
>
> matplot(post_probs3[,-1], type="l");
Fehler in matplot(post_probs3[, -1], type = "l") :
Objekt 'post_probs3' nicht gefunden
>
Ach und wegen dem Betriebssystem: Ich benutze einen Mac mit MacOS High Sierra 10.13.6
Vielleicht hilft das ja schon mal weiter.
Ja, einen Trezor T benutze ich bereits und bin bisher auch sehr zufrieden damit. Ich möchte nach und nach alle Coins auf ihm ablegen; die größten Anteile sind schon auf ihm gesichert. Das mit der Fidor-Bank ist keine schlechte Idee. Muss ich mir mal in Ruhe ansehen.
Ich bin auch gespannt, wie sich Deine Methode in der Praxis schlagen wird. Ich rechne wie Du aber nicht damit, dass es eine Lizenz zum Gelddrucken ist. Das muss es auch nicht. Entscheidend für mich ist, dass ich eine objektive, marktbasierte Regel habe, die sich aus marktgenerierten Informationen speist, an der ich mich orientieren kann. Damit möchte ich die Emotionen aus dem Handel verbannen und auch das Herumgerate wie bei der Technischen Analyse vermeiden.
Zum computerbasierten Handel kann ich vielleicht noch folgendes Buch empfehlen, auch wenn es mich teiweise überfordert hat:
Kevin J. Davey: Building Winning Algorithmic Trading Systems