Diskussion zum Artikel "Tiefe neuronale Netzwerke (Teil I). Datenaufbereitung" - Seite 3

 
Vladimir Perervenko:

In ggplot2(v2.2.1) die Definition von geom_candlestick (MRO 3.4.1) verschwunden.

Ich habe bereits MRO 3.4.0 abgerissen, in dem ich alle Berechnungen gemacht habe, also werde ich morgen eine Lösung finden und schreiben.

Welche Version von R haben Sie?

Vielen Dank!

Die neueste Version ist "R Version 3.4.2 (2017-09-28)"

 

Deshalb mag ich dieses ggplot2 nicht. Hier ist eine funktionierende Variante, die ich nicht in den Artikel aufgenommen habe.

#--------quantmod----------------------------
require(quantmod)
require(timetk)
evalq(
  pr %>% tk_xts(.) %>%
        chartSeries(x = OHLC(.), 
                    #c("auto", "candlesticks", 
                    #"matchsticks", "bars","line")
                    type = "bars", 
                    subset = 'last 3 days',#weeks, months
                    show.grid = T,
                    name = "EURJPY M15",
                    tyme.scale = T,
                    log.scale = FALSE,
                    line.type = "l",
                    bar.type = "ohlc",
                    theme = chartTheme('white',
                                       up.col = 4, 
                                       dn.col = 2,
                                       grid.col = 3,
                                       main.col = 1,
                                       sub.col = 4), 
                    major.ticks = "day", 
                    minor.ticks = TRUE ,
                    plot = TRUE,
                    color.vol = F,
                    multi.col = F
                    ),
      env)

Sie sieht so aus.

Fahrplan

Viel Glück

 
Vladimir Perervenko:

Deshalb mag ich dieses ggplot2 nicht. Hier ist eine funktionierende Variante, die ich nicht in den Artikel aufgenommen habe.

Sie sieht so aus.


Viel Glück!

Vielen Dank!

Ihre Variante erstellt ein normales Diagramm in RStudio, aber im MT4 Terminal funktioniert es nicht. Ich kämpfe schon den zweiten Tag damit und der Befehl chartSeries funktioniert nicht über die env-Umgebung.

Wenn möglich, teilen Sie mir bitte einen Expert Advisor für MT4 mit, der die Kurse entlädt und einen Chart erstellt. Ich danke Ihnen.

Ich konnte es nur auf die alte Art und Weise tun, wie ich es vorher getan habe. Es ist sehr umständlich, alle Befehle im Terminal zu schreiben, nicht in R.


Rv(R, "Daten",tm);

Rv(R, "Zeit",tm);

Rv(R, "Öffnen",o);

Rv(R, "Hoch",hi);

Rv(R, "Tief",lo);

Rv(R, "Schluss",clo);

Rv(R, "Volumen",vol);


PREDICTION_COMMAND=

"library(magrittr) "+CR

+"bibliothek(dplyr) "+CR

+"bibliothek(xts) "+CR

+"library(quantmod) "+CR

+"price <- cbind(Time = rev(Time), Open = rev(Open), High = rev(High), Low = rev(Low), Close = rev(Close)) "+CR

+"preis_t <- preis "+CR

+"dts = price_t[,1]"+CR

+"mydates = structure(price_t[,1],class=c('POSIXt','POSIXct')) "+CR

+"price_time <- xts(x=price_t[,c(2:5)], order.by=mydates, tzone='GMT') "+CR

;

RExecuteAsync(R,PREDICTION_COMMAND);

Rx(R, "chartSeries(price_time, type = 'bars', subset = 'last 3 days',show.grid = T,name ='EURUSD M15',tyme.scale = T,log.scale = FALSE,line.type = 'l',bar.type = 'ohlc',theme = chartTheme('white',up.col = 4,dn.col = 2,grid.col = 3,main.col = 1,sub.col = 4),major.ticks = 'day',minor.ticks = TRUE,plot = TRUE,colour.vol = F,multi.col = F)");


 
Konstantin Kopylov:

Ich danke Ihnen!

Ihre Variante baut ein Diagramm normal in RStudio, aber in MT4 Terminal funktioniert es nicht. Der zweite Tag bin ich kämpfen und ich kann nicht die chartSeries Befehl durch die Umgebung env zu bekommen.

Wenn möglich, teilen Sie bitte einen Expert Advisor für MT4, der Kurse entlädt und einen Chart aufbaut. Ich danke Ihnen.

Ich konnte es nur auf die alte Art und Weise machen, wie ich es vorher gemacht habe. Es ist sehr umständlich, alle Befehle im Terminal zu schreiben, nicht in R.


Rv(R, "Daten",tm);

Rv(R, "Zeit",tm);

Rv(R, "Öffnen",o);

Rv(R, "Hoch",hi);

Rv(R, "Tief",lo);

Rv(R, "Schluss",clo);

Rv(R, "Volumen",vol);


PREDICTION_COMMAND=

"library(magrittr) "+CR

+"bibliothek(dplyr) "+CR

+"bibliothek(xts) "+CR

+"library(quantmod) "+CR

+"price <- cbind(Time = rev(Time), Open = rev(Open), High = rev(High), Low = rev(Low), Close = rev(Close)) "+CR

+"preis_t <- preis "+CR

+"dts = price_t[,1]"+CR

+"mydates = structure(price_t[,1],class=c('POSIXt','POSIXct')) "+CR

+"price_time <- xts(x=price_t[,c(2:5)], order.by=mydates, tzone='GMT') "+CR

;

RExecuteAsync(R,PREDICTION_COMMAND);

Rx(R, "chartSeries(price_time, type = 'bars', subset = 'last 3 days',show.grid = T,name = 'EURUSD M15',tyme.scale = T,log.scale = FALSE,line.type = 'l',bar.type = 'ohlc',theme = chartTheme('white',up.col = 4,dn.col = 2,grid.col = 3,main.col = 1,sub.col = 4),major.ticks = 'day',minor.ticks = TRUE,plot = TRUE,colour.vol = F,multi.col = F))");


Tag.

Ich plotte nicht auf diese Weise von MT aus. Es ist umständlich und unpraktisch. Interaktive und alle anderen Diagramme sollten von R aus über Shiny erstellt werden.

Im V-Teil des Artikels werde ich einen Expert Advisor mit der Ausgabe eines einfachen Charts anhängen. Aber ich verstehe nicht, warum Sie einen Chart mit Kursen benötigen?

Ich wollte ein Diagramm mit Testergebnissen, Echtzeit-Handelsergebnissen und einer Aufschlüsselung nach Zeit, Symbol usw. ausgeben. Vielleicht werde ich nicht alles in diesem Expert Advisor machen.

Für die Arbeit mit Zeit/Datum sollten Sie sich das bequemere timekt-Paket ansehen. Sie haben die Wahl.

Viel Erfolg!

 

Hallo, Vladimir,

1) warum

v.rstl = c(NA, diff(rstl)*10)

mit 10 multipliziert wird, die anderen aber nicht?

Mit Normalisierung der Multiplikation Effekt - wird verschwinden.

2) Digitale Filter werden nach Schlusskursen gezählt. Zu Beginn des Balkens ist der Close-Kurs unbekannt (und gleich dem Open-Kurs). Und bei der Zählung nach Close wird in die Zukunft geschaut, was die Genauigkeit etwas erhöht.
Vielleicht sollten Sie die Filter nach Close des vorherigen Balkens oder zumindest nach Open des aktuellen Balkens zählen?

Für das Experiment habe ich versucht, die Filter nach Open zu zählen - die Ergebnisse wurden um ein paar Prozent schlechter.
Gemäß dem Experiment aus dem 6. Artikel

> #---5-----best----------------------
[1] 0.677 0.674 0.673 0.672 0.669 0.669 0.668

anstelle von Close [1] 0,720 0,718 0,718 0,718 0,715 0,713 0,713 0,712.

3) Warum sind die Filter FATL, SATL, RFTL, RSTL von den weiteren Berechnungen ausgeschlossen? Die Berechnung bezieht sich nur auf Oszillatoren. Ich habe versucht, sie drin zu lassen, aber clusterSim hielt sie für wichtig und hat sie nicht herausgefiltert. Als Ergebnis des Trainings erhielt ich einen Fehler von etwa 50%, d.h. obwohl sie wichtig sind, verschlechtern sie das Ergebnis erheblich.
Ich denke, es ist sinnvoll, nur Oszillatoren als Eingaben für neuronale Netze zu verwenden?
 
elibrarius:

Hallo, Vladimir,

1) warum

mit 10 multipliziert wird, die anderen aber nicht?

Mit Normalisierung der Multiplikation Effekt - wird verschwinden.

2) Digitale Filter werden nach Schlusskursen gezählt. Zu Beginn des Balkens ist der Close-Kurs unbekannt (und gleich dem Open-Kurs). Und bei der Zählung nach Close wird in die Zukunft geschaut, was die Genauigkeit etwas erhöht.
Vielleicht sollten Sie die Filter nach Close des vorherigen Balkens oder zumindest nach Open des aktuellen Balkens zählen?

Für das Experiment habe ich versucht, die Filter nach Open zu zählen - die Ergebnisse wurden um ein paar Prozent schlechter.
Gemäß dem Experiment aus dem 6. Artikel

> #---5-----best----------------------
[1] 0.677 0.674 0.673 0.672 0.669 0.669 0.668

anstelle von Close [1] 0,720 0,718 0,718 0,718 0,715 0,713 0,713 0,712.

3) Warum sind die Filter FATL, SATL, RFTL, RSTL von den weiteren Berechnungen ausgeschlossen? Die Berechnung bezieht sich nur auf Oszillatoren. Ich habe versucht, sie drin zu lassen, aber clusterSim hielt sie für wichtig und hat sie nicht herausgefiltert. Als Ergebnis des Trainings erhielt ich einen Fehler von etwa 50%, d.h. obwohl sie wichtig sind, verschlechtern sie das Ergebnis erheblich.
Ich denke, es ist sinnvoll, nur Oszillatoren als Eingaben für neuronale Netze zu verwenden?

Guten Tag.

(1) Dieser Prädiktor hatte sehr kleine Werte und konnte bei der Normalisierung herausfallen. Ich habe ihn einfach in den Bereich der anderen Prädiktoren eingepasst. Mit der SpatialSign-Methode sollten sich die Prädiktoren nicht um Größenordnungen unterscheiden.

2. Alle Kurswerte werden aus den gebildeten Balken, beginnend bei 1, entnommen. Im Allgemeinen ist es besser, ein Zickzack nach High/Low zu zählen. In den letzten Artikeln habe ich Varianten der ZZ-Berechnung vorgestellt.

3 Diese 4 sind durchgehende Linien und können nicht als Eingaben verwendet werden. Der erste Unterschied über sie ist anwendbar

v.fatl = c(NA, diff(fatl)),
v.rftl = c(NA, diff(rftl)),
v.satl = c(NA, diff(satl)),
v.rstl = c(NA, diff(rstl)*10))

Digitale Filter haben einen wichtigen Vorteil gegenüber anderen Indikatoren - sie sind nicht parametrisch (konventionell gesprochen natürlich). Aber ich mag sie sehr gerne.

Viel Erfolg!

 

Hallo, wie nach Ihrem Artikel (1. Mal berühren R), rechts in der 2. Baustein des Codes wurde ich mit dem folgenden Fehler konfrontiert:

Fehler in evalq({ : Objekt 'env' nicht gefunden

Bedeutet env hier etwas, das in der PC-Software benannt wurde? Oder ist es wirklich ein Objekt, das automatisch erstellt wurde?


Toller Artikel, werde einen Weg finden, ihn zu übertreffen, wäre toll, wenn Sie helfen könnten :)

(Ich benutze RStudio und habe MRO 3.5.3 installiert (weil 3.4.0 veraltet war))

 
ferox875 :

Hallo, nach Ihrem Artikel (berühren R zum ersten Mal), rechts in den zweiten Block von Code, stieß ich auf den folgenden Fehler:

Fehler in evalq ({: Objekt 'env' nicht gefunden

bedeutet env hier etwas, das in der PC-Software genannt wird? Oder ist es wirklich ein automatisch generiertes Objekt?


Toller Artikel, ich werde einen Weg finden, um es zu schlagen, es wäre toll, wenn Sie helfen könnten :)

(Ich verwende RStudio und installiere MRO 3.5.3 (da 3.4.0 veraltet ist))

Das env-Objekt wurde erstellt, um Daten von verschiedenen Tools zu trennen. Einfach am Anfang des Skripts schreiben

env <- new .env()
ls(env)
character( 0 )
env$a <- 23
ls(env)
[ 1 ] "a"
> env$a
[ 1 ] 23 

Viel Glück!

 

Lieber MR. Vladimir Perervenko, vielen Dank für Ihre schnelle Antwort, nach der Einnahme eines R-Kurses hoffe ich, zumindest genug zu machen, um das Studium Ihrer großartigen Arbeit zu verdienen, vielen Dank für den Austausch Herr Vladimir.



Mit besten Grüßen


Ferox

 

Hallo Herr Perervenko, ich hoffe, es geht Ihnen gut. Ich habe eine neue Frage, als Sie das erste Mal über ZigZag geschrieben haben:

#------ZZ-----------------------------------
par <- c(25, 5)
ZZ <- function(x, par) {
# x - vector
  require(TTR)
  require(magrittr)
  ch = par[1] 
  mode = par[2]
  if (ch > 1) ch <- ch/(10 ^ (Dig - 1))
  switch(mode, xx <- x$Close,
         xx <- x$Med, xx <- x$Typ,
         xx <- x$Wd, xx <- x %>% select(High,Low))
  zz <- ZigZag(xx, change = ch, percent = F, 
               retrace = F, lastExtreme = T)
  n <- 1:length(zz)
  for (i in n) { if (is.na(zz[i])) zz[i] = zz[i - 1]}
  return(zz)
}

in der 9. Zeile, was ist die Bedeutung des Dig-Objekts?

Ich konnte es weder im Projekt noch in den erforderlichen Paketen finden ...


Mit freundlichen Grüßen MR. Perervenko


Ferox