Friday 10 November 2017

Bollinger Bands Matlab Code


Ich versuche, einen Indikator von MQL4 (Metatrader Sprache) zu Matlab zu übersetzen. Der Bollinger-Bands-Code lautet wie folgt: Die iBands () - Dokumentation listet die 8 Eingänge als: Ich verstehe all diese außer bandsshift und shift. Frage: Wenn i Bars ist der gesamte Bereich der Daten, warum macht die i1 nicht einen Out-of-Reichweite Fehler So weit wie ich sagen kann, ist dies Code für eine 20-Periode, 2 Standardabweichung Bollinger Band. Für ein gegebenes Zeitintervall sind die zugehörigen Bollinger-Bandwerte die für das vorhergehende Zeitintervall berechneten Werte (also die 1 nach dem vierten Komma). Was bedeutet das dann, wenn ich diesen Code gebe, wie würde ich in Matlab implementieren. Mein Versuch, das zu benutzen Bewegte Standardabweichung und dieser gleitende Durchschnitt: Ich denke nicht, dass dies die gleiche Ausgabe wie der MQL4-Code gibt. Irgendwelche Hinweise würden auf jeden Fall geschätzt werden gefragt 4. Februar 14 um 20:06 Wie man iBars1 und einen Missing Out of Range Error MQL4 funktioniert in einem umgekehrt-TimeDOMAIN-Indizierung Raum. So zeigt die iBar die Tiefe des historischen TimeSeriesDataSET, während die aktuellste (Live) Bar einen Index von 0 hat. Das bedeutet, dass für eine Berechnung eines technischen Indikators der Coder die Verarbeitung auf diese Weise anordnen muss. Das bedeutet auch, dass für jede neue Leiste die interne Darstellung der Datenspeicherschicht irgendwie alle DataCELLs um eins nach links verschieben muss (rückwärts in einer TimeDOMAIN-Richtung in Richtung History), um Platz für eine neue Bar zu schaffen Index von 0 (ein Jetzt Moment in einem TimeDOMAIN). Während die physikalische Verschiebung aller aktuellen Tiefe des DataSTORE eine absolute Menge von Ressourcen (beide Zeit, CPU) sein würde, arbeitet die Datenspeicherschicht intelligenter, passt den Indizierungskopf auf jedes neue Balkenereignis an und nutzt irgendeine Form von Elastik DataSTORE-Kapazitäts-Planungs-Größe auf Anforderung, um so die mem-alloc (s) während des kontinuierlichen Wachstums des DataSTORE zu minimieren. Dies bedeutet, dass das Testen für einen Out of Range Error keine Unterstützung im User-Code-Namespace der MQL4-Sprache hat. Wie man bandshift versteht und verschiebt. Das Aufrufen von iBands () muss angeben, für welche Bar man die Funktion anfordert, ein Ergebnis zu berechnen. Verschiebung liefert dafür. Der Index befolgt die obigen Regeln. Sobald die Bollinger-Bands-Berechnungen durchgeführt werden, kann man die Kurven um eine Anzahl von Bars versetzen - die Grafik in TimeDOMAIN rechts umsetzen - damit die visualisierten Grafiken die Erwartungen oder das Vergnügen erfüllt. Bandsshift liefert Eingabe für diese grafische Ad-hoc-Verschiebung. Beachten Sie auch, dass die beobachteten Unterschiede zwischen Google-, YFinance-, MATLAB - und MQL4-Graphen einfach erscheinen müssen und für zusätzliche (nicht bekannte) Details verantwortlich sind, die man aus den gerade auf dem Bildschirm angezeigten Zeilen kaum entschlüsseln kann. Angewandter Preis: liefert eine Eingabe für die Auswahl geeigneter Art von Preis in die Bollinger-Kalkül. Modus: liefert Eingang für den Empfang eines PreisDOMAIN Wertes. So ist ein fauler Ansatz, die iBands () dreimal anzurufen, um den Baum-Bollinger zu bekommen, oder viele Male für eine spektrumfarbene Bollinger Band-Hitzenkarte. Mit meinem kleinen Wissen über Bollinger Bands scheint es, als hättest du eine Implementierungsfrage. Haben Sie versucht, die Ausgabe der Bollinger-Funktion in MATLAB Bollinger Bands können anders für Rand Fälle, wo die Fenstergröße kleiner als 20 implementiert worden sein. Möglicherweise müssen Sie die MQL4-Autoren kontaktieren, um die Formeln zu überprüfen, die verwendet werden. Ich bemerkte einen Unterschied, wenn ich in Python implementiert und der Indikator in Google Finanzen gesehen. Dennoch, wenn Sie richtig implementiert haben, die Werte, bei denen die Fenstergröße von 20 ist, sehen Sie die gleichen Werte. Es sei denn, Sie sind sich der FEX-Code sehr sicher, sollten Sie std verwenden und für die Implementierung bedeuten. Beantwortet Feb 9 14 um 5:55 Ihre Antwort 2017 Stack Exchange, IncBollinger Bands 8211 Momentum Modell Trading-Strategie (Setup) I. Trading-Strategie Entwickler: John Bollinger (Bollinger Bands). Konzept: Trendtreue Handelsstrategie auf Basis von Bollinger Bands. Forschungsziel: Leistungsüberprüfung des 3-Phasen-Modells (longshortneutral). Spezifikation: Tabelle 1. Ergebnisse: Abbildung 1-2. Trade Setup: Long Trades: Closei 1 Gt UpperBandi 1. Kurze Trades: Closei 1 lt LowerBandi 1. Index: i Aktuelle Bar. Trade Entry: Long Trades: Ein Kauf bei der Open ist nach einem bullish Setup platziert. Kurze Trades: Ein Verkauf an der offenen ist nach einem bärischen Setup platziert. Trade Exit: Tabelle 1. Portfolio: 42 Futures-Märkte aus vier großen Marktsegmenten (Rohstoffe, Währungen, Zinssätze und Aktienindizes). Daten: 36 Jahre seit 1980. Testplattform: MATLAB. II. Sensitivitäts-Test Alle 3-D-Diagramme folgen 2-D-Konturdiagrammen für Profit Factor, Sharpe Ratio, Ulcer Performance Index, CAGR, Maximum Drawdown, Percent Profitable Trades und Avg. Win Avg. Verlustrate. Das endgültige Bild zeigt die Empfindlichkeit der Eigenkapitalkurve. Geprüfte Variablen: MALength amp StDev (Definitionen: Tabelle 1): Abbildung 1 Portfolio Performance (Eingänge: Tabelle 1 Kommission amp Slippage: 0).Ich habe gerade einen Artikel MATLAB als automatisiertes Ausführungssystem veröffentlicht. (Es steht den Lesern meines Buches und Abonnenten für meine Premium Content-Website zur Verfügung.) Es kommt mit ex-MATLAB-Codes, die eine einfache Bollinger-Band-Hochfrequenz-E-Mini-Handelsstrategie ausführen. Wie ich schon erwähnt habe, finde ich jetzt MATLAB, um eine gute Plattform zu sein, nicht nur für das Backtesting, sondern auch für die automatisierte Ausführung. Natürlich haben nicht alle Brokerage APIs, die mit MATLAB verbunden sind. Meine Beispielcodes sind für die Einreichung von Aufträgen automatisch zu einem Interactive Brokers-Konto. Im Allgemeinen finde ich, dass das Schreiben von Ausführungsprogrammen in MATLAB eine Brise im Vergleich zu C, Java oder sogar C. Es dauert etwa 15 die Entwicklungszeit eines C-Programms. Jegliche Leistungseinschränkungen werden wahrscheinlich nicht auf MATLAB zurückzuführen sein, sondern auf die Latenz Ihrer Vermittlung bei der Aktualisierung von Positionen und dem Auftragsstatus. 82 Kommentare: Ive war ein Lurker für eine Weile und genießen Sie Ihren Blog. Schnelle Frage: Haben Sie versucht Mathematica (Es hat eine leistungsstarke und ziemlich elegante Reihe von Funktionen auf der Grundlage einer Liste Methodik, die gut auf Trading-Strategien abbilden könnte, oder zufällige Dinge wie synthetische Blende Fotografie.) Nochmals vielen Dank für einen weiteren tollen Artikel. Ihr Buch gibt einfach über das eingebettete Passwort für Ihre Premium-Website Ich weiß, dass Ihr Bollinger-Code mehr entworfen ist, um uns zu zeigen, wie man MATLAB2IB als ein Handelssystem implementiert, aber da sind Sie offensichtlich wirklich gut in Matlab, wie würden Sie ein nachlaufendes hinzufügen Stoppen Sie die Ausfahrt. Ich verstehe die Logik - was ist der höchste offene Profit, was ist der aktuelle offene Gewinn, wenn abweichend von X Prozent dann beenden, aber ich habe Probleme mit der Matlab-Syntax. Jede Chance, die Sie ein einfaches Beispiel in Matlab-Code für das Bollinger-Beispiel oder als Standalone geben könnten Sie sind ein Gelehrter und ein Gentleman, ich habe für ein Beispiel wie dieses für eine Weile gesucht. Sehr geschätzt Hallo G-Fav, ich habe in Mathematica schon einmal programmiert. Allerdings fühle ich, dass die MATLABs-Array-Verarbeitungsfähigkeit eher für die statistische Arbitrage-Forschung geeignet ist. Außerdem bin ich mir nicht sicher, ob es eine Mathematica API für den Anschluss an Makler gibt. Ernie Hallo Anonymous, ich werde in die Bereitstellung von Beispiel-Code für nachlaufenden Stop an einem gewissen Punkt in der Zukunft zu suchen. Aber Sie können immer den Höchstpreis Ihrer Aktie verfolgen, da Ihr Eintrag in einer Matlab-Variable. So jeder Zeit der letzte Preis generiert eine Rückkehr (Drawdown), die unter einem bestimmten Minimum ist, senden Sie eine Marktordnung, um Ihre Position zu verlassen. Ernie Liebte das Buch Ernie, einige deiner Helfer-Funktionen liegen auf meinem MATLAB-Pfad. Wenn jemand in der Kälte mit IB ausgelassen wird, integriert sich das MB Trading SDK auch gut mit MATLAB. Es hat Prefab ActiveX-Steuerelemente, die ein Snap, um in der GUIDE für die Erstellung von benutzerdefinierten Trading-Schnittstellen zu implementieren sind. Dieser Code ist Gold - danke, dass du mit deinem Wissen so großzügig bist. Id wie zu handeln FX aber mit IB bekommst du keinen letzten Preis in der FX-Daten-Feed, bekommst du die letzte Schließung von der vorherigen Sitzung, aber nicht der letzte Handelspreis in deiner aktuellen Sitzung. Was ist ein guter Weg, um dieses Problem zu nähern Als ein Preis-Taker in FX müssen Sie oft die Ausbreitung so durchschnittlich (nehmen Sie den Mittelpunkt) der Bidask ist nicht so eine lebensfähige Lösung. Alle Empfehlungen Sie sollten auch die RPythonPerl Combo betrachten. Sein freies aber leistungsfähiges. Eine Frage und ein Kommentar, Was ist der Vorteil, die IB2MATLAB Software über die kostenlose Version mit ACTIVEX zu nutzen. Hier ist ein Beispielcode, wie man direkt über COM zu verbinden (matlabtradercode. phpprojectInteractiveBrokersampfileIBexamples) Ich glaube, mit einem Matlab Timer Objekt wird der Code freundlicher machen. Danke für den Code. Ich fand es sehr nett. Bei einer weiteren Überprüfung enthält die MatLab2IB API-Demo nicht alle Funktionen, so dass sie nicht getestet werden kann. Ich habe sie kontaktiert, um zu sehen, ob eine Vollversion getestet werden kann. Darüber hinaus war ich nicht in der Lage, den Code von MatLabtrader mit ActiveX-Steuerelemente zu arbeiten. Ich laufe API 9.51. Wer sonst noch viel Glück hat Matt, wenn IB nicht den letzten Preis für Währungen bietet, musst du Bloomberg abonnieren und Matlabs Datafeed Toolbox verwenden, um Bloomberg Daten zu erhalten. Dies ist natürlich ein viel teurer Vorschlag, aber es lohnt sich, wenn Sie Einnahmen aus Ihrem Modell generieren können. Ernie Anonymous Ja, ich habe auch in einem Beitrag erwähnt, dass es eine kostenlose Open-Source-R-API gibt, die mit Interactive Brokers verbunden ist. Ich habe es selbst ausprobiert, aber jeder Leser versucht hier Ernie Anonymous. Vielleicht gibt es keinen Vorteil bei der Verwendung von matlab2ibapi über die kostenlose Version von Matlabtrader. Allerdings sind die Kosten für Matlab2ibapi so niedrig, und der Kundenservice so freundlich, dass ich nicht überlegen, einen intrinsischen Vorteil. Die größten Kosten im Handel ist der Verlust aus schlechter Ausführung oder schlechte Modelle. Ernie ExchangeAPI verweigerte meine Bitte um eine voll funktionsfähige Prüfung. Ich kann diese API nicht auf Zuverlässigkeit, Genauigkeit und Latenz gegen meine aktuellen Systeme testen, also muss ich eine Lösung mit der kostenlosen MatLabTrader Version finden. Ich kann nur in eine andere Software sinken, die gut klingt, es sei denn, es gibt einen deutlichen Vorteil gegenüber meiner aktuellen Infrastruktur. Ich habe die Matlabtrader-Version schon lange benutzt und es funktioniert einwandfrei. Natürlich musst du hier und da ein paar Tweaks geben, aber es bietet dir volle Funktionalität. Es gibt ein paar Beispiele, so dass es wirklich einfach ist, loszulegen. Ich würde es jedem empfehlen, der mit der API handeln will, aber nicht Geld ausgeben will.) Dr. Chang, das ist etwas ohne Bezug zu diesem Beitrag, aber im Zusammenhang mit deinem Buch. Da erwähnen Sie Jim Simon. Ich dachte, Sie würden dies zu schätzen wissen: economistfinancedisplaystory. cfmstoryid13751628 sowie diese besondere Kommentar an die Geschichte oben: quotHenry Leeds schrieb: 29. Mai 2009 2:49 Jim Simons ist ein Pool-Operator mit der Fähigkeit, große Mengen an Geld von Investoren zu erhöhen . Er fehlt die mathematischen Fähigkeiten und Kenntnisse, um ein wirklich überlegenes Trading System zu entwickeln. Sein Anspruch auf Ruhm beruht auf seinen Jahren, die Shiing Shen Chern unterstützen, ein brillanter Mathematiker, der Simons großzügig erlaubte, seinen Namen dem 1974 erschienenen Papier hinzuzufügen, das Chern schrieb. Der Medallion Fund wurde von Elwyn Berlekamp, ​​einem brillanten Professor für Elektrotechnik und Mathematik in Berkeley, gegründet. Berlekamp nutzte sein Wissen über Claude Shannon39s revolutionäre Informationstheorie, um dieses Wunder zu schaffen. Shannon war Berlekamp39s PhD Advisor am MIT. Berlekamp entwickelte seinen Medallion Fund in einer Angelegenheit von Monaten und seine unglaubliche Leistung wird auf Berlekamp39s Web site beschrieben. Simons wollte, dass Berlekamp nach Long Island rebellierte und die Algorithmen mit seinem Medallion Meisterwerk weiterentwickelte. Berlekamp wollte Berkeley nicht verlassen und als Ergebnis machte er einen großen Fehler. Er verkaufte die Rechte an seiner Erfindung an Simons für sechsmal, was es ihm gekostet hatte - eine relativ kleine Menge. Er sagt nun auf seiner Website, dass der Medallion Fund viele tausendmal der Dollarbetrag wert ist, den er für seine Leistung erhalten hat. Die Renaissance RIEF hedgefund ist ein Beispiel für Simon39s kreative Fähigkeiten. Seine Leistung ist erbärmlich und hat zu Anleger Abhebungen von 18 Milliarden Dollar geführt. Renaissance-Investoren haben sich bitterlich beklagt, wie ihre Investition so schlecht geschworen hat, während der Medallion-Fonds, der ausschließlich für Renaissance-Mitarbeiter reserviert ist, so gut gemacht hat. Man kann sicherlich ihre Verärgerung verstehen. Ich war in der Handelsbranche für eine kleine Weile und alle und seine Mutter Dinge von Jim Simon als ein Gott. Herr Leeds scheint eine weitere Lesung von Pr. Simon39s Erfolg, der mir als Schock kam. I39m nicht so sicher über MatLab2IB39s quotcustomer Service so friendlyquot nach N N39s Kommentare Ich per E-Mail sie fragen, ob sie bestätigen können, dass das Programm wird definitiv mit IB39s FX arbeiten, vor allem Routing mit IDEALPRO - Ich habe nie eine Antwort. Also spiele ich jetzt mit matlabtrader herum, ich werde versuchen, dein Beispiel mit matlabtrader zu kodieren, wenn ich es gut mache, vielleicht möchtest du vielleicht den Vergleichscode posten. Liebe diese Seite - danke ich bin einer der Autoren der MATLAB2IB API. Wir entschuldigen uns wirklich. Wir sind nicht sicher, wie wir Ihre E-Mail verpasst haben. Können Sie nett sein, uns umgehend zu mailen. Wir werden mit Testanfragen und anderen E-Mails überschwemmt und so haben wir es vermisst. Sie können mich direkt per E-Mail schicken. JA, MATLAB2IB wird mit IB FX arbeiten. Solange Sie Berechtigungen mit IB haben, wird MATLAb2IB kein Problem haben, Ihre Bestellung durchzuführen. Infact, SOme unserer Lizenzinhaber verwenden sie speziell für FX. In Bezug auf NN: Er hat uns gefragt, ob wir ihm eine Testversion mit voller Api-Funktionalität zur Verfügung stellen können. Als Politik haben wir beschlossen, es nicht zu geben. Es ist so einfach wie das. Es gibt viele Gründe, die ich separat besprechen kann. Matt, ich denke, wenn du deine FX-Aufträge an IDEALPRO weiterleiten möchtest, musst du nur IDEALPRO als den Austausch angeben, wenn du die placeOrder-Funktion verwende. Ernie hatte ich bisher über einen nachlaufenden Stop-Loss-Code geschrieben. Bei Mathworks sehe ich, dass Aly Kassam seinen hervorragenden 39Algorithmischen Trading mit dem MATLAB39 Webinar und dem dazugehörigen Code aktualisiert hat, so dass es jetzt auch einen Stop-Loss-Code enthält. Der aktualisierte Webinar-Code ist unter: mathworks. aumatlabcentralfileexchange24320 Ihre Leser könnten daran interessiert sein, beide Aly39s Webinare zu sehen, um die Vorteile von MATLAB zu sehen. Mathworks for 39Algorithmic Trading mit MATLAB for Financial Applications39 und 39Algorithmischer Handel mit MATLAB - Update für 2009 (United Kingdom) 39 Wenn also jemand mit diesem Beispiel ein Paar-Trading-Programm erstellen wollte, würden sie ein quotlocalsymbol2quot erstellen und dann die Marktdaten anfordern Für diese besondere Sicherheit und haben das Programm führen Kauf oder verkaufen Aufträge entgegen der primären Sicherheit mit Zubehör, wenn Schleifen Und für die Berechnung der Abweichung und Lookback-Perioden, wäre man in der Lage, es durch die Änderung der zscore39lookback3939entryz3939exitz39 zu repräsentieren sagen, lineare Regression statt Bollinger Bands Also, wenn jemand wollte ein Paar Handelsprogramm mit diesem Beispiel erstellen, würden sie ein quotlocalsymbol2quot erstellen, dann die Marktdaten für die jeweilige Sicherheit anfordern und das Programm ausführen Kauf oder verkaufen Aufträge gegenüber der primären Sicherheit mit Zubehör, wenn Schleifen Und Für die Berechnung der Abweichung und Lookback-Perioden, wäre man in der Lage, es durch die Änderung der zscore39lookback3939entryz3939exitz39 zu repräsentieren sagen, lineare Regression statt Bollinger-Bands Hallo Anon, ja, können Sie ein separates Symbol2 und localsymbol2 für das andere Bein des Paares zu erstellen. Wie für Zscore, Lookback, etc., sobald Sie ein Hedge-Verhältnis bestimmt haben, haben Sie die Zeitreihe auf 1 Dimension reduziert (quotthe spreadquot), so Bollinger Band wird genau wie in einem 1-Instrument Fall zu arbeiten. Ernie So, in der Kaufreihenfolge für die Sicherheit 39localsymbol39 Teil einer Schleife, rechts unten, würde man einen Verkauf Auftrag für die Sicherheit 39localsymbol239 und machen es alle Teil einer einzigen Schleife, um es ein Tandem-Handel und Lineare Regression oder EMA oder irgendwelche Andere Indikator sollte auch funktionieren, vorausgesetzt, die richtigen Zscore-Parameter sind gegeben Was ist mit Volumen MetrikenTechnische Analyse mit R In diesem Beitrag gut einen Blick auf, wie ein Händler könnte R verwenden, um einige grundlegende technische Analyse-Indikatoren zu berechnen. R ist eine freie Open-Source-Statistikanalyse und Programmiersprache. Es ist für Windows, Mac OS und Linux Betriebssysteme verfügbar. Die Installation ist einfach und schnell. Zum Download und zur Installation finden Sie: cran. r-project. org. Bei der Entwicklung einer Handelsstrategie ist es sinnvoll, Daten analysieren und visualisieren zu können und Ihre Handlungsregeln und ihre Variationen und Modelle schnell und mit minimaler Umdrehung zu testen. Während viele Handelsplattformen, wie z. B. Interaktive Broker, etc. Zugang zu historischen Daten über API oder gerader Datei herunterladen 8211 analysieren, dass Daten-und Prototyping-Trading-Strategien oft erfordert das Schreiben von Hunderten von Zeilen Code in Programmiersprachen wie Java oder C oder Schreiben Schwerfällige, schwer zu testende Formeln in Excel. Dies erfordert eine erhebliche Zeit Investition, unabhängig davon, wie Erfahrung Programmierer Sie sind. Im Gegensatz dazu können eine übergeordnete Programmiersprache wie R oder Matlab, gepaart mit ihren interaktiven Programmierumgebungen, ihren Benutzern erlauben, Daten innerhalb eines Bruchteils der Zeit, die mit C, C oder Java benötigt wird, zu schneiden, zu würfeln und zu analysieren. Die Menge an Code erforderlich, um eine Handelsstrategie in R zu entwickeln ist in der Regel eine Größenordnung weniger als gut. In diesem Beispiel verwenden Sie eine einfache, kommagetrennte Datei mit offenen, hohen, niedrigen und engen Preisspalten (a. k.a. OHLC), zusammen mit Volumen - und Zeitstempelwerten für SPY ETF. In diesem Beitrag gut demonstrieren, wie man eine kostenlose R-Bibliothek verwenden, um Simple Moving Average (SMA), Exponential Moving Average (EMA), Bollinger Bands (BBands), RSI und MACD technische Analyse Indikatoren zu berechnen. Wir werden berechnete Indikatoren als neue Spalten an unsere Eingabedatei anhängen, damit sie für weitere Analysen oder Handelsstrategie-Prototypen in Excel, R oder einem anderen CSV-freundlichen Softwarepaket Ihrer Wahl verwendet werden können. Installieren der technischen Analyse-Bibliothek für R 1. Um die technische Analyse mit R zu berechnen, verwenden wir eine freie Open-Source-Bibliothek mit dem Namen 8220TTR8221 (Technical Trading Rules). Dieser Schritt enthält Anweisungen für die Installation der TTR-Bibliothek, vorausgesetzt, Sie haben bereits R auf Ihrem Computer installiert. Diese Schritte müssen nur einmal pro R-Installation auf einem Computer durchgeführt werden. So installieren Sie die Bibliothek auf Ihrem Computer: 1) Starten Sie die R-Umgebung auf Ihrem Computer, und wählen Sie im Menü aus: Packages 038 Data - Package Installer 2) Im Paketinstallateur Typ 8220TTR8221 im Feld Paket suchen und klicken Sie auf die Schaltfläche 8220Get List8221. 3) Wählen Sie Paket 8220TTR8221 und klicken Sie auf 8220Install Selected8221. Laden von Historical Data (Input) Für Demo-Zwecke werden wir von September 2013 bis Mai 2014 täglich historische Preise für SPY ETF verwenden. Klicken Sie hier, um die Datei herunterzuladen. Diese Eingabedatei für dieses Beispiel wurde mit IB Historical Data Downloader generiert. 2. Wir werden anfangen, indem wir die R-Shell öffnen und die TTR-Bibliothek laden, die eine freie R-Erweiterung ist, die Funktionen zur Berechnung einiger der häufigsten Indikatoren enthält. 3. Der nächste Schritt ist, unsere Datendatei mit historischen Preisen in R-Umgebung zu importieren. Wir laden Daten aus der Beispiel-CSV-Datei in die R-Umgebung und speichern sie einen Datenrahmen, den ein R-Variable für die Speicherung von Daten im Tabellenformat im Speicher ist. Um die ersten paar Zeilen der Datentabelle anzuzeigen, werden standardmäßig die ersten 6 Zeilen von Daten zusammen mit Spaltennamen (Tabellenüberschrift) angezeigt. Um zu sehen, wie viele Zeilen Sie in der Datentabelle haben: Zeigt an, dass wir in unserer SPY-Datendatei 187 Datensätze haben, für 187 Handelstage zwischen dem 3. September 2013 8211 Mai 31, 2014. Wir können auch Tabellenspaltennamen mit colnames-Funktionen auflisten Wie folgt: Verschieben von Durchschnittswerten 4. Lets jetzt berechnen 20-Tage-Simple Moving Average (SMA) der CLOSE-Preisspalte mit TTR-Bibliotheken R-Funktion SMA: Jetzt sehen wir die ersten 50 Werte des sma20-Arrays: Hier haben wir die Funktion SMA von TTR verwendet Bibliothek, die wir oben geladen haben, und erzählt es, den 20-Tage-Durchschnitt (Wert des Parameters n) der CLOSE-Spalte aus Datenrahmendaten zu berechnen. Die Funktion gibt ein Array von SMA-Werten zurück und speichert sie in einer neuen Variablen namens sma20. Sie können die Hilfe mit einer detaillierten Beschreibung der Funktion und ihrer Parameter mitbringen. Gefolgt von dem Funktionsnamen, wie unten. Es ist immer eine gute Idee, Hilfe-Seiten für die Funktionen zu lesen, die Sie verwenden, da sie alle optionalen Parameter auflisten, die Sie verwenden können, um die Ausgabe zu optimieren. Auch viele Funktionen haben Variationen oder verwandte Funktionen, die unter verschiedenen Umständen hilfreich sein könnten und auf der Hilfeseite aufgeführt werden. 5. Berechnung von exponentiellen Moving Average ist ähnlich einfach, verwenden Sie einfach eine andere Funktion, diesmal EMA (). Beachten Sie, dass wir EMA für 14-Periodenlänge berechnen Bollinger Bands 6. Um Bollinger Bands Indikator zu berechnen, verwenden wir die Funktion BBands. Es gibt eine Reihe von optionalen Parametern, die es braucht, so gut bieten einige Beispiele. Im folgenden Beispiel nennen wir BBands, die Datenrahmendaten mit einer Abfrage übergeben, die angibt, dass wir Werte aus der CLOSE-Spalte verwenden wollen, genau wie wir oben auf SMA - und EMA-Berechnungen oben getan haben. Der zweite Parameter sd nimmt die Anzahl der Standardabweichungen für obere und untere Bänder an. Da wir keinen Wert für n 8211 passieren, verwendet BBands standardmäßig 20-fach gleitender Durchschnitt. Die Ausgabe enthält mehrere Spalten: dn für die untere Bande, mavg für den gleitenden Durchschnitt, oben für das obere Band und pctB, die einen security8217s Preis relativ zum oberen und unteren Bollinger Band quantifiziert, eine detaillierte Beschreibung davon finden Sie hier. B ist gleich 1, wenn der Preis im oberen Band B gleich 0 ist, wenn der Preis am unteren Band B liegt, ist über 1, wenn der Preis über dem oberen Band B liegt unter 0, wenn der Preis unter dem unteren Band B liegt, liegt über 0,50, wenn der Preis ist Über dem mittleren Band (20-Tage-SMA) B ist unten .50, wenn der Preis unter dem mittleren Band liegt (20-Tage-SMA) bb20 BBands (Daten, sd2.0) 6.1 Jetzt können wir einen neuen Datenrahmen mit allen Inputs erstellen Daten aus dem 8216data8217 Rahmen, plus Bollinger Bands Daten, die wir gerade berechnet haben. Die Funktion data. frame () nimmt eine beliebige Anzahl von Datenrahmen auf und verbindet sie row-weise in einen neuen Datenrahmen, so dass Elemente aus entsprechenden Zeilen im Ergebnis zusammengefügt werden. 6.2 Bollinger Bands Plot: Plot (dataPlusBBDATETIME, allDataCLOSE) Zeilen (dataPlusBBCLOSE, col 8216red8217) Zeilen (dataPlusBBup, col 8216purple8217) Zeilen (dataPlusBBdn, col 8216brown8217) Zeilen (dataPlusBBmavg, col 8216blue8217) 6.3 Alternativ können wir explizit angeben, welche Art von Verschieben Durchschnitt sollte als Basis für Bollinger Bands mit dem Funktionsparameter maType verwendet werden, der einfach einen gleitenden durchschnittlichen Funktionsnamen einnimmt. Siehe SMA-Hilfeseite, um verschiedene Arten von gleitenden Durchschnitten zu sehen, die in der TTR-Bibliothek unterstützt werden. Zum Beispiel, wenn youd gerne eine EMA Bollinger Bands berechnen, können Sie EMA an maType übergeben. Beachten Sie, dass wir in diesem Beispiel den Standardlängenparameter für den gleitenden Durchschnitt überschreiben, wobei diesmal das 14-Perioden-Durchschnitt verwendet. BbEMA BBands (Daten, sd2.0, n14, maTypeEMA) RSI 8211 Relative Stärke Indikator 7. RSI. Zur Berechnung von RSI verwenden wir die Funktion RSI (). Sie können den RSI-Befehl in der R-Shell verwenden, um Details zu den Funktionsparametern zu erhalten. Grundsätzlich ist es sehr ähnlich zu den Funktionen, die wir oben verwendet haben, um gleitende Durchschnitte zu erzeugen. Es gibt zwei erforderliche Parameter: Zeitreihen (zB CLOSE-Spalte aus unserem Datendatenrahmen und n ganzzahliger Wert für die Länge des RSI-Indikators rsi14 RSI (data, n14) Hier ist der erste Parameter zur RSI-Funktion: data, which Ist eine Anweisung, die die Spalte mit dem Namen CLOSE aus der Datentabelle anzeigt und sie als eine Liste von Werten zurückgibt, und der zweite Parameter ist n14, wobei der Parametername n ist und der Wert 14 anzeigt, dass wir 14-Tage berechnen wollen RSI-Werte zu den engen Preisen 8. Die MACD-Funktion übernimmt mehrere Argumente: Eingabedatenreihen (wie z. B. CLOSE-Preis) Anzahl der Perioden für schnell gleitende durchschnittliche Anzahl von Perioden für langsame gleitende durchschnittliche Anzahl von Perioden für die Signalleitung Sie können auch optional Geben Sie eine gleitende durchschnittliche Funktion an, die Sie für MACD-Bewegungsdurchschnitte verwenden möchten. Sehen Sie sich einen Screenshot der Hilfeseite an (Sie können auch den MACD-Befehl in der R-Shell verwenden, um die Hilfeseite selbst zu öffnen): Ermöglicht es, einen Standard zu berechnen (12,26,9) MACD-Indikator mit dieser Funktion, gut mit Standard-einfachen gleitenden Mittelwerten, also, gut spezifizieren SMA-Funktion in maType-Parameter: macd MACD (Daten, nFast12, nSlow26, nSig9, maTypeSMA) Verbinden Sie alle Daten zusammen 9. Jetzt schließen wir alle an Indikatoren, die oben mit den ursprünglichen Eingabedaten berechnet wurden, in einen einzelnen Datenrahmen: Die Funktion data. frame () nimmt eine beliebige Anzahl von Datenrahmen auf und verbindet sie reihenweise, so dass Elemente aus entsprechenden Zeilen in den resultierenden data. frame allData zusammengeklebt werden . Schreiben Sie in Textdatei Und schließlich schreiben wir Inhalte von allData Datenrahmen zu einer kommagetrennten Wertedatei. Wir verwenden die write. table () - Funktion, die eine große Anzahl von optionalen Parametern enthält. Eine ausführliche Hilfeseite ist mit dem Befehl write. table in R-Shell verfügbar. Write. table (allData, filespywithindicators. csv, na, sep ,, row. names FALSE) Wenn wir die Funktion write. table () aufrufen, übergeben wir die folgenden Argumente: allData 8211 Das ist einfach ein Verweis auf den Datenrahmen, der Daten enthält In die Ausgabedatei geschrieben. Datei 8230 8211 Dies ist der Pfad und der Name der Datei, die wir erstellen. Na 8211 stellt sicher, dass Zellen im Datenrahmen, die den R-Wert NA enthalten, leere Werte in der Ausgabedatei enthalten. Einige Zellen haben NA für Zeilen, in denen es nicht genügend Daten gab, um einen entsprechenden Indikatorwert zu erzeugen (zB erste 19 Zeilen für 20-Tage-SMA). Sep, 8211 setzt Spalten-Trennzeichen auf Komma (daher kommagetrennte Werte-Datei). Um eine tabulatorgetrennte Datei zu erstellen (wirklich ein bevorzugtes Format für ernsthafte Software-Systeme) 8211 verwenden: sep t. Row. names FALSE 8211 ist es wichtig, diesen Wert zu setzen, sonst wird die erste Spalte in der Ausgabedatei Zeilennummern enthalten. Die daraus resultierende Datei steht hier zur Verfügung. Klicken Sie mit der rechten Maustaste und wählen Sie 8220Save Linked File As8221 Die heruntergeladene Datei kann in Excel oder Texteditor geöffnet werden. 10. In der TTR-Bibliothek gibt es weitere Funktionen und Funktionen. Sie können mehr erfahren, indem Sie die TTR-Hilfeseite aufrufen: CONCLUSION R bietet eine bequeme und vielseitige Umgebung für Datenanalyse und Berechnungen. Neben Tausenden von freien statistischen, statistischen, mathematischen Bibliotheken und Algorithmen enthält R eine Vielzahl von Funktionen und Bibliotheken zum Lesen und Schreiben von Dateien aus Dateien, Datenbanken, URLs, Web Services usw. Das kombiniert mit der Prägnanz der Sprache , Ist eine leistungsstarke Kombination, die Händler helfen kann, kostbare Zeit zu sparen. Trader können die Zeit, die für Prototypen und Backtest-Trading-Strategien mit R erforderlich ist, erheblich reduzieren. Es gibt auch Methoden, um R mit Mainstream-Programmiersprachen wie Java und C. zu integrieren. Don8217t zögern, einen Kommentar zu posten oder als Nachricht über Kontaktformular zu senden, wenn Sie haben Fragen zu diesem Material. Schließlich möchten wir ein paar Bücher erwähnen, die in unseren Entwicklungsbemühungen sehr hilfreich waren. Das erste Buch 8211 8220Quantitative Trading mit R8221 ist eine großartige Mischung aus Finanzdatenanalyse Einblicke und Anwendung von R auf Backtesting, Datenerforschung und Analyse. Es hat eine Reihe von großen Code-Beispiele und geht über eine Reihe von nützlichen R-Pakete. Dies ist ein gutes Intro-to-Zwischen-Level-Buch für Leute, die ihre eigenen Handelsstrategien aufbauen und backtest. Das zweite Buch 8211 8220Mastering R für Quantitative Finance8221 8211 ist ein echtes Juwel. Es enthält fortgeschrittene Informationen für Händler mit einem guten Verständnis von Derivaten Instrumente und stärker mathematischen Hintergrund. Wir haben festgestellt, dass dieses Buch ist ein toller Follow-up für die 8220Quantitative Trading mit R8221. Zusätzlich zu den großen R-Code-Samples und Pakete enthält es Übersichten über eine Reihe von fortgeschrittenen (und praktischen) quantitativen Finanzmodellen und Algorithmen, und lässt Sie Ihre Füße mit R-Code sofort mitbringen. Trading Geeks bietet Beratungsleistungen in der Handelsstrategie und Softwareentwicklung für unabhängige Händler, Partnerschaften und Hedgefonds an. Bitte erkundigen Sie sich für weitere Informationen oder ein kostenloses Angebot für Ihr Projekt über Kontaktformular auf der rechten Seite.

No comments:

Post a Comment