Ich habe Mühe Backtesting eine Bollinger Band-Strategie in R. Die Logik ist, dass ich eine kurze Position, wenn die Close ist größer als das obere Band nehmen und dann schließen Sie die Position aus, wenn es den Durchschnitt überqueren. Ich möchte auch eine Long-Position zu nehmen, wenn die Close ist niedriger als die Lower Band, und Schließen Sie die Position, wenn sie den Durchschnitt überquert. So weit dies ist, was ich habe: bbands lt - BBands (stockClose, n20, sd2) sig1 lt - Lag (ifelse ((stockClose gtbbandsup), - 1,0)) sig2 lt - Lag (ifelse ((stockClose ltbbandsdn), 1 , 0)) sig3 lt - Lag (ifelse ((stockClose gt bbandsmavg), 1, -1)) sig lt - sig1 sig2 Dies ist, wo ich bin stecken, wie benutze ich sig3, um die gewünschten Ergebnisse Die primäre Ergänzung zu dieser Funktion Aufruf über die TTR-Version befindet sich im Draw-Argument. Lsquobandsrsquo zieht Standard Bollinger Bands, lsquopercentrsquo wird Bollinger b zeichnen und lsquowidthrsquo zeichnet Bolinger Bands Width. Die letzten beiden werden in neuen Figurenregionen gezeichnet. Siehe bollingerBands in TTR für spezifische Details wie Implementierung und Referenzen. Bollinger Bands werden auf dem aktuellen Chart gezeichnet oder gezeichnet. Wenn Zeichnung entweder Prozent oder Breite ist, wird eine neue Zahl zu den aktuellen TA-Abbildungen hinzugefügt. Ein ChobTA-Objekt wird stumm zurückgegeben. Referenzen Siehe bollingerBands in TTR geschrieben von Josh Ulrichquantmod Quantitative Finanzmodellierung amp Trading Framework für R Wenn es einen Bereich von R, die ein wenig fehlte, war es die Fähigkeit, Finanzdaten mit Standard-Charting-Tools zu visualisieren. Durch kein anderes Paket, das dieses umsetzt, nahm quantmod den Anruf auf und machte einen Schuss auf die Bereitstellung einer Lösung. Was mit einer einzigen OHLC-Charting-Lösung begonnen hat, ist seit Version 0.3-4 zu einer hochkonfigurierbaren und dynamischen Chartieranlage geworden, mit mehr Coolness für 0,4-0 und darüber hinaus. Für jetzt, werfen wir einen Blick auf, was seine derzeit in Kraft: Financial Charts in quantmod: Die meisten der Charting-Funktionalität ist so konzipiert, interaktiv verwendet werden. Die folgenden Beispiele sollten sehr einfach von der Befehlszeile oder Ihrer persönlichen GUI-Option zu replizieren. Das Ausführen von einem Skript erfordert ein wenig Aufmerksamkeit, ist aber jetzt auch möglich. Lets get charting Einführung von chartSeries chartSeries ist die Hauptfunktion, die die ganze Arbeit in quantmod macht. Mit freundlicher Genehmigung von as. xts kann es jedes Objekt behandeln, das Zeitreihen ist, dh R-Objekte der Klasse xts. Zoo Zeitfolgen . Seine. Ts Irts. Und mehr Standardmäßig ist jede Serie, die. OHLC ist, als OHLC-Reihe abgebildet. Es gibt ein Typargument, das es dem Benutzer ermöglicht, über den zu gerenderierenden Stil zu entscheiden: traditionelle Bar-Charts, Kerzen-Charts und Matchstick-Charts - dünne Kerzen. Get it :) - ebenso wie Liniendiagramme. Die Standard-Wahl Auto lässt die Software entscheiden, Kerzen, wo theyd deutlich sichtbar, Streichhölzer, wenn viele Punkte werden, und Linien, wenn die Serie ist nicht von einer OHLC Natur. Wenn Sie nicht immer den Typ angeben möchten, um dieses Verhalten zu überschreiben, können Sie die Wrapper-Funktionen im nächsten Abschnitt verwenden oder setDefaults aus dem wickedly coolen und nützlichen Defaults-Paket (verfügbar auf CRAN) verwenden. Die Tatsache, dass ich schrieb es hat nichts mit meinem Endorsement zu tun :) gt getSymbols (GS) Goldman OHLC von yahoo 1 GS gt chartSeries (GS) gt bemerken den automatischen Streichholz-Stil gt gut ändern dies im nächsten Abschnitt gt aber für jetzt es ist gut. Gt Die grundlegende Diagrammfunktionalität versucht nicht zu weit von den Standardnutzungsmustern in R abzuweichen. Obwohl Sie nicht in der Lage, eines der Standard-Grafik-Tools für die Anzeige von Diagrammen verwenden. Quantmods oh-so-weiser Autor hat versucht, diese Notwendigkeit mit speziellen Funktionen zu antizipieren, um diesen Mangel auszugleichen. Ein schneller Schritt zurück, um zu erklären, was genau hinter den Kulissen innerhalb von chartSeries geschieht, kann in Ordnung sein. Das Charting wird durch einen zweistufigen Prozess verwaltet. Zunächst werden die Daten untersucht und grundlegende Entscheidungen darüber, wie die beste Zeichnung der Serie berechnet wird. Das Ergebnis ist ein interner Gegenstand, der als Chob bezeichnet wird. Dieses Objekt wird dann an die Hauptzeichnungsfunktion übergeben, die nicht direkt aufgerufen werden soll, um auf den Bildschirm gezeichnet zu werden. Der Zweck der Trennung ist es, für mehr beeindruckende dynamische Stil Chart Ergänzungen, sowie Modifikationen, so natürlich wie möglich zu erreichen ermöglichen. Wenn Änderungen an dem aktuellen Diagramm vorgenommen werden - sei es durch Hinzufügen von technischen Indikatoren oder Ändern von Originalparametern, wie dem Diagrammtyp, wird das gespeicherte Chobobjekt einfach ohne viel mühsame Benutzermanipulation verändert und dann neu gezogen. Das Ziel war, es ohne zusätzlichen Benutzeraufwand zu machen - und dann beenden es einfach. Charting-Verknüpfungen - barChart, lineChart und candleChart. Während chartSeries die primäre Funktion ist, die beim Zeichnen eines Diagramms in quantmod aufgerufen wird, ist es keineswegs der einzige Weg, etwas zu erledigen. Es gibt Wrapper-Funktionen für jede der wichtigsten Arten von Diagrammen derzeit in quantmod verfügbar. Wrapper-Funktionen existieren, um das Leben ein wenig einfacher. Stabdiagramme, beide hlc und ohlc Sorten sind mit barChart direkt vorhanden. Leuchter Charting kommt natürlich durch die CandleChart Wrapper-Funktion und Linien über die kryptisch benannt - Sie ahnen es - lineChart. Es gibt nicht viel Besonderes über diese Funktionen jenseits der offensichtlichen. In der Tat sind sie eine Liner, die einfach ChartSeries mit entsprechend veränderten Standard-Args aufrufen. Aber sie machen eine schöne Ergänzung zum Stall. Gt erste einige high-low-close Stil Bars, monochromatische Thema gt barChart (GS, themewhite. mono, bar. typehlc) gt wie etwa einige Kerzen, diesmal mit Farbe gt candleChart (GS, multi. colTRUE, themewhite) gt gt und Jetzt eine Zeile, mit dem Standard-Farbschema gt lineChart (GS, line. typeh, TANULL) Wie Sie sehen können, gibt es einiges an Flexibilität hinsichtlich der Anzeige Ihrer Informationen. Was Sie vielleicht auch bemerkt haben, sind die verschiedenen Argumente zu jedem der Anrufe. Nun, werfen Sie einen Blick darauf, was einige von ihnen tun. Formale Argumente: Farben, Subsetting, Tick-Marks. Der beste Platz für vollständige Informationen über die Argumente der Funktionen ist in der Dokumentation. Aber für jetzt gut einen Blick auf einige der gemeinsamen Optionen, die Sie ändern könnten. Wahrscheinlich das wichtigste von einem Usability-Standpunkt ist die Argumentuntermenge. Dies erfordert eine zeitbasierte Zeichenkette des Typs xtsISO8601 und beschränkt den Plot auf den angegebenen Zeitraum. Dies beschränkt nicht die Daten, die den techinischen Analysefunktionen zur Verfügung stehen, sondern schränkt nur den auf den Bildschirm gezeichneten Inhalt ein. Aus diesem Grund ist es am vorteilhaftesten, so viele Daten wie verfügbar zur Verfügung zu stellen, und geben Sie dann die Funktion chartSeries mit der Teilmenge an, die Sie anzeigen möchten. Diese Teilmenge ist auch über einen Aufruf von zoomChart verfügbar. Ein Beispiel oder drei, sollte helfen, ihre Verwendung zu klären. Gt die ganze Serie gt chartSeries (GS) gt jetzt - ein wenig, aber von Teilmenge gt (Dezember 07 bis zur letzten Beobachtung in 08) gt etwas unterschiedliche Syntax - nach der Tatsache. Gt auch Ändern der x-Achsenbeschriftung gt candleChart (GS, themewhite, typecandles) gt reChart (major. ticksmonths, subsetfirst 16 weeks) Drei Anmerkungen auf dem letzten Diagramm. Zuerst war die Verwendung von reChart, um das ursprüngliche Diagramm zu ändern. Dies erfordert die meisten Argumente der ursprünglichen Charting-Anrufe, und ermöglicht schnelle Änderungen an Ihren Diagrammen. Seien Sie es wechselnde Farbe Themen oder subsetting - es kommt ganz praktisch. Der zweite bemerkenswerte Punkt ist die Verwendung der ersten Syntax innerhalb der Teilmenge. Dies ermöglicht eine etwas mehr natürliche Ausdruck dessen, was Sie möglicherweise nach, und nicht erfordern Sie nichts über die Serie Termine oder Zeiten wissen. Das letzte Element in diesem letzten Bild ist das Argument tick. marks. Dies ist Teil der ursprünglichen chartSeries-Funktion Formals Liste, und es wird verwendet, um die Platzierung von Etiketten innerhalb des Diagramms zu ändern. Häufig macht der automatisch gewählte Abstand - angetrieben durch die xts-Funktion axTicksByTime - eine gute Arbeit - Sie können es wünschen, die Ausgabe weiter anzupassen. In diesem Fall markierten wir die wichtigsten Zecken mit den Anfängen der Monate. Technische Analyse und chartSeries Aktualisiert und bereit zu gehen sind einige fantastische Werkzeuge aus dem TTR-Paket von Josh Ulrich. Verfügbar auf CRAN. Es ist jetzt möglich, einfach Dutzende von technischen Analyse-Tools, um Diagramm mit nichts mehr als ein einfaches Kommando. Die aktuellen Indikatoren aus dem TTR-Paket sowie einige mit dem Ursprung des quantmod-Pakets sind: Alle oben genannten arbeiten sehr ähnlich wie die TTR-Basisfunktionen, auf die sie aufrufen. Der primäre Unterschied besteht darin, dass die Add-Familie von Anrufen das Datenargument nicht enthält, da dieses aus dem aktuellen Diagramm abgeleitet wird. Einige Beispiele zeigen, wie die Diagramme mit den integrierten Indikatoren erstellt werden. Gt getSymbols (GS) Goldman OHLC von yahoo 1 GS gt Das TA-Argument zu chartSeries ist eine Möglichkeit, die gt-Anzeiger-Aufrufe anzugeben, die auf das Diagramm angewendet werden sollen. Gt NULL Mittel ziehen keine. Gt gt chartSeries (GS, TANULL) gt Jetzt mit einigen Indikatoren angewendet gt gt chartSeries (GS, themewhite, TAaddVo () addBBands () addCCI ()) gt Das gleiche Ergebnis könnte ein gt-Bit interaktiver durchgeführt werden: gt gt chartSeries (GS , Thewehite) zeichnen Sie das Diagramm gt addVo () addieren Sie Volumen gt addBBands () add Bollinger Banden gt addCCI () add Commodity Channel Index Einer der neuesten und aufregendsten Ergänzungen der letzten quantmod Version enthält zwei neue Charting-Tools entwickelt, um das Hinzufügen von benutzerdefinierten Deutlich schneller als bisher möglich. Das erste davon ist addTA. Dies ist eine wesentliche Erweiterung der bisherigen addTA-Funktion, da es nun die Möglichkeit gibt, beliebige Daten auf den Diagrammen zu zeichnen. Als im Wesentlichen eine Wrapper auf Ihre Daten, die einzige Voraussetzung ist, dass die Daten haben die gleiche Anzahl von Beobachtungen wie das Original, oder von der Klasse xts und die Daten innerhalb der ursprünglichen Daten Zeitbereich und Skala. Es ist möglich, diese neuen Daten in ihrem eigenen TA-Subchart (die Standardeinstellung) oder in der Hauptserie überlagert zu haben. Die zweite und möglicherweise interessantere Funktion ist newTA. Dies ist die lang erwartete Skelett-Funktion, um benutzerdefinierte TA-Indikatoren zu erstellen, um an jedes Diagramm angehängt zu werden. Es nimmt das Skelettkonzept einen Schritt weiter und erzeugt dynamisch den Funktionscode, der für einen neuen Indikator benötigt wird, basierend auf der Funktion, die Sie an ihn weitergegeben haben. Im Wesentlichen ein wenig selbstbewusste Programmierung macht das Hinzufügen neuer Indikatoren ganz intuitiv und praktisch schmerzlos. Angesichts seiner eher schneidenden Fähigkeiten, ist es an der Spitze der experimentellen. Zum Glück, wenn alles andere scheitert, und was Sie bekommen, ist nicht das, was Sie erwartet haben, können Sie immer ändern Sie den Code erstellt, um besser auf Ihre Bedürfnisse. Ein kurzer Blick auf das Hinzufügen von benutzerdefinierten Indikatordaten und die Erstellung eines neuen Indikators von Grund auf neu. Gt getSymbols (YHOO) Yahoo OHLC von yahoo 1 YHOO gt addTA erlaubt Ihnen, grundlegende Indikatoren gt zu Ihren Diagrammen hinzuzufügen - auch wenn sie arent Teil gt von quantmod. Gt gt chartSeries (YHOO, TANULL) gt Dann fügen Sie die Open to Close Preisänderung gt mit der quantmod OpCl-Funktion gt gt addTA (OpCl (YHOO), colblue, typeh) gt Mit newTA ist es möglich, Ihre eigene gt generische TA-Funktion zu erstellen --- lass es nennen es addOpCl gt gt addOpCl lt-newTA (OpCl, colgreen, typeh) gt gt addOpCl () Mehr zu kommen. Es gibt viel mehr zu ChartSeries und quantmods aktuelle und zukünftige Visualisierungs-Tools zu sagen, aber jetzt ist es Zeit, nennen es einen Tag (oder 30) und schließen Sie diese Einführung in die Charting in quantmod. Zukünftige Ergänzungen zu dieser Seite und die Dokumentation werden weitere Details über die Interaktion mit den Charts - jetzt und in kommenden Releases, neue Layout-Optionen und einen möglichen Vorstoß in völlig neue Visualisierungswerkzeuge und - techniken enthalten. Aber jetzt ist das alles, was ich habe. Diese Software wird von Jeffrey A. Ryan geschrieben und gepflegt. Siehe Lizenz für Einzelheiten zum Kopieren und Verwenden. Copyright 2008.
No comments:
Post a Comment