Alle Inhalte von Krümel
-
Kapitalschutz
Hallo Knochen, willkommen bei Tom-Next. (Btw: Mein Avatar findet Dich lecker, soll ich Dir ausrichten )
-
Datenauswertung mit R
Aber so kompliziert soll es ja hier nicht werden. Was soll nachgeprüft werden ? ....die folgende Aussage : Ich brauche also Xetra-Dax-Daten und VDax-Daten möglichst bis zum Jahr 2003 zurückliegend. Wo kriege ich kostenlos Daten her ? Kostenlose EOD-Daten für den Xetra-Dax und den VDax gibt es bei http://de.finance.yahoo.com: [*]Dax: ), reichen meiner Erfahrung nach eine Handvoll Funktionen für den Anfang völlig aus, auf die ich mich hier beschränken werde. 1. Dateneinlesen Im ersten Schritt meines "Wir glauben keiner Statistik, die wir nicht selbst gefälscht haben"-Feldzugs sollen die heruntergeladenen Xetra- und VDax-Dax-Daten im CSV-Format aus den Textdateien eingelesen werden. Und zwar in jeweils einen Dataframe. Prinzipiell hält R eine recht mächtige Funktion bereit, die sich read.table nennt und mit gefühlten 10 Millionen Parametern einherkommt, von denen ich ca. 5 regelmäßig benutze. Für das gängige CSV-Format gibt es jedoch eine einfachere Funktion, die sich read.csv nennt. Um mehr über eine Funktion zu erfahren, kann man z.B. mal einen Blick in die Hilfedatei werfen mittels help(). Um in die Hilfedatei zu schauen (möglich ist ebenfalls eine HTML-Variante, das entscheidet man bei der Installation), tippe ich help(read.csv) in die Kommandozeile. Wenn man noch weniger weiß über die Funktion (z.B. keinen Namen hat, sondern nur ne Idee), gibt es noch eine Reihe anderer Funktionen wie help.search(), find () oder apropos(). Die Hilfe/Dokumentation von R ist - typisch für ein Opensource-Projekt - recht *hust* gewöhnungsbedürftig. Das muss man ignorieren und beim Lesen der Hilfedateien stoisch vor sich hinmurmeln "Ich bin nicht dumm, ich bin nicht dumm", denn sonst kann einem doch ab und an das Selbstbewusstsein verlassen. Das ist keine böse Absicht, sondern Programmierer programmieren in der Regel gern, schreiben aber höchst ungern Dokumentationen, v.a. wenn es derart schlecht bezahlt wird wie in einem Opensource-Projekt . Zum Glück gibt es mittlerweile schon eine Reihe guter R-Bücher zu kaufen, was zu tun ich auch schwer empfehlen würde.
-
Datenauswertung mit R
Da mir die Boardsoftware nur eine bestimmte Anzahl an Quote-Tags/Posting erlaubt, nun die Fortsetzung: Matrix Ein 2-dimensionales Array muss man explizit anlegen mittels matrix-Befehl. Bsp.: matrix(0,nrow=4,ncol=3) erzeugt als Ergebnis eine Matrix, die nur 0en enthält mit 4 Zeilen und 3 Spalten, die wie folgt aussieht: Es geht natürlich auch mit Zeichenketten: Oder wie wäre es, einen Vektor/Array in eine Matrix umzuwandeln ? oder auch Transponieren (Vertauschen von Zeilen und Spalten) geht auch recht flink: Mittels colnames() und rownames() kann ich sowohl Namen für die Spalten als auch die Zeilen vergeben. Zugriff auf die einzelnen Elemente bekommt man mittels Indizierung. m[1,2] liefert das Element der ersten Zeile und der 2. Spalte. Wenn mittels colnames()/rownames() Namen (analog zu der names()-Funktion bei einfachen Arrays) vergeben wurden, können diese ebenfalls benutzt werden. m["A","B"] liefert dann das Element, welches in der Zeile A und Spalte B stand. Zugriff auf mehrere Elemente bekommt man durch Eingabe von Index-Vektoren, welches aber auch die Namen sein können anstelle der Spalten-/Zeilennummern. Dadurch erhöht sich meist die Codelesbarkeit. Man kann sich damit also auch Spalten und Zeilen beliebig rausgreifen/umsortieren. Zeilenanhängen mittels rbind, Spaltenanhängen mittels cbind: Dataframe Mein Lieblingsdatentyp in R ist der Dataframe. Vergleichbar ist er mit ner Exceltabelle und kann auch in etwa so verwendet werden. Wenn man sich in die Materie mal richtig tief reingefummelt hat, kann man mit Dataframes arbeiten wie mit Datenbank-Tabellen. Zum Großteil ist das auch recht performant. Dataframes sind recht ähnlich zu Matrizen, können aber pro Spalte einen anderen Typ haben - den jedoch für die gesamte Spalte. Damit sind Dataframes DER ideale Datentyp, um Kursdaten (Zahlen und Zeichenketten) zu speichern. Für Dataframes können rbind (Zeilen anhängen), cbind (Spalten anhängen), colnames (Spaltennamen abfragen oder vergeben), rownames (Zeilennamen abfragen oder vergeben) analog zu den Matrix-Funktionen eingesetzt werden. Zugriff auf die Elemente erhält man entweder über den Zeilen-/Spaltenindex und ebenfalls über den Namen, allerdings hat man hier 2 Varianten. m[,"Time"] oder auch m$Time liefern beide den Inhalt der Spalte "Time". Oder man nimmt die Zeilen-/Spaltennummer - das klappt sowieso immer. Hier wäre das d[,1], um ebenfalls die erste Spalte mit den Time-Werten abzufragen.
-
Datenauswertung mit R
Datentypen Kann sein, dass ich welche vergessen habe. Nein, ist sehr wahrscheinlich, dass ich welche vergessen habe, denn R ist ein Molloch, auch wenn es nach dem ersten Programmstart so harmlos aussieht. Die gängigsten Typen sollten aber zumindest genannt sein, zusammen mit ein paar Funktionen, die sich für mich in der täglichen Arbeit als nützlich erwiesen haben. Für mehr Infos verweise ich gern auf "The R Book" . numeric (integer,double,real) Bsp.: x=1; class(x) x=0.1; class(x) Standardmäßig sind derartige Objekte vom Typ "numeric". Wer es spezieller mag, muss eine der Umwandlungsfunktionen benutzen, die vom Format as. sind. Mir reicht für gewöhnlich numeric als Typ völlig aus. In R sind alles Objekte, auch Funktionen, wie ich zuvor schon gezeigt habe. Abfrage des aktuellen Typs erfolgt mittels der Funktion class(), Testen auf einen speziellen Datentyp kann man mittels einer Funktion im Format is. und umwandeln kann man mittels as. . Mit as.integer(1) erzeugt man also einen "echten" Ganzzahlwert, wenn man allerdings as.integer(0.1) macht, kommt auch ne echte ganze Zahl raus, nämlich 0 . character: die handelsübliche Zeichenkette. Bsp: x="hallo welt" Zusammensetzung mehrerer Zeichenketten ist mittels der Funktion paste() möglich ('+' geht leider nicht ). x=paste("hallo","welt") ergibt "hallo welt". Per Default werden die einzelnen Strings, wovon beliebig viele in paste eingegeben werden können durch ein einfaches Leerzeichen verbunden. Will man ein anderes Zeichen, muss man zusätzlich den Parameter sep (für Seperator bzw. Trennzeichen) benutzen. paste("hallo","welt",sep='\t') verbindet die einzelnen Zeichenketten z.B. mittels 1 Tabulatorzeichens. Um sich mehrere Variablen innerhalb einer Zeile in der Konsole vom Programm ausgeben zu lassen, ist leider ebenfalls der Umweg über paste() zu gehen. Zumindest ist mir kein anderer bekannt. logical (was bedeutet: Boolesch) Werte: TRUE (oder T), FALSE (oder F) Entsteht immer als Ergebnis einer Vergleichsoperation wie '>=','',' factor Lass ich hier mal unter den Tisch fallen, ist aber für die komplexeren statistischen Verfahren ein echter Nutzen. function Damit kann man auch richtig fiese Sachen machen, aber das geht hier zu weit vom Thema weg. list Listen sind ideal, um alles zu verstauen, was sonst keiner haben will .... hätte ich beinahe geschrieben. Aber nein, Listen sind ideal, um als Rückgabetyp von Funktionen benutzt zu werden, die mehr als nur einen Rückgabewert haben sollen. Mittels list() (hmm, wir originell) legt man eine leere Liste an und fügt anschließend ein, was man aus einer Funktion raustransportieren will. Call-By-Reference geht meines Wissens nach nicht in R, von daher muss man zum Beispiel über ne Liste alles reinbringen in ne Funktion, was man haben will und über dieselbe Liste auch per return wieder raus. In Listen kann man alles einbauen, was man haben will: weitere Listen, Matrizen, Arrays, Dataframes.... Array (Vektor) Arrays/Vektoren sind Anreihungen von Elementen desselben Typs. Man erstellt einen leeren Vektor mittels c() (soll wahrscheinlich für Collection stehen). Für bestimmte Inkrementierungen/Dekrementierungen gibt es den seq-Befehl, der das Hoch- bzw. Runterzählen für einen übernimmt. x=seq(from=0,by=1,to=5) erstellt denselben Vektorinhalt in x wie x=c(0,1,2,3,4,5), kürzer geht es noch mit x=0:5. mit rep() kann man sich Elemente wiederholen (repeat) lassen: Man kann natürlich auch "Artfremdes" zusammenpacken wie z.B. mittels c(1,1c(1,1[1] "1" "TRUE" "A"So auch in diesem Fall (wie überraschend ). Ähnliche Überraschungen erwarten einen auch bei dem 2-dimensionalen Array namens "matrix" (3- und mehrdimensionale Arrays gibt es ebenfalls in R. Sie haben jedoch keinen speziellen Namen). Zum Vermeiden solcher Zwangskonvertierungen muss man dann schon auf nen Dataframe oder noch besser auf ne Liste zurückgreifen. Auf die einzelnen Elemente in dem Array kann man über den Spaltenindex (die Spaltennummer) zugreifen. R zählt dabei von 1 an und nicht von 0 ! Man kann den Spalten auch Namen geben mittels der Funktion names() und dann zusätzlich auch über diesen Namen "indizieren": x["B"] ergibt dann ebenfalls 2.
-
abgetrennt - Datenauswertung mit R (Offtopic)
Jaaaaaahaaa. *augen-roll* Das war ja nur nen Beispiel für Henrik, was man auch machen kann. Ich muss ja was nehmen, was auch Nichtmathematiker vom Hörensagen kennen. Sollte ja nur zeigen, mit wie wenig Zeilen man doch recht viel machen kann. Dass Ihr Mathematiker immer solche Erbsenzähler sein müsst ! Seit mein Freund seine ersten beiden Semester in Hagen hinter sich hat, ist der auch so geworden *grummel*. Ich schreib das Tutorial ja auch nicht für Dich oder nen Informatiker, bei denen geh ich einfach davon aus, dass sie sich das auch so aneignen können. Sondern ich will ja Leute wie Henrik, Whipsaw oder Ecart motivieren, sich das mal anzuschaun. Ja, kann ich nur empfehlen. Das ist wirklich super.
-
abgetrennt - Datenauswertung mit R (Offtopic)
Also, "The R Book" erlöst einen eigentlich schon von allem Schlimmen, finde ich. Gab's nur leider zu meiner Anfangszeit nicht, und ich bin auch den holprigen Trial-Fluchen-Error-Wieder fluchen-Weg gegangen. Aber ab und an lohnt die Investion in ein Buch richtig ;). Mal schnell nen Random walk erzeugen ? Zufällige Datenreihen generieren in Gigabyte-Umfang, um Systeme exzessiv zu testen ? Kein Thema. Das Beispiel ist übrigens aus dem "The R Book", irgendwo zwischen Zentimeter 8 und 9.
-
abgetrennt - Datenauswertung mit R (Offtopic)
Welcher ? DEINER ? Keine Panik, ich schieb die Posts dann schon wieder zurück, wenn sie sinnvoll sind und mehr als nur 2 Kopfkratz-Smilies enthalten .
-
abgetrennt - Datenauswertung mit R (Offtopic)
Du kannst Fragen stellen !!! Also, R ist für mich ein Excel ohne Grenzen. Ideal ist es für folgendes: Du liest so eine Aussage irgendwo in nem Forum: Link Das kann man natürlich noch in Excel machen, aber es ist nicht mehr ganz trivial. Und wehe, Du willst mehr ! Mit R kann das richtig flink gehen. Und dann will man einfach noch dies gucken und das nachrechnen und noch ne 3. Idee, die einem beim Betrachten einer Grafik kommt nachschieben... Da macht's einfach auch Spaß zu forschen. EAs/Tradingsysteme kann man mit R programmieren, das ist aber auch keine Kunst, das geht ja mit so ca. jeder Programmiersprache mehr oder weniger aufwendig. Die Frage ist ja immer nur, ob man irgendwie an nen Broker ankoppeln kann oder nicht. Zum Life-Trading würde ich R allerdings nicht nutzen. Ich teile mir das auf: Ideen sammeln mit Tradesignal, Ersten Test-EAs implementiere ich auch mit Equilla, weil es recht flott geht, um mal rasch nen Ergebnis zu produzieren. Die Endvariante wird dann auch wieder in Equilla programmiert und in MQL, sozusagen als Zweit-Plattform. Zwischendurch läuft alles in R (auf exportierten Daten, die ich mir aus Tradesignal oder MT exportiere), darin implementiere ich mir Signaltabellen (die Einstiege zu bestimmten Systemen + die verschiedenen Ordertypen) und schaue dann, wie sich CRV,Trefferquote, Profitfaktor u.ä. bei verschiedenen SLs und TPs verhalten, was man maximal rausholen kann, wie die Wahrscheinlichkeiten sich verändern usw. Ist alles noch recht rudimentär, aber das Vorgehen hat sich für mich als recht brauchbar herausgestellt. Ich bin leider kein Mathematiker und auch in Bezug auf Statistik wird es sehr schnell dünn. Mythos und andere können aus dem Tool sicher noch mehr rausholen. Es gibt richtig viele Pakete mit Funktionen für alles Mögliche, die man aus dem Internet nachladen kann (Funktion install.packages, oder über die GUI). R hat diverse Schnittstellen zu allen möglichen Programmiersprachen (C/Fortran/...), angeblich auch nen Javainterface, falls jemand sich ne bessere Grafik dranbasteln will. Man könnte es sicher auch an MT anbinden, aber manchmal kann man sich auch fragen "Tut das wirklich not" ? Optimierungen kannst Du damit auch machen, im Prinzip nutze ich es ja auch für so etwas ähnliches. Du könntest auch Deine Orders/Trades damit auswerten, nur tut es dafür wahrscheinlich Excel auch. Wie man Grafiken mit R macht, Daten einliest/auswertet werde ich noch zeigen. Da schreibe ich momentan aber noch dran. Na ja, war ja keine Rocketscience . Ich finde nur, R ist ein tolles Tool und kann einem das Leben mächtig vereinfachen, weil man auch mal schnell was nachprüfen kann. Außerdem kann man auch mit minimalen Programmierkenntnissen kleine Erfolge erzielen, ohne allzu oft ins Keyboard zu beißen. Vielleicht kann ja noch ein anderer was Positives zu R sagen.... Mythos !???
-
Datenauswertung mit R
Literaturempfehlungen kommen zwar meist ganz am Ende, da ich aber noch nicht abschätzen kann, wann das sein wird, schieb' ich diese an der Stelle mal ein. Was bei mir zu Hause steht (allerdings noch nicht komplett gelesen ist , dennoch für "gut" befunden werden kann): The R Book von Michael J. Crawley, da habe ich die Ausgabe von 2009. Time series analyses von von Robert H. Shumway & David S. Stoffer, setzt allerdings schon Programmierkenntnisse in R und auch Vorkenntnisse in Statistik voraus. Mixed-Effects Models in S and S-PLUS (Statistics and Computing) von von José C. Pinheiro & Douglas M. Bates, da hab ich allerdings ne ältere Ausgabe, thematisch ist das allerdings recht speziell. "The R Book" ist ne recht gute Übersicht mit anschließendem Statistik-Anwendungsteil, sehr anwendungsfreundlich, allerdings in Englisch. Das kann ja für einige eine Hürde darstellen. Das meiste ist aber Quellcode, von daher spielt die Sprache da nicht so die große Rolle, finde ich. Deutsche Literatur zum Thema R kann ich nicht empfehlen, da ich schlichtweg keine habe. Wenn man bei Amazon in Einführung in R: Ein Kochbuch zur statistischen Datenanalyse mit R blättert, könnte das für Einsteiger geeignet sein. Die Offtopic-Postings findet Ihr zukünftig hier.
-
ICHIMOKU
Macht lieber nen neuen auf und verlinkt diesen hier im ersten Beitrag. Die langen Biester liest ja keiner mehr ;).
-
phantoms Strategie
Ja, am Anfang sah alles so einfach aus. *seufz* Da hatte ich mir einfach auch zuviel versprochen. Im Prinzip war ich ja nur auf der Suche nach nem guten Beispiel für mein geplantes Tutorial, welches die User hier auch interessant finden. Alle anderen meiner Versuche, das Interesse der Community dahinzulenken sind bislang ergebnislos verhallt . Die Phantom/Bollinger-Strategie (wenn es nur eine gewesen wäre *Haare-rauf*) bzw. deren Grundannahmen wären ja schnell nachprüfbar gewesen, und ich hätte 2 Fliegen mit einer Klappe schlagen können. Ich hab mich jetzt am Ende auf die 2 Textauszüge oben beschränkt, da das replizierbare Ergebnisse sein könnten (na ja, ich kenn die Ergebnisse ja schon, aber sag' sie Euch noch nicht ). Bei den anderen Aussagen mischen sich oft Xetra-Dax/FDax/Germany 30 zum Teil widersprüchlich, z.T. vielleicht einfach nur ungenau geschrieben. Um das aufzuklären, hätte ich wirklich alles durcharbeiten müssen, was ich zu dem Zeitpunkt dann doch nicht wollte, zumal sich auch schon beim Überfliegen offenbarte, dass zuviele diskretionäre Elemente enthalten sind (z.B. eine Art "Microtrading", welches ein zusätzlicher Performance-Booster sein sollte). Da ich eher zielorientiert nach einem brauchbaren Beispiel und nachprüfbaren Fakten gesucht habe, hatte ich bedeutend weniger Zeit veranschlagt. Aber Durcharbeiten werde ich den Thread sicher nochmal, denn selbst beim Überfliegen muss ich zugeben, dass da doch einige sehr interessante Sachen drinstanden.
-
Name: Michael - Börsenerfahrung: 22 Jahre
Auch von mir ein "Herzlich willkommen bei Tom-Next".
-
abgetrennt - Datenauswertung mit R (Offtopic)
Ich lagere sowieso alles in nen Diskussions-Thread aus, was mir nicht passt. Also tut Euch beim Schreiben keinen Zwang an .
-
Datenauswertung mit R
Funktionen in R Eine Funktion in R sieht z.B. wie folgt aus: show.me ist der Funktionsname, ' Eine Funktion zählt in R wie auch eine Variable als Objekt und muss R bekannt gemacht werden. Am einfachsten geht das, wenn man sich über Datei->Neues Skript eine neue leere Datei erstellt, die Funktion dahinein tippert, markiert und dann im Kontextemenü auf "Ausführen" geht. Wie man sieht, wird dabei der Text in die Konsole kopiert (der Text in Rot) und dem Objekt show.me zugewiesen. (class(show.me) ergibt im Anschluss "function", d.h. das Objekt show.me ist vom Typ "function". ) Im folgenden kann jetzt der Inhalt von show.me abgefragt werden, indem man lediglich den Objektnamen + Enter in die Kommandozeile tippert. Um die Funktion aber auszuführen, muss man die () und die (optionalen) Parameter zusätzlich miteingeben. show.me() wirft eine Fehlermeldung aus, da der Parameter text gesetzt sein muss. Der zweite Parameter mehr.text hingegen hat von mir in der Funktionsbeschreibung (siehe obenstehende Codebox) einen Default-Wert bekommen, so dass er nun als optional gilt. Wird er beim Funktionsaufruf nicht angegeben, wird der Defaultwert benutzt. show.me("Hallo") und show.me("Hallo",mehr.text="Chef") funktionieren hingegen. Btw.: auch show.me("Hallo","Chef") würde funktionieren. Der Parametername muss immer dann angegeben werden, wenn beim Aufruf nicht alle Parameter in der richtigen Reihenfolge belegt werden. Bsp: show.me(mehr.text="Chef",text="Hallo") funktioniert ebenfalls korrekt, auch wenn die Parameternamen "vertauscht" sind. Das macht die Programmierung der Funktionen doch recht flexibel. Man benützt nur die Parameter, die man wirklich braucht beim Funktionsaufruf. In den Standard-R-Funktionen sind die meisten Parameter mit brauchbaren Defaultwerten versehen. Welche das sind, steht jeweils in der Hilfedatei. Wie man in das heilige Buch Einblick bekommt, erkläre ich weiter unten. Die Möglichkeit, die Parameternamen mit anzugeben erhöht darüberhinaus die Codelesbarkeit, finde ich. Funktionsrückgabewert show.me("Hallo") ist wie oben beschrieben ein Ausdruck, dessen Ergebnis - "Fertig" - ausgegeben wird, um hinterher verloren zu sein. result=show.me("Hallo") hingegen bewahrt das "Fertig" bis in alle Ewigkeit. Also dem Ende der R Sitzung, falls man den Workspace (die Arbeitsumgebung) nicht speichert (Abfrage bei Beendigung von R oder über Datei->Sichere Workspace) oder bis man der Variable result einen neuen Wert zuweist. Abfragen kann man den Wert von 'result' durch Eingeben des Namens und - once again - . Natürlich kann man eine Funktion auch ohne Rückgabewert programmieren: Danach muss man R die Änderung bekanntmachen, indem man die Funktion erneut markiert und auf "Ausführen Zeile oder Auswahl" geht. Das Schöne ist, dass man sich nach jedem Schritt die Änderungen in den Variablen anschaun kann durch Abfrage in der Konsole und Programmieren so viel schneller lernt als bei komplexeren Sprachen wie C/C++ usw., die grade Programmieranfängern doch noch einen viel größeren Berg an Problemen entgegenschleudern. Man hat auch bedeutend mehr Erfolgserlebnisse, was für die Anfangsmotivation eine nicht unbedeutende Rolle spielt. Alternativ kann man in der Konsole einfach den Text der Funktion runterschreiben. R erkennt automatisch, dass man noch was zu sagen hat (eigentlich wartet es nur auf die schließende Klammer, aber pssssst ), was an den roten '+' Zeichen und dem ausbleibendem Promptsymbol '>' erkennbar ist. Kriegt man irgendwann Panik, weil man vergessen hat, ob man ne Klammer/Anführunsgstriche bei Zeichenketten schon gesetzt hat oder nicht - was bei längeren Programmen der Fall sein kann - erlaubt der rote Stop-Knopf (s. Pfeil) einen Abbruch der Eingabe. Der Stop-Knopf hat sich auch bei Programmen, die zu lange laufen oder sich in Endlos-While-Schleifen aufhäkeln bewährt.
-
phantoms Strategie
Ursprünglich wollte ich ja die einzelnen Strategien komplett auseinanderdröseln und mal durchtesten, aber meine Motivation ist schon bei Schritt 1 auf der Strecke geblieben. Irgendwann auf Seite 30 der extrahierten Postings habe ich dann das Handtuch geworfen. Insgesamt sind es rund 5 Strategien, die in dem Thread besprochen und z.T. auch im Laufe des Thread weiterentwickelt werden. Liest sich vieles recht interessant, war aber schlicht zuviel für die veranschlagten 2 Tage. Ein tapferer User hatte sich allerdings die Mühe gemacht, mal die Strategien zusammenzufassen: http://www.candletalk.de/lesersysteme-blog...-pt/#post146346 . Den Link will ich Euch nicht vorenthalten. Allerdings kann ich nicht sagen, ob er das korrekt gemacht hat, da ich wie gesagt, nicht alles durchgearbeitet habe. Zumindest hat keiner widersprochen. Das letzte Update von Phantom/Bollinger selbst: http://www.candletalk.de/lesersysteme-blog...-pt/#post145321, ansonsten gelten die in den obigen Posts genannten Links für weitere Infos. Auszug aus dem Bollinger-Thread, Bollingers Aussagen zur Vorgeschichte der Strategie: "Wer nichts weiß, muss alles glauben" ist ja nicht umsonst mein Signaturtext. Aussagen wie die obigen, die so essentiell sind für eine Strategie will ich nicht einfach so hinnehmen, sondern nachprüfen. Dafür bietet sich R an. Wie es der Zufall so will , schreibe ich gerade an einem R-Tutorial , wo ich diese Aussagen mal beispielartig nachrechnen werde.
-
Datenauswertung mit R
Download und Installation Download des Opensource-Projekts R ist relativ einfach. Man gehe auf http://cran.r-project.org/ und suche sich die geeignete Betriebssystemvariante aus. Möglich sind Windows, Linux und Mac. Die Linux-Variante kenne ich nicht, aber die Mac-Variante ist um Welten besser als die Windows-GUI-Variante. Aber ich fürchte, das ist Absicht, dass Windows so vernachlässigt wird. Na ja, zum Programmieren reichts aber und es gibt mittlerweile diverse Editoren (u.a. Emacs), die R Syntaxhiglighting beherrschen. Ich entscheide mich für die In die Konsole tippere ich also ein: '5+5' . Als Ergebnis bekomme ich '10' angezeigt. Das sollte laut Überschlag im Kopf auch in etwa richtig sein. '5+5' ist ein Ausdruck, der von R ausgewertet wird, was soviel heißt wie: er rechnet 5+5 aus. Wie für einen Ausdruck typisch (sagt zumindest der obige Kursivtext), wird das Ergebnis in die Konsole geschrieben, die 10 verschwindet jedoch im Datennirwana, nachdem wir sie uns einmal angucken durften. Ok, damit hat man jetzt einen einfachen Taschenrechner, aber das wäre den Aufwand nicht wert, ein Tutorial zu schreiben. Was ist also der Charme von R? Na ja, bleibt ja nur noch die zweite Variante - die Zuweisung. Bsp: x=5+5 Anmerkung: Kommandos in der Konsole bedürfen zu ihrer Ausführung des finalen Peitschenknalls, was in der R-Welt ein bzw. ist. Hier sieht man jetzt (Wenn ich fies wäre, würde ich jetzt schreiben: "Wie für den aufmerksamen Leser klar ersichtlich ist..." ) eventuell, dass das Ergebnis NICHT mehr in der Konsole steht, sondern der Wert '10' in die Variable namens 'x' geschrieben wurde bzw. der Variable x zugewiesen wurde. Gibt man im Folgeschritt 'x ' ein, wird der Wert angezeigt. Die '10' bleibt uns jetzt solange erhalten, wie der Wert in der Variable x nicht überschrieben wurde durch eine andere Zuweisung (z.B. x=5+6, danach hätte x den Wert 11). Hier empfehle ich, mit dem Tool einfach ein bisschen zu spielen, um ein Gefühl dafür zu bekommen. Übung ist alles, Intelligenz ist nichts oder nur nen Bruchteil zumindest. Wie sind Variablen-, Funktionsnamen zu formulieren ? R ist sensitiv für Groß- und Kleinschreibung. D.h. ein Symbol/Variable/Funktion namens 'A' ist nicht identisch mit 'a'. Zeichen, die verwendet werden dürfen sind betriebssystem- und landesspezifisch. Normalerweise sind aber sämtliche alphanumerischen Zeichen erlaubt, zusätzlich noch ‘.’ and ‘_’. Einschränkung: ein Name muss mit ‘.’ or einem Buchstaben beginnen, oder, falls er er mit ‘.’ beginnt, darf danach als 2. Zeichen keine Ziffer folgen. Variablen Der erfahrene MT-Programmierer stutzt sicherlich, wenn er sieht, wie ich x=5+5 schreibe. Jaaahaaa, so einfach kann es gehen ! *schaut triumphierend auf gequälte MQL-Programmierer herab* R ist intelligent genug, sich den richtigen Datentypen, der nach Anwendung des +-Operators auf 2 Zahlen entsteht rauszusuchen und x implizit zu deklarieren. Durch Abfrage mittels class(x) bekommen wir mitgeteilt, dass x "numeric ist". Zu den Datentypen lasse ich mich später noch detaillierter aus. An der Stelle will ich dies nur als enorme Erleichterung erwähnen, dass man sich eigentlich sehr selten um sowas "Niederes" wie Datentypen kümmern muss. Schreibe ich 'x=1', dann ist x vom Typ (bzw. der Klasse "numeric"), schreibe ich im Anschluss 'x="Hallo"', dann wird x wie durch Zauberhand zum String (bzw. "character"). Wenn ich geschickt programmiere, kann ich wahrscheinlich auch mit einer einzigen Variable hochkomplexe Programme schreiben, indem ich sie immer und immer wieder nachnutze. Das sollte man aber nicht machen, sonst trägt man schneller enggeschnittene weiße Jäckchen, die nicht mehr vorn zu öffnen sind als einem lieb ist. Mehr als ein Befehl ? Verschiedene Kommandos werden entweder durch ';' oder Zeilenumbruch voneinander getrennt. Letzeres passiert ja automatisch beim Enterdrücken in der Konsole. Wenn man aber Sequenzen von Ausdrücken in ner Datei speichert, sollte man drauf achten, dass entweder nur ein Befehl pro Zeile steht oder aber die Befehle innerhalb einer Zeile durch Semikolon getrennt werden. Bsp. x=5+5;print(x);x=5+6;print(x) Der letzte Befehl innerhalb einer Zeile darf ohne ';' auskommen, die Befehle müssen durch ';' getrennt werden. Man kann prinzipiell komplette Programme in eine einzige Zeile pressen. Guter Programmierstil beinhaltet aber m.M.n. auch, dass man zumindest am rechten Bildschirmrand mal den einen oder anderen Zeilenumbruch einfügt. Kommentarzeichen Kommentarzeichen sind nicht die bei MT oder C/C++, Java und C# oder ähnlichem benutzten // oder /**/, sondern mal was ganz anderes - das oft vernachlässigte und völlig zu Unrecht total unterschätzte Rautezeichen '#', welches bedauerlicherweise aber nur für die eine Zeile gilt (ähnlich dem // bei MQL und ähnlichen Sprachen ). Bsp. #Hier steht ein Kommentar #Hier steht ein weiterer.
-
ICHIMOKU
Offtopic ausgelagert nach:
- abgetrennt - Offtopic
-
abgetrennt - Offtopic
Na, da freut sich Duncan sicher, wenn er das liest . Sorry, aber mit so ner Einstellung kann ich nicht wirklich viel anfangen, selbst wenn Du da noch 3 weitere Smilies dahinter malst.
-
Datenqualität des Dax-CFD bei ODL Markets
Hmm, keine Ahnung, aber die Daten zeigen doch ganz klar, dass irgendwas passiert sein muss in den letzten 3 Monaten. Ich hab schon soviele Datensätze gesehen aus verschiedenen Gebieten gesehen, um zumindest zu sagen: "Da is nen Unterschied" (den man ja auch noch messen kann).
-
Datenqualität des Dax-CFD bei ODL Markets
Schön, dass man das auch in den Daten gesehen hat .
-
ICHIMOKU
Das halte ich für eine großartige Idee . Wenn Du Sachen total auseinander nimmst und selbst wiederzusammensetzt, scheint das auf den ersten Blick mehr Arbeit zu sein. Aber Du lernst viel mehr dabei und die Zeit sparst Du später locker wieder ein, wenn Du bspw. Fehler suchst.
-
IG Markets + L2-Dealer
Herzlich willkommen bei uns, Rumpel.
- Tipp den DAX!
-
Tipp den DAX!
Ok, dann lern' draus fürs nächste Mal und hak' es für dieses Mal als Lernerfahrung ab. Punkt. Mein Freund ist noch älter als Du und steht auch noch nicht mit einem Bein im Grab, also red' nicht ! Ich weiß, wie fit Männer Deines Alters noch sein können, wenn sie nur wollen. Du sollst natürlich nicht jedes Mal 10 Stunden drüber brüten, aber 10 Minuten fände ich schon angemessen. Eventuell hilft Dir so eine zeitliche Limitierung ja auch, Deine Fertigkeiten gezielter einzusetzen und schon in 10 Minuten ein brauchbares Ergebnis zu produzieren. Tscha, auch dafür ist ja dieser Offtopic-Tipp-den-Dax-Thread gut. Damit man sich besser kennenlernt und vielleicht auch mal Interesse für eine Person bekommt, die ungeahnte Talente enthüllt. Z.B. bist Du doch bei den Tipps richtig gut. Das hätten Dir manche sicher nicht zugetraut, vermute ich mal. Ging mir zumindest so. Aber leider werde ich wohl nie erfahren, ob Deine Treffer nur Zufall waren. Na ja, wahrscheinlich waren sie nur Zufall *provozier* .