Tuesday 6 June 2017

Backtesting Trading Strategien In R


Ich bin sehr neu bei R und versuche, eine Strategie, die bereits in WealthLab programmiert wurde, zu backtest. Mehrere Sachen, die ich nicht verstehe (und es funktioniert nicht offensichtlich :) Ich bekomme nicht die Close Preise schön in einen Vektor. Oder irgendeine Art von Vektor, aber es beginnt mit Struktur und ich verstehe nicht wirklich, was diese Funktion tut. Das ist, warum meine Serie, 1 Anruf wahrscheinlich nicht funktioniert. N-lt-nrow (Serie) funktioniert auch nicht, aber ich brauche das für die Loop Also ich vermute, wenn ich diese 2 Fragen beantwortet meine Strategie sollte funktionieren. Ich bin sehr dankbar für jede Hilfe .. R scheint ziemlich kompliziert auch mit Programmier-Erfahrung in anderen Sprachen yeah Ich Art von kopiert einige Zeilen Code aus diesem Tutorial und don39t wirklich verstehen, diese Zeile. Ich meine, Serie, ich dachte, ich würde die Funktion f auf quotcolumnquot 1 der Serie anwenden. Aber da diese Serie ist etwas komplett mit Struktur etc. es doesn39t Arbeit. I39m reden über dieses Tutorial: r-bloggersbacktesting-a-Trading-Strategie ndash MichiZH Jun 6 13 bei 14: 22Backtesting: Interpretation The Past Backtesting ist ein wichtiger Bestandteil der effektiven Handelssystem-Entwicklung. Es wird erreicht durch Rekonstruktion, mit historischen Daten, Trades, die in der Vergangenheit mit Regeln durch eine gegebene Strategie definiert aufgetreten wäre. Das Ergebnis bietet Statistiken, die verwendet werden können, um die Wirksamkeit der Strategie zu messen. Mit diesen Daten können Händler ihre Strategien optimieren und verbessern, technische oder theoretische Mängel finden und Vertrauen in ihre Strategie gewinnen, bevor sie sie auf die realen Märkte anwenden. Die zugrundeliegende Theorie ist, dass jede Strategie, die in der Vergangenheit gut funktionierte, in der Zukunft gut funktionieren wird, und umgekehrt wird jede Strategie, die in der Vergangenheit schlecht geführt hat, wahrscheinlich in der Zukunft schlecht sein. Dieser Artikel nimmt einen Blick auf, welche Anwendungen verwendet werden, um Backtest, welche Art von Daten erhalten wird, und wie man es verwenden Die Daten und die Tools Backtesting kann viel wertvolle statistische Rückmeldung über ein bestimmtes System. Einige universelle Backtesting-Statistiken beinhalten: Nettogewinn oder Verlust - Netto-Prozentsatz Gewinn oder Verlust. Zeitrahmen - Vergangene Termine, in denen ein Test durchgeführt wurde. Universum - Aktien, die in den Backtest aufgenommen wurden. Volatilitätsmaßnahmen - Maximaler Prozentsatz nach oben und nach unten. Mittelwerte - Prozentualer durchschnittlicher Gewinn und durchschnittlicher Verlust, durchschnittliche Stäbe gehalten. Exposure - Prozentsatz des investierten Kapitals (oder dem Markt ausgesetzt). Verhältnisse - Gewinne-Verluste-Verhältnis. Annualisierte Rendite - Prozentuale Rendite über ein Jahr. Risikoadjustierte Rendite - Prozentuale Rendite als Funktion des Risikos In der Regel wird Backtesting-Software haben zwei Bildschirme, die wichtig sind. Der erste erlaubt dem Händler, die Einstellungen für das Backtesting anzupassen. Diese Anpassungen beinhalten alles von der Zeit bis zur Provisionskosten. Hier ist ein Beispiel für einen solchen Bildschirm in AmiBroker: Der zweite Bildschirm ist der eigentliche Backtesting Ergebnis Bericht. Hier finden Sie alle oben genannten Statistiken. Auch hier ist ein Beispiel für diesen Bildschirm in AmiBroker: Im Allgemeinen enthält die meisten Trading-Software ähnliche Elemente. Einige High-End-Software-Programme enthalten auch zusätzliche Funktionalität, um automatische Positionsabmessung, Optimierung und andere erweiterte Funktionen durchzuführen. Die 10 Gebote Es gibt viele Faktoren, die Händler darauf achten, wenn sie Backtesting Handelsstrategien sind. Hier ist eine Liste der 10 wichtigsten Dinge zu erinnern, während Backtesting: Berücksichtigen Sie die breite Markttrends in der Zeitrahmen, in dem eine gegebene Strategie getestet wurde. Zum Beispiel, wenn eine Strategie wurde nur von 1999-2000 zurückgestellt, kann es nicht gut in einem Bärenmarkt. Es ist oft eine gute Idee, über einen langen Zeitrahmen zu backtest, der verschiedene Arten von Marktbedingungen umfasst. Berücksichtigen Sie das Universum, in dem das Backtesting aufgetreten ist. Zum Beispiel, wenn ein breites Marktsystem mit einem Universum aus Tech-Aktien getestet wird, kann es nicht gut in verschiedenen Sektoren zu tun. Grundsätzlich, wenn eine Strategie auf ein bestimmtes Genre der Bestände ausgerichtet ist, beschränken Sie das Universum auf dieses Genre, aber in allen anderen Fällen ein großes Universum für Testzwecke aufrecht zu erhalten. Volatilitätsmaßnahmen sind bei der Entwicklung eines Handelssystems äußerst wichtig. Dies gilt insbesondere für Leveraged-Konten, die Margin-Anrufe unterworfen werden, wenn ihr Eigenkapital unter einen bestimmten Punkt fällt. Händler sollten versuchen, die Volatilität niedrig zu halten, um das Risiko zu reduzieren und einen leichteren Übergang in und aus einer bestimmten Aktie zu ermöglichen. Die durchschnittliche Anzahl der gehaltenen Stäbe ist auch sehr wichtig, um bei der Entwicklung eines Handelssystems zu sehen. Obwohl die meisten Backtesting-Software Provisionskosten in den endgültigen Berechnungen enthält, bedeutet das nicht, dass Sie diese Statistik ignorieren sollten. Wenn möglich, kann die Erhöhung der durchschnittlichen Anzahl der gehaltenen Bars die Provisionskosten senken und die Gesamtrendite verbessern. Belichtung ist ein zweischneidiges Schwert. Eine erhöhte Exposition kann zu höheren Gewinnen oder höheren Verlusten führen, während eine verminderte Exposition niedrigere Gewinne oder geringere Verluste aufweist. Allerdings ist es im Allgemeinen eine gute Idee, die Exposition unter 70 zu halten, um das Risiko zu reduzieren und einen leichteren Übergang in und aus einer bestimmten Aktie zu ermöglichen. Die durchschnittliche Ertragsstatistik, kombiniert mit dem Gewinn-Verlust-Verhältnis, kann für die Bestimmung der optimalen Positionsbestimmung und des Geldmanagements mit Techniken wie dem Kelly Criterion nützlich sein. (Siehe Geldmanagement mit dem Kelly Criterion.) Händler können größere Positionen einnehmen und die Provisionskosten senken, indem sie ihre durchschnittlichen Gewinne erhöhen und ihr Gewinn-Verlust-Verhältnis erhöhen. Die annualisierte Rendite ist wichtig, weil sie als Instrument zur Benchmark eines Systemrenditen gegen andere Anlageorte verwendet wird. Es ist wichtig, nicht nur die Gesamtrendite zu betrachten, sondern auch das erhöhte oder verminderte Risiko zu berücksichtigen. Dies geschieht durch die risikoadjustierte Rendite, die für verschiedene Risikofaktoren verantwortlich ist. Bevor ein Handelssystem verabschiedet wird, muss es alle anderen Anlagegeschäfte gleich oder weniger gefährden. Backtesting Anpassung ist extrem wichtig. Viele Backtesting-Anwendungen haben Input für Provisionsbeträge, runde (oder gebrochene) Losgrößen, Tickgrößen, Margin-Anforderungen, Zinssätze, Schlupfannahmen, Positionsgrößenregeln, Gleichbezugsregelungen, (nachlaufende) Stopp-Einstellungen und vieles mehr. Sie erhalten die genauesten Backtesting-Ergebnisse, ich bin wichtig, um diese Einstellungen zu stimmen, um den Makler nachzuahmen, der verwendet wird, wenn das System in Betrieb geht. Backtesting kann manchmal zu etwas bekannt als Überoptimierung führen. Dies ist ein Zustand, in dem die Leistungsergebnisse so weit in die Vergangenheit abgestimmt sind, dass sie in der Zukunft nicht mehr so ​​genau sind. Es ist in der Regel eine gute Idee, Regeln zu implementieren, die für alle Aktien oder einen ausgewählten Satz von zielgerichteten Aktien gelten und nicht so weit optimiert sind, dass die Regeln vom Schöpfer nicht mehr verständlich sind. Backtesting ist nicht immer der genaueste Weg, um die Effektivität eines bestimmten Handelssystems abzuschätzen. Manchmal laufen Strategien, die in der Vergangenheit gut verstanden haben, in der Gegenwart nicht gut. Die Wertentwicklung in der Vergangenheit ist kein Hinweis auf zukünftige Ergebnisse. Achten Sie darauf, Papierhandel ein System, das erfolgreich zurückgezählt wurde, bevor Sie live gehen, um sicherzustellen, dass die Strategie noch in der Praxis gilt. Schlussfolgerung Backtesting ist einer der wichtigsten Aspekte der Entwicklung eines Handelssystems. Wenn es richtig erstellt und interpretiert wird, kann es den Händlern helfen, ihre Strategien zu optimieren und zu verbessern, technische oder theoretische Fehler zu finden sowie Vertrauen in ihre Strategie zu gewinnen, bevor sie sie auf die realen Weltmärkte anwenden. Resources Tradecision (Tradecision) - High-End Trading System Entwicklung AmiBroker (Amibroker) - Budget Trading System Entwicklung. Eine Art von Vergütungsstruktur, die Hedge Fondsmanager in der Regel beschäftigen, in welchem ​​Teil der Vergütung Leistung basiert ist. Ein Schutz gegen den Einkommensverlust, der sich ergeben würde, wenn der Versicherte verstorben wäre. Der benannte Begünstigte erhält den. Ein Maß für die Beziehung zwischen einer Veränderung der Menge, die von einem bestimmten Gut gefordert wird, und eine Änderung ihres Preises. Preis. Der Gesamtdollarmarktwert aller ausstehenden Aktien der Gesellschaft039s. Die Marktkapitalisierung erfolgt durch Multiplikation. Frexit kurz für quotFrench exitquot ist ein französischer Spinoff des Begriffs Brexit, der entstand, als das Vereinigte Königreich stimmte. Ein Auftrag mit einem Makler, der die Merkmale der Stop-Order mit denen einer Limit-Order kombiniert. Eine Stop-Limit-Order wird. Backtesting eine einfache Börsenhandel Strategie Hinweis: Dieser Beitrag ist nicht finanzielle Beratung Dies ist nur eine unterhaltsame Art und Weise zu erkunden einige der Fähigkeiten R hat für den Import und die Manipulation von Daten. Ich habe vor kurzem einen Beitrag auf ETF Prophet gelesen, der eine interessante Aktienhandelsstrategie in Excel erforschte. Die Strategie ist einfach: Finden Sie den Höhepunkt der Aktie über die letzten 200 Tage, und zählen Sie die Anzahl der Tage, die seit diesem hohen verstrichen sind. Wenn es mehr als 100 Tage, besitzen die Aktie. Wenn es mehr als 100 Tage dauert, ist es nicht so. Diese Strategie ist sehr einfach, aber es gibt einige beeindruckende Ergebnisse. (Beachten Sie jedoch, dass dieses Beispiel Daten verwendet, die nicht von Splits oder Dividenden angepasst wurden und andere Fehler enthalten könnten. Darüber hinaus ignorieren wir die Handelskosten und Ausführungsverzögerungen, die beide die Strategieleistung beeinflussen.) Die Implementierung dieser Strategie in R ist einfach, Und bietet zahlreiche Vorteile gegenüber Excel, die primäre davon ist, dass das Ziehen Börsen-Daten in R ist einfach, und wir können diese Strategie auf eine breite Palette von Indizes mit relativ geringem Aufwand zu testen. Zuerst laden wir Daten für GSPC mit quantmod herunter. (GSPC steht für den SampP 500 Index). Als nächstes konstruieren wir eine Funktion zur Berechnung der Anzahl der Tage seit dem n-Tage-Hoch in einer Zeitreihe und eine Funktion zur Umsetzung unserer Handelsstrategie. Die letztere Funktion dauert 2 Parameter: die n-Tage hoch, die du verwenden möchtest, und die Anzahl der Tage, die so hoch sind, dass du die Aktie halten wirst. Das Beispiel ist 200 und 100, aber man könnte leicht ändern, um die 500-Tage-Hoch und sehen, was passiert, wenn Sie die Aktie halten 300 Tage nach dem vor dem Rettung. Da diese Funktion parametriert ist, können wir viele andere Versionen unserer Strategie leicht testen. Wir legen den Anfang unserer Strategie mit Nullen fest, so dass es die gleiche Länge wie unsere Eingangsdaten haben wird. (Wenn Sie eine ausführlichere Erläuterung der daySinceHigh-Funktion wünschen, sehen Sie die Diskussion über Cross-validated). Wir multiplizieren unsere Position (0,1) Vektor durch die Renditen aus dem Index, um unsere Strategie8217s Renditen zu erhalten. Jetzt konstruieren wir eine Funktion, um einige Statistiken über eine Handelsstrategie zurückzugeben und unsere Strategie mit der Benchmark zu vergleichen. Etwas willkürlich hat ich mich entschlossen, die kumulative Rendite zu betrachten, durchschnittliche jährliche Rendite, Sharpe Ratio, Gewinne, mittlere jährliche Volatilität, max. Drawdown und max. Andere Stats wäre einfach zu implementieren. Wie Sie sehen können, verhält sich diese Strategie günstig mit dem Standard-8220buy-and-hold8221-Ansatz. Schließlich testen wir unsere Strategie auf 3 weitere Indizes: FTSE, die Irland und Großbritannien, den Dow Jones Industrial Index, repräsentiert. Die bis 1896 zurückgeht, und die N225. Was Japan darstellt. I8217ve funktionalisiert den gesamten Prozess, so können Sie jede neue Strategie mit 1 Zeile Code testen: Verpassen Sie nie ein Update Abonnieren Sie R-Blogger, um E-Mails mit den neuesten R-Posts zu erhalten. (Du wirst diese Nachricht nicht mehr sehen.)

No comments:

Post a Comment