Tuesday 26 September 2017

Quantitative Handelsstrategien In R Teil 1 Von 3


Quantitative Handelsstrategien in R Teil 1 von 3 Quantitative Handelsstrategien in R Computationales Finanz - und Risikomanagement mm 40 60 80 100 120 Quantitative Handelsstrategien in R 40 Teil 1 von 3 60 Guy Yollin Principal Consultant, r-programming. org Gastdozent, Universität Von Washington 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 1/72 Gliederung mm 40 60 80 100 120 1 Das Blotter-Paket 40 2 Das Quantstrat-Paket 60 3 Leistungsanalyse 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien In R quantstrat-I 2/72 Pakete für die Entwicklung von Handelssystemen in R mm PerformanceAnalytics: Ökonometrische Werkzeuge für Performance und Risikoanalyse 40 Performance Metrics und Graphen 60 80 100 120 quantstrat: quantitatives Strategiemodell Framework Blotter: Werkzeuge für die transaktionsorientierte Entwicklung von Handelssystemen 40 Quantitative Handelsregeln und Handelsauswertungen quantmod: quantitatives Finanzmodellierungs-Framework TTR: Technische Handelsregeln 60 Datenzugriff, Charting, Indikatoren xts: Erweiterte Zeitreihen 80 Zoo: geordnete Beobachtungen Zeitreihenobjekte Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat - I 3/72 Über blotter und quantstrat mm 40 80 100 Transaktionsinfrastruktur für 60 Instrumente, Transaktionen, 120 Portfolios und Konten für Handelssysteme und Simulation. Bietet Portfolio-Unterstützung für Multi-Asset-Klassen - und Multi-Währungs-Portfolios. Noch in schwerer Entwicklung. Die Software ist in einem Alpha / Beta-Stadium einige Dinge sind nicht vollständig implementiert (oder dokumentiert) einige Dinge haben immer Fehler einige Implementierungen werden sich in Zukunft ändern 60 40 Software wurde in der Entwicklung für eine Reihe von Jahren blotter: Dec-2008 Quantstrat: Feb-2010 Software wird täglich von Berufsberufen in der Vermögensverwaltung eingesetzt 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 4/72 Vortragsreferenzen mm 40 60 100 TradeAnalytics Projektseite auf R-forge: 80 r-forge. R-project. org/projects/blotter/ Dokumente und Demos für: 40 Blotter-Paket quantstrat-Paket 120 R-SIG-FINANCE: stat. ethz. ch/mailman/listinfo/r-sig-finance 60 Kent Russells Zeitgemäßer Portfolio-Blog: rechtzeitiges Portfolio. blogspot / 6-teiliges Quantstrat Beispiel 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 5/72 Gliederung mm 40 60 80 100 120 1 Das Blotterpaket 40 2 Das Quantstratpaket 60 3 Leistungsanalyse 80 Guy Yollin ( Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 6/72 Das Blotterpaket mm 40 60 80 100 120 Beschreibung Transaktionsinfrastruktur zum Nachweis von Instrumenten, Transaktionen, Portfolios und Konten für Handelssysteme und Simulation. Bietet Portfolio-Unterstützung für Multi-Asset-Klassen - und Multi-Währungs-Portfolios. Key Features unterstützt Portfolios von mehreren Assets unterstützt Konten von mehreren Portfolios unterstützt PL-Berechnung und Roll-up 60 Autoren Peter Carl Brian Peterson 80 40 Guy Yollin (Copyright 2011) Quantitative Trading-Strategien in R quantstrat-I 7/72 Grundlegende Strategie Backtesting Workow für Blotter Mm 40 60 80 100 120 Initialisierung Bar-by-Bar-Verarbeitung Reporting 40 Währung und Instrumente initialisieren und historische Daten initialisieren Portfolio und Konto initialisieren Prüfen Sie die Preise und Indikatoren, um zu sehen, ob Buy oder Sell ausgelöst hat Update Position und Eigenkapital Ende der Daten Generieren Sie Leistungsberichte und Graphen 60 80 Guy Yollin (Copyright 2011) Quantitative Trading Strategies in R quantstrat-I 8/72 Key blotter Funktionen mmFunction initPortf initAcct 40 40 getPosQty addTxn updatePortf updateAcct updateEndEq getEndEq 60 chart. Posn PortfReturns getAccount getPortfolio getTxns tradeStats 80 60 80 100 Beschreibung Initialisierung initialisiert Ein Portfoliobjekt initialisiert ein Kontenobjekt Processing ruft den jüngsten Wert des Kapitalkontos ab Position bekommt Position am Datum Hinzufügen von Transaktionen zu einem Portfolio berechnen PL für jedes Symbol für jede Periode Berechnen des Eigenkapitals aus Portfolio-Daten Aktualisierung Beenden des Eigenkapitals für ein Konto Analyse-Diagramm Marktdaten, Position Größe und kumulative PL berechnen Portfolio-Instrument liefert ein Account-Objekt aus der. Blotter-Umgebung erhalten ein Portfolio-Objekt aus der. Blotter-Umgebung abrufen Transaktionen aus einem Portfolio berechnen Handelsstatistik 120 Guy Yollin (Copyright 2011) Quantitative Trading-Strategien in R quantstrat - I 9/72 Laden des Blotterpakets R Code: Millimeterbibliothek (Blotter) Suche () 1 3 5 7 9 11 13 15.GlobalesEnv Paket: FinancialInstrument Paket: TTR 40 Paket: xts Paket: stats Paket: grDevices Paket: datasets Autoloads Paket : blotter Paket: quantmod Paket: Standardpaket: Zoo-Paket: Grafik-Paket: utils-Paket: Methoden Paket: Basis 40 60 80 100 120 60 Loading blotter verursacht diese anderen Bibliotheken automatisch quantmod 80 TTR FinancialInstrument xts Zoo Guy Yollin (Urheberrecht FinancialInstrument geladen werden 2011) Quantitative Handelsstrategien in R quantstrat-I 10/72 Die. blotter - und. instrument-Umgebung mm 40 60 80 100 120 Das Blotter-Paket schafft eine Umgebung mit dem Namen. blotter für die private Speicherung von Portfolio - und Kontoobjekten Ebenso wird ein FinancialInstrument-Paket erstellt Umfeld das aufgerufene Instrument zur privaten Lagerung von denedierten Instrumenten (z Währung, Bestand, Zukunft usw.) R-Code: 60.instrument ls (allT) 1.blotter 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 11/72 Grundstrategie Backtesting Workow für Blotter mm 40 60 80 100 120 Initialisierung Bar-by-Bar-Verarbeitung Reporting 40 Initialisieren Sie Währung und Instrumente und laden Sie historische Daten Initialisierung des Portfolios und des Kontos Prüfen Sie die Preise und Indikatoren, um zu sehen, ob Buy oder Sell ausgelöst wurde Update Position und Gerechtigkeit Ende der Daten Generieren von Performance Reports und Grafiken 60 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 12/72 Instrumentenkonstrukteure Das FinancialInstrument-Paket bietet die Möglichkeit, sich mit unterschiedlichen Arten von Instrumenten und verschiedenen Währungen auseinanderzusetzen mm 40 60 80 100 120 R Code: Instrumentenbauer args (Währung) (Primär, Währung NULL, Multiplikator 1, Bezeichner NULL.) 40 NULL args (Stock) Funktion (primär, Währung NULL, Multiplikator 1, Ticksize 0,01, Bezeichner NULL. ) 60 NULL Hauptargumente: primäre ID-Zeichenfolge, die eine eindeutige ID für die Instrumentenwährung bereitstellt 80 Zeichenfolge, die die Währung identifiziert Multiplikator numerischer Multiplikator (Multiplikatorpreis Nominalwerte) Tickgröße Tickinkrementierung des Instrumentenpreises Guy Yollin (Copyright 2011) Quantitative Trading Strategies In R quantstrat-I 13/72 Initialisieren des Währungsinstruments R Code: Währung (USD) mm 40 60 80 100 120 1 USD get (USD, envir. instrument) primär 1 USD Währung 1 USD Multiplikator 1 1 Ticksize 1 0,01 Identifier NULL 40 60 80 Typ 1 Währung attr (, Klasse) Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 14/72 Initialisierung des Handelsinstruments R Code: Aktie (SPY, CurrencyUSD, Multiplikator1) mm 40 60 80 100 120 1 SPY (SPY, envir. instrument) primär 1 SPY Währung 1 USD Multiplikator 1 1 Ticksize 1 0,01 Identifikatoren Liste () 40 60 80 Typ 1 Bestand attr (, Klasse) Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 15 / 72 Fetch-Code historischen Daten R: mm 40 60 80 100 120 getSymbols (SPY, from1998-01-01, to2011-07-31, adjustT) SPYto. monthly (SPY, indexAtendof) SPYSMA10m Schwanz (SPY) 40 SPY. Open 2011 -02-28 128,2641 2011-03-31 132,3362 2011-04-29 132,7519 2011-05-31 136,3938 2011-06-3060 133,8464 2011-07-29 132,0900 SPY. High 133,4458 132,5031 135,8963 136,5033 134,2544 135,7000 SPY. Low SPY. Close SPY. Volume SPY. Adjusted SMA10m 128,1849 131,9201 2846131894 131,92 114,9287 124,1228 131,9359 4825610492 131,94 117,4512 128,8711 135,7570 2826839043 135,76 120,9079 130,7319 134,2345 3354154109 134,23 123,5213 125,6968 131,9700 4723424476 131,97 126,3944 127,9700 129,3300 3840839000 129,33 128,0790 Hinweis Umwandlung von Tagesdaten auf Monatsdaten am letzten Handelstag mit Des Monats (xts-Funktionalität) 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 16/72 Grundstrategie Backtesting-Workow für Blotter mm 40 60 80 100 120 Initialisierung Bar-by-Bar-Verarbeitung Reporting 40 Initialisierung von Währungen und Instrumenten , Und laden Sie historische Daten Initialisieren Sie Portfolio und Konto Überprüfen Sie die Preise und Indikatoren, um zu sehen, ob Kauf oder Verkauf ausgelöst wurde Update Position und Eigenkapital Ende der Daten Generieren von Leistungsberichten und Grafiken 60 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 17 / Die initPortf-Funktion Die initPortf-Funktion konstruiert und initialisiert ein Portfolio-Objekt, das verwendet wird, um Transaktionen, Positionen und 80 Aggregatpegelwerte zu enthalten. 120 mm 40 60 100 R Code: Die Funktion initPortf args (initPortf) (name default, Symbole, initPosQty 0, initDate 1950-01-01, 40 Währung USD). NULL Hauptargumente: Name Symbole 60 Name für das resultierende Portfolio-Objekt Liste der Symbole, die in das Portfolio aufgenommen werden sollen initPosQty Anfangspositionsmenge initDate 80 Datum für Erstkonto Eigenkapital und Position (vor dem ersten Schlusskurs) Währungswährung identi Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 18/72 Die initAcct-Funktion Die initAcct-Funktion konstruiert den Datencontainer, der zur Speicherung von berechneten Kontenwerten verwendet wird, wie z. B. 60 aggregierte PL, Eigenkapital, 100 usw. mm 40 80 R Code: Die initAcct-Funktion args (initAcct) (name default, portfolios, initDate 1950- NULL 120 Hauptargumente: name initDate initEq Währung 80 60 Name für die daraus resultierenden Account-Objekt-Portfolios Vektor von Zeichenketten-Namens-Portfolios, die in diesem Konto enthalten sind, für Anfangskonto Eigenkapital und Position (vor dem erste Schlusskurs) Anfangskontostand Währung identier Guy Yollin (Copyright 2011) Quantitative Trading Strategies in R quantstrat-I 19/72 initialisieren Portfolio und Konto mm R-Code: b. strategy initPortf (b. strategy, SPY, initDate1997-12-31 ) 40 1 bFaber initAcct (b. strategy, portfoliosb. strategy, initDate1997-12-31, initEq1e6) 1 bFaber 40 60 80 100 120 60 Beachten Sie, dass initDate zu Beginn der Daten 80 Guy Yollin (Copyright 2011) Quantitative Handel vor ist Strategien in R quantstrat-I 20/72 Die. blotter - und. instrument-Umgebung R Code: mm ls () 1 SPY ls (.blotter) b. strategy 40 60 80 100 120 40 1 account. bFaber ls (.instrument) 1 SPY USD Portfolio. bFaber 60 verschiedene Objekte, die im globalen Umgebungsportfolio gespeichert sind, und Kontoobjekte, die in der Umgebungswährung von. blotter gespeichert sind, und Handelsinstrumentobjekten, die in der. instrument 80-Umgebung gespeichert sind. Guy Yollin (Copyright 2011) Quantitative Handelsstrategien In R quantstrat-I 21/72 Grundstrategie Backtesting-Workow für Blotter mm 40 60 80 100 120 Initialisierung Bar-by-Bar-Verarbeitung Reporting 40 Initialisieren Sie Währung und Instrumente und laden Sie historische Daten Initialisierung des Portfolios und des Kontos Prüfen Sie die Preise und Indikatoren, ob Buy Oder Verkauf ausgelöst Aktualisierung der Position und des Eigenkapitals Ende der Daten Generierung von Leistungsberichten und Grafiken 60 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 22/72 Plot monatlich SPY und 10 Monate SMA mm 40 60 80 100 120 R Code : Theme chartPosn (b. strategy, Symbol SPY, Daten 1998: :)) Handlung (addSMA (n10, col4, on1, lwd2)) 60 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 31/72 Leistungsdiagramm SPY 140 19980130/20110729 mm 40 60 80 100 120 130 120 115 140 130 120 110 110 105 100 100 90 40 95 90 85 80 80 75 70 70 1000 800 600 400 200 0 120000 Positionsfill 1000 qqqqqqqq 1000 800 600 400 200 60 qqqqqqq 0 120000 100000 80000 60000 CumPL 98314,97275 100000 80000 60000 40000 20000 0 1998 Jan 1998 Jul 1998 Jan 1999 1999 Jul 1999 Jan 2000 2000 Jul 2000 Jan 2001 2001 Jul 2001 Jan 2002 2002 Jul 2002 Jan 2003 2003 Jul 2003 Jan 2004 2004 Jul 2004 Jan 2005 2005 Jul 2005 Jan. 2006 2006 Jul 2006 Jan 2007 2007 Jul 2007 Jan 2008 2008 Jul 2008 Jan 2009 2009 Jul 2009 Jan 2010 2010 Jul 2010 2011 Jan 2011 Jul 2011 80 40000 20000 0 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in der R quantstrat-I 32/72 Transaktionen R-Code: mm Txn. Qty 1997-12-31 0 1998-10-30 1000 1999-09-3040 -1000 1999-10-29 1000 2000-09-29 -1000 2002-03-28 1000 2002 -04-30 -1000 2003-04-30 1000 2004-08-3160 -1000 2004-09-30 1000 2007-12-31 -1000 2009-06-30 1000 2010-06-30 -1000 2010-07-30 1000 2010-08-3180 -1000 2010-09-30 1000 40 60 80 100 120 getTxns (Portfoliob. strategy, SymbolSPY) Txn. Price Txn. Fees Txn. Value Txn. Avg. Cost Net. Txn. Realized. PL 0,00000 0 0,00 0,00000 0,000 89,25095 0 89.250,95 89,25095 0.000 105,61590 0 -105.615,90 105,61590 16.364,951 112,38352 0 112.383,52 112,38352 0.000 118,98858 0 -118.988,58 118,98858 6605,062 96,28988 0 96.289,88 96,28988 0.000 90,69007 0 -90.690,07 90,69007 -5.599,813 78,59565 0 78.595,65 78,59565 0.000 96,86532 0 -96.865,32 96,86532 18.269,669 97,83755 0 97.837,55 97,83755 0.000 136,15069 0 -136.150,69 136,15069 38.313,139 88,81119 0 88.811,19 88,81119 0.000 101,18979 0 -101.189,79 101,18979 12.378,598 108,10113 0 108.101,13 108,10113 0.000 103,23868 0 -103.238,68 103,23868 -4.862,443 112,48419 0 112.484,19 112,48419 0.000 Guy Yollin (Copyright 2011) Quantitative Trading Strategies in R quantstrat - I 33/72 Gliederung mm 40 60 80 100 120 1 Das Flotterpaket 40 2 Das Quantstrat-Paket 60 3 Leistungsanalyse 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 34/72 Das Quantstrat-Paket mm 40 60 80 100 120 Beschreibung Geben Sie quantitative Finanzhandels - und Portfolio-Strategien an, erstellen und back-testen Sie diese. Hauptmerkmale unterstützen Strategien, die Indikatoren, Signale und Regeln einbeziehen, die es erlauben, Strategien für Portfolios anzuwenden, die das Blotterpaket für die Handelsbuchhaltung nutzen. Autoren 60 40 Peter Carl Brian Peterson 80 Jerey Ryan Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 35/72 Grundstrategie Backtesting-Workow für Quantstrat mm 40 60 80 100 120 Initialisierung Strategie definieren Bar-by-Bar-Verarbeitung Update Reporting 40 Initialisieren Sie Währung und Instrumente und laden Sie historische Daten Initialisieren Sie Portfolio, Konto, Aufträge, Strategie Hinzufügen von Indikatoren, Signalen und Regeln Portfolio auf Portfolio umstellen Portfolio, Konto, Eigenkapital erstellen Leistungsberichte und Graphen generieren 60 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 36/72 Wichtige Quantstratfunktionen mm Funktion 40 initOrders Strategie 40 add. signal add. rule add. indicator sigComparison sigCrossover 60 sigFormula sigPeak sigThreshold ruleSignal osNoOp 80 applyStrategy 60 80 100 Beschreibung Initialisierungsreihenfolge Container Konstruktor für Strategieobjekt Strategie initialisieren Denition einen Indikator hinzufügen zu einer Strategie fügen Sie ein Signal an eine Strategie fügen Sie eine Regel auf eine Strategie Standardfunktionen Vergleichssignal erzeugen Generieren Sie ein Crossover-Signal erzeugen ein Signal aus einer Formel-Signal-Funktion für Peak / Tal-Signale generieren eine Schwellenwertsignal-Default-Regel zu einem Trade-Order auf eine Signal-Default Order Sizing-Funktion zu erzeugen Verarbeitung Verarbeitung der Strategie auf willkürliche Marktdaten 120 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 37/72 Grundstrategie Backtesting-Workow für quantstrat mm 40 60 80 100 120 Initialisierung Strategie definieren Bar-by-Bar-Verarbeitung Update Reporting 40 Initialisieren Sie Währung und Instrumente und laden Sie historische Daten Initialisieren Sie Portfolio, Konto, Aufträge , Strategie Hinzufügen von Indikatoren, Signalen und Regeln Strategie auf Portfolio anwenden Portfolio, Konto, Eigenkapital aktualisieren Leistungsberichte und Grafiken generieren 60 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 38/72 Portfolio und Konto anlegen mm R Code : inz Portfolio, Konto und Aufträge qs. strategy initPortf (qs. strategy, SPY, initDate1997-12-31) 1 qsFaber initAcct (qs. strategy, portfoliosqs. strategy, initDate1997-12-31, initEq1e6) 1 qsFaber 40 60 80 100 120 60 Identischer Code früher verwendet 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 39/72 Initialisierung von Aufträgen und Strategie mm 40 60 80 100 120 R Code: Initialisierungsaufträge Container 40 Bibliothek (quantstrat) initOrders (portfolioqs. Strategie, initDate1997-12-31) Instanziieren eines neuen Strategieobjekts strat class (strat) 1 Strategiezusammenfassung (strat) 40 Länge name 1 Assets 0 Indikatoren 0 Signale 600 Regeln 1 Constraints 0 init 0 wrapup 0 call 2 Klasse - none-none - None-none-none-none-none-none-noneMode-Zeichen NULL-Liste Listenliste NULL-Liste Listenaufruf 40 60 80 100 120 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 41/72 Grundlegende Strategie Backtesting-Workow für Quantstrat mm 40 60 80 100 120 Initialisierung Strategie definieren Bar-by-Bar-Verarbeitung Update-Reporting 40 Initialisieren von Währungen und Instrumenten und Laden von historischen Daten Initialisieren von Portfolio, Konto, Aufträgen, Strategie Hinzufügen von Indikatoren, Konto, Eigenkapital Generierung von Leistungsberichten und Graphen 60 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 42/72 Die Add. indikator-Funktion Indikatoren sind typischerweise standardisierte technische oder statistische Analysen mm 60 100 120 Ausgänge, wie z. B. 40 Bewegungen Raster: Die add. indicator-Funktion args (add. indicator) - Funktion (Strategie), die für die Erfassung der Signale oder Regeln verwendet wird , Name, Argumente, Parameter NULL, Label NULL. Aktiviert TRUE, indexnum NULL, speichert FALSE) NULL 60 Hauptargumente: Strategie Strategie Objektname Name des Indikators (muss eine R-Funktion sein) 80 Argumente, die an die Indikatorfunktion übergeben werden sollen Label-Name, um auf den Indikator zu verweisen Guy Yollin (Copyright 2011 ) Quantitative Handelsstrategien in R quantstrat-I 43/72 Hinzufügen eines Indikators zu einer Strategie mm 40 60 80 100 120 Hinzufügen eines 10-monatigen einfachen gleitenden Durchschnitts R Code: strat summary (strat) Länge Name 1 Assets 0 Indikatoren 1 60 Signale 0 Regeln 1 Einschränkungen 0 init 0 wrapup 0 call 2 Klasse - none-none-none-none-none-none-none-none-noneMode-Zeichen NULL Liste Liste Liste NULL Liste Liste Anruf 80 Guy Yollin (Copyright 2011) Quantitative Trading-Strategien in R Quantstrat-I 44/72 Die add. signals-Funktion quantstrat unterstützt die folgenden Signalarten: sigCrossover-Übergangssignal (gt, lt, eq, gte, 100 lte) mm 40 60 80 sigVergleichvergleichssignal (gt, lt, eq, gte). Lte sigThreshold Schwellwertsignal (gt, lt, eq, gte) lte sigPeak peak / talsignale (peak, bottom) 40 sigFormelsignal berechnet nach einer Formel R Code: Die add. signals Funktion args (add. signal) Name, Argumente, Parameter NULL, Label NULL, 60. enabled TRUE, Indexnum NULL, Speicher FALSE) NULL 120 Hauptargumente: Strategie 80 Strategieobjekt Name Name des Signals (eines der 5 unterstützten Signale) Argumente, die an die Indikatorfunktion Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 45/72 Hinzufügen von Signalen zu einem Strategie-Add-Signal für die Überquerung über SMA 40 addmm-Signal für die Überquerung unter 60 SMA R Code: strat strat summary (strat) Länge 601 name Wert 0 Indikatoren 1 Signale 2 Regeln 1 Einschränkungen 0 800 init wrapup 0 call 2 Guy Yollin (Copyright 80 100 120 Klasse - none-none-none-none-none-none-none2011) Moduszeichen NULL-Liste Liste Liste NULL Die Funktion add. rule fügt einer Strategie eine Regel hinzu 40 60 80 R Code: Die Funktion add. rule function args (add. rule) (add. rule) Strategie, Name, Argumente, Parameter NULL, Label NULL, Typ 40 c (NULL, Risiko, Reihenfolge, Rebalance, Exit, Enter). TRUE, indexnum NULL, path. dep TRUE, Zeitspanne NULL, Speicher FALSE) NULL 100 120 Hauptargumente: 60 Strategiename Argumente Typ 80 Strategieobjektname der Regel (normalerweise RegelSignal) Argumente, die an die Regelfunktion Regelart übergeben werden sollen (Risk, Order, Rebalance, Exit Enter) Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 47/72 Die ruleSignal-Funktion ruleSignal ist die Standardregel für die Erzeugung einer Trade Order auf einem Signal R Code: Die ruleSignal-Funktion args (ruleSignal) Funktion (Daten mktdata, Zeitstempel, sigcol, Sigval, OrderQty 0, Ordertype, orderside NULL, Schwelle NULL, tmult FALSCH ersetzen TRUE, verzögern 1e-04, osFUN osNoOp, pricemethod c (Markt, 40 opside, Hersteller) , TxnFees 0, bevorzugen NULL, sethold FALSE) NULL mm 40 60 80 100 120 Hauptargumente: 60 Daten ein xts-Objekt, das Marktdaten enthält (standardmäßig mktdata) sigcol Spaltenname, um den Signalsignalwertsignalwert zu prüfen Passendes orderqty Quantität für Auftrag oder alle, modied durch osFUN ordertype80 Marktbegrenzung, stoplimit, stoptrailing, Eisberg, orderside lang. Kurz oder NULL. OsFUN-Funktion oder Name der Order Sizing-Funktion (Voreinstellung ist osNoOp) Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 48/72 Regeln hinzufügen zu einer Strategie mm 40 60 80 100 120 Regel hinzufügen, wenn Cl. gt. SMA ist die zutreffende Regel, um zu beenden, wenn Cl. lt. SMA zutreffend ist R-Code: 40 gehen lang, wenn Schließen MA strat exit60 wenn nah strat Zusammenfassung (strat) Länge 401 name assets 0 indicators 1 signals 2 rules 3 constraints 0 600 init wrapup 0 Call 2 Klasse - none-none-none-none-none-none-none-none-noneMode-Zeichen NULL-Liste Liste Liste NULL-Liste Listenaufruf Das Strategie-Objekt enthält: 1 Benutzer Dened-Indikator 80 2 Benutzer dened Signale 2 Benutzer dened Handel Regeln Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 50/72 Grundstrategie Backtesting-Workow für Quantstrat mm 40 60 80 100 120 Initialisierung Strategie definieren Bar-by-Bar-Verarbeitung Update Reporting 40 Initialisieren Sie Währung und Instrumente und laden Sie historische Daten Initialisieren Portfolio, Konto, Aufträge, Strategie Hinzufügen von Indikatoren, Signalen und Regeln Portfoliobewertung Portfolio, Konto, Eigenkapital Generierung von Leistungsberichten und Grafiken 60 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 51/72 Die applyStrategy Die Funktion applyStrategy 40 verwendet die Strategie auf beliebige Marktdaten R Code: Die Funktion applyStrategy args (applyStrategy) (Strategie, Portfolios, mktdata NULL, Parameter NULL, 40. ausführliche TRUE) NULL Hauptargumente: Strategie 60 Ein Objekt vom Typ Strategie-Portfolios Parameter 80 eine Liste von Portfolios, um die Strategie auf die benannte Liste von Parametern anzuwenden, die während der Evaluierung der Strategie angewendet werden sollen Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 52/72 Strategie anwenden R-Code: out Namen (out) 40 60 80 100 120 40 1 qsFaber Namen (outqsFaber) 1 SPY Namen (outqsFaberSPY) 60 1 Indikatoren Signale Regeln Klasse (outqsFaberSPYindicators) 1 xts Zoo 80 Guy Yollin (Copyright 2011) Quantitative Trading Strategies in R Quantstrat-I 53/72 Das mktdata-Objekt mktdata ist eine spezielle Variable, die während der Ausführung von mm applyStrategy erstellt wurde. Es ist40 Zeitreihen-Objekt, das 100 historische Preise enthält, die 60 80 120 Daten sowie die berechneten Indikatoren, Signale und Regeln: R Code: tail (mktdata, - (1: 5), 12) 40 2010-08-31 2010-09-30 2010-10-29 2010-11-30 2010-12-31 2011-01-31 2011-02-28 2011-03-31 2011-04-29 2011-03-31 2011-06-30 2011-04-29 2011-03-28 2011-03-22 2011-03-22 2011-03-23 ​​2011-03-23 ​​2011-03-23 ​​2011-03-23 ​​2011-03-23 ​​2011-03-23 ​​2011-03-23 ​​2011-03-22 2011-03-23 ​​2011-03-23 ​​2011-03-2 2011-07-29 SPY. Adjusted 103,24 112,48 116,78 116,78 124,59 127,49 131,92 131,94 135,76 134,23 131,97 129,33 60 SMA10m 107,7569 108,3360 109,1411 110,3413 111,9953 113,3289 114,9287 117,4512 120,9079 123,5213 126,3944 128,0790 SMA10 Cl. gt. SMA Cl. lt. SMA 107,7569 NA 1 108,3360 1 NA 109.1411 NA NA 110.3413 NA NA 111.9953 NA NA 113.3289 NA NA 114.9287 NA NA 117.4512 NA NA 120.9079 NA NA 123.5213 NA NA 126.3944 NA NA 128.0790 NA NA 80 inspizieren mktdata können in Verständnis Strategie Verarbeitung sehr hilfreich sein und Debuggen von Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 54/72 Grundstrategie Backtesting-Workow für quantstrat mm 40 60 80 100 120 Initialisierung Strategie definieren Bar-by-Bar-Verarbeitung Update Reporting 40 Initialisieren Sie Währung und Instrumente und laden Sie historische Daten Initialisieren Sie Portfolio, Konto, Aufträge , Strategie Hinzufügen von Indikatoren, Signalen und Regeln Strategie auf Portfolio anwenden Portfolio, Konto, Eigenkapital erstellen Leistungsberichte und Graphen generieren 60 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 55/72 update PL mm 40 60 80 100 120 Aktualisierungen eines vollständigen Datumsbereiches sofort aufgerufen werden müssen R Code: 40 updatePortf (Portfolioqs. strategy, Datespaste (::, as. Date (Sys. time ()), sep)) 1 qsFaber updateAcct (nameqs. strategy , Datesindex (SPY)) 60 1 qsFaber-Dummy-DiagrammPosn (qs. strategy, Symbol SPY, Daten 1998: :) Zeichnung (addSMA (n10, col4, on1, lwd2)) 60 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R Quantstrat-I 58/72 Faber / Quanstrat-Systemleistung SPY 140 19980130/20110729 mm 40 60 80 100 120 130 120 115 140 130 120 110 110 105 100 100 90 40 95 90 85 80 80 75 70 70 1000 800 600 400 200 0 1e05 Positionfill 1000 qqqqqqq 1000 800 600 400 200 60 qqqqqq 0 1E05 8e04 6e04 4e04 CumPL 81950,02164 8e04 6e04 4e04 2e04 0E00 1998 Januar 1998 Jul 1998 Januar 1999 1999 Jul 1999 Januar 2000 2000 Jul 2000 Januar 2001 2001 2001 Jul Jan 2002 2002 Jul 2002 Jan 2003 2003 Jul 2003 Jan 2004 2004 Jul 2004 Jan 2005 2005 Jul 2005 Jan 2006 2006 Jul 2006 Jan 2007 2007 Jul 2007 Jan 2008 2008 Jul 2008 Jan 2009 2009 Jul 2009 Jan 2010 2010 Jul 2010 2011 Jan 2011 Jul 2011 80 2e04 0e00 Guy Yollin (Urheberrechtlich geschützte Informationen) ) Quantitative Handelsstrategien in R quantstrat-I 59/72 Transaktionen R-Code: mm 40 60 80 100 120 getTxns (Portfolioqs. strategy, SymbolSPY) Txn. Qty 1997-12-31 0 1999-10-29 1000 40 2000-09- 29 -1000 2002-03-28 1000 2002-04-30 -1000 2003-04-30 1000 2004-08-31 -1000 2004-09-3060 1000 2007-12-31 -1000 2009-06-30 1000 2010- 06-30 -1000 2010-07-30 1000 2010-08-31 -1000 2010-09-3080 1000 Txn. Price Txn. Fees Txn. Value Txn. Avg. Cost Net. Txn. Realized. PL 0.00000 0 0.00 0.00000 0.000 112,38352 0 112.383,52 112,38352 0.000 118,98858 0 -118.988,58 118,98858 6605,062 96,28988 0 96.289,88 96,28988 0.000 90,69007 0 -90.690,07 90,69007 -5.599,813 78,59565 0 78.595,65 78,59565 0.000 96,86532 0 -96.865,32 96,86532 18.269,669 97,83755 0 97.837,55 97,83755 0.000 136,15069 0 -136.150,69 136,15069 38.313,139 88,81119 0 88.811,19 88,81119 0.000 101,18979 0 -101.189,79 101,18979 12.378,598 108,10113 0 108.101,13 108,10113 0.000 103,23868 0 -103.238,68 103,23868 -4.862,443 112,48419 0 112.484,19 112,48419 0.000 Guy Yollin (Copyright 2011) Quantitative Trading Strategies in R quantstrat-I 60/72 Kontur mm 40 60 80 100 120 1 Die blotter Paket 40 2 Das Quantstrat-Paket 60 3 Leistungsanalyse 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 61/72 Das Portfolio des Blotter-Portfolios R Code: mm 40 60 80 100 120 dasPortfolio getPortfolio (b. strategy) Namen thePortfolio) 1 Symbole Zusammenfassung Namen (thePortfoliosymbols) 40 1 SPY Namen (thePortfoliosymbolsSPY) 1 TXN posPL posPL. USD 60 Namen (thePortfoliosummary) 1 Long. Value 5 Realized. PL 9 Net. Trading. PL ​​Short. Value Unrealized. PL Net. Value Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 62/72 Plot der Portfoliozusammenfassung Zeitreihen Objekt 2000 0,4 0,0 0,4 100000 2005 2010 mm Long. Value 40 60 80 Short. Value 100 120 0 Net. Value 100000 Gross. Value 40 Realisiert. PL 0 0 100000 Nicht realisiert. PL 0 0 20000 10000 0 10000 10000 0 10000 Gross. Trading. PL ​​0.4 0.0 0.440000 Txn. Fees 60 Net. Trading. PL ​​80 2000 2005 2010 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 63/72 Das Löschkontoobjekt R Code: mm 40 60 80 100 120 theAccount getAccount (b. strategy) Namen (theAccount) 1 Portfolios Zusammenfassung Namen (theAccountportfolios) 40 1 bFaber Namen (theAccountportfoliosbFaber) 1 Long. Value 5 Realized. PL 60 9 Net. Trading. PL ​​Short. Value Unrealized. PL Net. Value Gross. Wert Gross. Trading. PL ​​Txn. Fees Namen (theAccountsummary) 1 Zugänge 5 Int. Income 9 Advisory. Fees 80 Entnahmen Realized. PL Gross. Trading. PL ​​Txn. Fees Net. Performance End. Eq Unrealized. PL Net. Trading. PL Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 64/72 Handelsstatistiken mm R Kode: (tstats Bibliothek (PerformanceAnalytics) rets Schwanz (Rets, 12) SPY 2010-08-3140 -4.862443d-03 2010- 09-30 0,000000e00 2010-10-29 4.297123d-03 2010-11-30 0.000000e00 2010-12-31 7.807092d-03 2011-01-31 2.902940d-03 2011-02-28604.428709d-03 2011-03 -31 1.584192d-05 2011-04-29 3.821053d-03 2011-05-31 -1.522454d-03 2011-06-30 -2.264505d-03 2011-07-29 -2.640000d-03 Diagramme. PerformanceSummary (Hinweise , Coloret bluefocus) 80 100 120 80 Guy Yollin (Copyright 2011) Quantitative Handelsstrategien in R quantstrat-I 67/72 Kumulierte Rendite und Wertentwicklung SPY Wertentwicklung 0,10 mm 40 60 80 100 120 Kumulierte Rendite 0,04 0,06 0,08 40 Monatliche Rendite 0,000 0,005 0,010 0,00 0.02 60 0.000 0.010 Drawdown 0.010 0.020 80 Dez 97 Jul 98 Jul 99 Jul 00 Jul 01 Jul 02 Jul 03 Jul 04 Jul 05 Jul 06 Jul 07 Jul 08 Jul 09 Jul 10 Jul 11 ​​Datum Guy Yollin (Urheberrecht 2011) Quantitative Handelsstrategien in R Quantstrat-I 68/72 Rückgabewerte berechnen mm 40 60 80 100 120 R Code: PA1.tab PA2.tab tab1 res. tab1 res. tab2 res. tab3 tab2Lecture 1 8211 Eine Einführung in R Was ist RR ist eine Sprache und Umgebung für Statistische Berechnungen und Grafiken. Es enthält eine effektive Datenhandhabung und Lagerung, die eine Reihe von Operatoren für Berechnungen auf Arrays, Matrizen, Daten-Frames und Listen bietet. Die Basisinstallation von R kommt mit einer großen Sammlung von Werkzeugen für Datenanalyse und Datenvisualisierung. Die Sprache selbst unterstützt bedingte Anweisungen, Schleifen, Funktionen, Klassen und die meisten anderen Konstrukte, die VBA - und C-Benutzer kennen. R unterstützt die objektorientierten, imperativen und funktionalen Programmierstile. Die Vielzahl der beigetragenen Pakete, eine solide Benutzerbasis und eine starke Open-Source-Community sind einige der wichtigsten Stärken des R-Frameworks. Das R-System ist in 2 Teile unterteilt: Das Basispaket, das von CRAN heruntergeladen werden kann. Alles andere. Das Basis-R-Paket enthält unter anderem den notwendigen Code, der zum Ausführen von R. erforderlich ist. Viele nützliche Funktionen und Bibliotheken sind auch Teil dieser Basisinstallation. Einige davon sind: utils, stats, datasets, graphics, grDevices und methods. Das bedeutet für Sie, dass Sie viel mit der plain vanilla R-Installation erfahren können. Die Geschichte von R Die S-Sprache (R ist ein Dialekt der S-Sprache) wurde von John Chambers und anderen in Bell Labs 1976 entwickelt. It started off as a collection of Fortran libraries and was used for internal Bell Lab statistical analysis. The early versions of the language did not contain functions for statistical modeling. In 1988 the system was rewritten in C (version 3 of the language). In 1998, version 4 of the language was released. In 1993 Bell Labs gave StatSci (now Insightful Corp.) an exclusive license to develop and sell the S language. The S language itself has not changed dramatically since 1998. In 1991 Ross Ihaka and Robert Gentleman developed the R language. The first announcement of R to the public occurred in 1993. In 1995, Martin Machler convinced Ross and Robert to use the GNU General Public License to make R free software. In 1996 public mailing lists were created (R-help and R-devel). In 1997 the R Core Group was formed (containing some people associated with the S-PLUS framework). The core group currently controls the source code for R. The first version R 1.0.0 was released in 2000. Installing R The installation of the R environment on a Windows, Linux or Mac machine is fairly simple. Here are the steps to follow for the Windows version: Navigate to cran. r-project. org/ Click on the appropriate link for your system. For a Windows machine, select and download the base installation. Select all the default options. A desktop icon will appear once the installation is successful. The following display appears when you click on the R icon. Interacting with the Console There are at least three ways to enter commands in R. The code can either be typed directly into the console, sourced from a. R file or pasted verbatim from a text file. Customization There are a number of customizations that can be performed on the R console itself. For font, color and other cosmetic changes, navigate to the GUI Preferences menu: Edit - GUI Preferences Another useful modification is to enable the sdi option for child windows. Whenever you create a plot or bring up another window within the existing R console, the child-window is confined within the main-window. In order to disable this behavior, do the following: Right-click on the R shortcut icon on the desk - top and select Properties Change the Target directory text from 82208230R-2.15.1binRgui. exe8221 to 82208230R-2.15.1binRgui. exe8221 8211sdi The Basics One can think of R as a glorified calculator. All the usual mathematical operations can be directly entered into the console. Operations such as addition, subtraction, multiplication, division and exponentiation are referenced by the usual symbols , -, /, and . More advanced mathematical operations can be performed by invoking specific functions within R. Basic Math

No comments:

Post a Comment