Geschätzte Lesezeit: 7 min

PrescienTrader enthält Funktionen für mehrere Zeiträume, die in die leistungsstarken Analyse- und Backtesting-Funktionen von AmiBroker integriert sind. Es enthält auch AFL-Skripte, die die Verwendung der Analysefunktionen veranschaulichen. Für die Analysefunktionen ist ein PrescientAPI Professional-Abonnement erforderlich.

Das folgende Video zeigt, wie Sie eine Exploration einrichten und ausführen. Bitte schauen Sie sich das Video an und kehren Sie dann zu diesem Artikel zurück, um mit dem Tutorial fortzufahren.

Miniaturansicht

Erkundung

Wenn Sie eine Exploration mit dem mitgelieferten PrescienTrader-Backtesting-Skript ausführen, durchsucht AmiBroker Ihre angegebene Instrumentenliste und Ihren angegebenen Datumsbereich. Es wird eine Zeile für jede Kombination eines Instruments und eines Datums generiert. Im obigen Beispiel analysieren wir nur ein einzelnes Instrument (CHF / JPY) für den Zeitraum vom 1. Oktober bis 31. Dezember 2018.

Die Skripte geben die folgenden Explorationsspalten aus:

  • Ticker-Symbol
  • Terminzeit
  • Öffnen, Hoch, Niedrig, Schließen, Volumen, Open Interest
  • Gerettet - Diese Spalte wird für jede Zeile mit gespeicherten Parametereinstellungen gelb hervorgehoben. Wenn Sie die Parameter in PrescienTrader speichern, werden die Parameter nur für das ausgewählte Instrument und den ausgewählten Zeitrahmen gespeichert. Auf diese Weise können Sie benutzerdefinierte Parametereinstellungen für jedes Instrument und jeden Zeitrahmen verwenden. Wenn Sie eine Erkundung durchführen, wendet PrescienTrader automatisch alle benutzerdefinierten Parametereinstellungen an. Die gelbe Markierung in der Spalte "Gespeichert" soll Sie daran erinnern, dass in der Zeile gespeicherte Einstellungen verwendet werden und nicht die Einstellungen, die Sie im Fenster "Parameter" eingegeben haben.
  • PL Steigung - Dies zeigt die Steigung des Prescient Line-Trends an. Positive Steigungen prognostizieren einen Aufwärtstrend, während negative Steigungen einen Abwärtstrend prognostizieren.
  • FLD Score - Die Summe der FLDs für alle gültigen Zyklen multipliziert mit der Stärke oder Amplitude jedes Zyklus, abhängig von Ihrer PL-Basiseinstellung. Positive Werte deuten darauf hin, dass sich der Markt in einem zyklischen Aufwärtstrend befindet. Negative Werte deuten darauf hin, dass sich der Markt in einem zyklischen Abwärtstrend befindet.
  • Trendleiste - Die relative Balkennummer innerhalb des aktuell vorhergesagten Trends. Der erste Balken in einem Trend ist der Balken Null.
  • Trendbalken - Die Gesamtzahl der Balken im aktuellen prognostizierten Trend.
  • Trend Pct - Der Fertigstellungsgrad für den aktuell vorhergesagten Trend. Wenn beispielsweise die Trendleiste = 5 und die Trendleiste = 10 ist, lautet der Trend-Pkt 50%. Beachten Sie, dass Trend Pct niemals 100% erreicht, da dies bedeuten würde, dass ein neuer Trend begonnen hat. An der Überlappungsstelle zwischen dem alten und dem neuen Trend wird Trend Pct 0% sein. Neben der numerischen Anzeige wird in dieser Spalte auch ein Balkendiagramm angezeigt, das im Verlauf des Trends von grün nach rot wechselt.
  • Aktion - Dies ist das Signal, Buy / Sell / Short / Cover, für die aktuelle Zeile. Die aus den enthaltenen Skripten generierten Signale basieren einfach auf Trend Slope. Wenn die Trendsteigung positiv ist, wird ein Kaufsignal angezeigt, und wenn die Trendsteigung negativ ist, wird ein Kurzschlusssignal angezeigt. Dies ist als sehr einfach gedacht Beispiel wie Sie beginnen könnten, ein Handelssystem mit den PrescienTrader-Indikatoren aufzubauen. Verwenden Sie diese Beispielsignale NICHT für den Live-Handel, da Sie höchstwahrscheinlich Geld verlieren werden! Die Idee ist, Ihre eigenen Handelssysteme unter Verwendung unserer Indikatoren und möglicherweise anderer Indikatoren zu entwickeln und das System anschließend ausgiebig zu testen. Sobald Sie über ein gültiges Backtesting-System verfügen, können Sie dieses System in die Spalte "Aktion" einfügen, um Ihre Handelssignale anzuzeigen.

Backtesting

Um einen Backtest oder eine Optimierung auszuführen, laden Sie zunächst das AFL-Skript PrescienTrader Backtesting. Wir empfehlen Ihnen Mach eine Kopie des Skripts, anstatt das ursprüngliche Skript zu ändern. Unsere Analysefunktionen generieren Ausgaben für Explorationsspalten und erstellen auch AFL-Arrays und -Matrizen, die die Ergebnisse enthalten. Wenn Sie einen Backtest oder eine Optimierung ausführen, verwenden Sie die generierten AFL-Arrays und -Matrizen, die Folgendes umfassen:

  • ptStaticPL
  • ptStaticPLSlope
  • ptStaticFLDScore
  • ptStaticTrendBar
  • ptStaticTrendBars
  • ptStaticTrendPct
  • ptStaticFrequences (Matrix)
  • ptStaticSlopes (Matrix)
  • ptStaticFLDPrices (Matrix)

Wenn Sie eine Analyse für mehrere Zeiträume ausführen, erstellen die Funktionen für jeden Zeitrahmen einen separaten Satz von Arrays und Matrizen. Die Namen sind die gleichen wie oben, außer dass jeder Name ein HTPx-Suffix hat, wobei x den höheren Zeitraumindex darstellt. Beispielsweise werden die Arrays und Matrizen für den ersten höheren Zeitraum mit ptStaticPLHTP1, ptStaticPLSlopeHTP1 usw. bezeichnet. Die Arrays und Matrizen für den zweiten höheren Zeitraum werden mit ptStaticPLHTP2, ptStaticPLSlopeHTP2 usw. bezeichnet.

Der AmiBroker Backtester ist extrem leistungsstark. Es unterstützt echtes Portfolio-Backtesting, Walk-Forward-Tests, Monte-Carlo-Simulationen, Tests mit mehreren Zeitrahmen, Pyramiden und Skalierungen, mehrere Währungen und mehr. All diese Funktionen und Leistungen stehen Ihnen für Backtesting und die Ausgabe von PrescienTrader zur Verfügung. Es würde den Rahmen dieses Artikels sprengen, die Details des Backtesting in AmiBroker zu diskutieren. Lesen Sie dazu am besten die AmiBroker-Dokumentation.

Parameter und Parametervariablen

Beim Ausführen einer Analyse verwendet PrescienTrader die im Parameterfenster angegebenen Parameterwerte. Wenn Sie jedoch zuvor die Geräteeinstellungen für den aktuellen Markt und den aktuellen Zeitraum gespeichert haben, wird die Gespeicherte Einstellungen überschreiben die im Fenster Parameter angezeigten Einstellungen. Auf diese Weise können Sie eine Portfolioanalyse mit unterschiedlichen Parameterwerten für jedes Instrument im Portfolio durchführen. Wenn Sie das Fenster Parameter anzeigen, werden die zuletzt eingegebenen Einstellungen angezeigt, bei denen es sich möglicherweise nicht unbedingt um die gespeicherten Einstellungen handelt. Drücke den Alles zurücksetzen Taste, um die gespeicherten Geräteeinstellungen anzuzeigen.

Darüber hinaus können Sie Standardeinstellungen speichern. Im Gegensatz zu gespeicherten Geräteeinstellungen gelten gespeicherte Standardeinstellungen NICHT Die angezeigten Einstellungen überschreiben. Auf diese Weise können Sie die Tatsache nutzen, dass AmiBroker sich automatisch die zuletzt eingegebenen Einstellungen merkt. Wenn Sie also bestimmte Einstellungen mehrmals testen, müssen Sie sie nicht jedes Mal neu eingeben. Sie können jedoch jederzeit zu den gespeicherten Standardeinstellungen zurückkehren, indem Sie auf klicken Alles zurücksetzen Taste. Denk daran, dass Gespeicherte Geräteeinstellungen haben Vorrang vor gespeicherten StandardeinstellungenAlso, wenn Sie klicken Alles zurücksetzen Wenn Ihre Standardeinstellungen nicht angezeigt werden, haben Sie die Geräteeinstellungen für das aktuell angezeigte Instrument und den Zeitrahmen gespeichert.

Schließlich können Sie die meisten Parameter überschreiben, indem Sie eine AFL-Variable festlegen, die jedem Parameter entspricht. Die verfügbaren Variablen umfassen:

  • ptPolarity (0 = positiv, 1 = negativ)
  • ptPLBasis (0 = Amplitude, 1 = Stärke)
  • ptLookbackRange
  • ptMinFrequency
  • ptMaxFrequency
  • ptHarmonicFilter
  • ptMinConfidence
  • ptBestXCycles

Jede Variable weist auch höhere Zeitperiodenvariationen für die Analyse mehrerer Zeitrahmen auf. Um eine Variable für einen höheren Zeitraum festzulegen, hängen Sie HTP1, HTP2, HTP3 usw. an den Variablennamen an. Zum Beispiel:

  • ptMinFrequencyHTP1
  • ptMaxFrequencyHTP2
  • ptLookbackRangeHTP3
  • ptHarmonicFilterHTP2
  • ptMinConfidenceHTP1
  • ptPLBasisHTP4

Variablen überschreiben immer sowohl die Einstellungen des Parameterfensters als auch alle gespeicherten Einstellungen. Wenn Sie in AFL eine Parametervariable festlegen, wird der entsprechende Parameter aus dem Parameterfenster ausgeblendet. Sie müssen alle Ihre Parametervariablen VOR dem Aufruf von festlegen Vorausschauende Analyse oder PrescientAnalysisPrepare Funktionen.

Single-Thread vs Multi-Threaded-Analyse

PrescienTrader unterstützt sowohl Single-Thread- als auch Multi-Thread-Analysen. Die Single-Thread-Funktion erfordert nur eine einzige Codezeile, sodass Sie schnell Erkundungen oder einfache Backtests durchführen können. Der Nachteil ist, dass die Analyse in einem einzelnen Thread ausgeführt wird, sodass jeweils nur eine Zeile analysiert werden kann. Wenn Ihre Analyse jedoch nur aus einigen hundert Zeilen besteht, ist der Zeitunterschied vernachlässigbar. In diesem Szenario dauert das Schreiben des zusätzlichen Codes für eine Multithread-Analyse länger als die Zeit, die durch die Ausführung eingespart wird.

PrescienTrader Backtester Script - Single-Thread-Abschnitt

Das Beispielanalyseskript wird aufgerufen PrescienTrader Backtester. Wenn Sie dieses Skript anzeigen, sehen Sie, dass es einen Abschnitt mit einem Thread und einen Abschnitt mit mehreren Threads enthält, zwischen denen Sie mithilfe einer Parametereinstellung wechseln können. Der Abschnitt zur Einzelfadenanalyse enthält eine einzelne Codezeile:

PTBacktest ();

Das PTBacktest Die Funktion akzeptiert keine Parameter, da Sie alle Parameter im Parameterfenster konfigurieren. Wenn es ausgeführt wird, erstellt es eine API-Anforderung, sendet die Anforderung an PrescientAPI, analysiert die Antwort, gibt die Ergebnisse an die Explorationsspalten aus und generiert die oben beschriebenen AFL-Arrays.

Um eine Analyse mit mehreren Zeitrahmen durchzuführen, rufen Sie einfach die PrescientAnalysis-Funktion mehrmals auf. Wenn Sie beispielsweise den Basiszeitraum und zwei höhere Zeiträume analysieren möchten, verwenden Sie den folgenden Code:

PTBacktest (); PTBacktest (); PTBacktest ();

Jede Instanz der Funktion erstellt einen anderen Zeitrahmen im Parameterfenster. Im obigen Beispiel enthält Ihr Parameterfenster Einstellungen für den Basiszeitraum HTP1 und HTP2. Verwechseln Sie Multithreading nicht mit Multi-Timeframe. Dies sind zwei völlig unterschiedliche Konzepte. Multithreading bezieht sich auf das gleichzeitige Ausführen mehrerer Analysen, z. B. das Analysieren eines Instrumentenportfolios. Multi-Zeitrahmen bezieht sich auf die Analyse jedes Instruments in mehr als einem Zeitrahmen. Sie können beispielsweise den täglichen, wöchentlichen und monatlichen Zeitrahmen des S & P 500 analysieren. In diesem Beispiel würden Sie auch von der Ausführung im Multithread-Modus profitieren, da alle drei Zeitrahmen gleichzeitig analysiert würden. Sie können jedoch eine Analyse mit mehreren Zeitrahmen im Single-Thread-Modus ausführen. In diesem Fall werden die Zeitrahmen nacheinander analysiert.

PrescienTrader-Analyseskript - Abschnitt mit mehreren Threads

Der Multithread-Abschnitt ist komplizierter als das Single-Thread-Skript und erfordert mehrere Codezeilen:

postVars = PTBacktestPrepare ();
if (StrLen (postVars)> 0) {
    ih = InternetPostRequest ("https://api.prescientrading.com", postVars);
    if (ih) {
        Antwort = "";
        while ((line = InternetReadString (ih))! = "")
            Antwort + = Zeile;
        PTBacktestExecute (Antwort);
        InternetClose (ih);
    }
    sonst {
        msg = "Keine Antwort von der API - Mögliches Zeitlimit oder Internetverbindungsproblem - Warten auf 60 Sekunden";
        _TRACE (msg);
        PTLogToFile (msg);
        PTWait (60);
    }
}

Der Grund für den zusätzlichen Code ist, dass AmiBroker kein Multithreading in Plugins wie PrescienTrader unterstützt. Anstatt also den gesamten Analysevorgang in einer einzigen Plug-in-Funktion durchzuführen, verarbeitet das Plug-in alles außer der API-Anforderung, die den zeitaufwändigsten Teil darstellt und daher den größten Nutzen aus der Ausführung in mehreren Threads zieht.

Lassen Sie uns dies Schritt für Schritt aufschlüsseln ...

  1. Im ersten Schritt rufen wir PTBacktestPrepare auf und weisen das Ergebnis der Variablen postVars zu. Diese Funktion verwendet die im Fenster Parameter definierten Parameter, um die Daten im richtigen Format für eine API-Anforderung zu generieren.
  2. Im zweiten Schritt stellen wir die API-Anforderung mithilfe der Funktionen InternetPostRequest und InternetReadString. Da es mit einem Remote-Server interagiert, ist dies der langsamste Teil des Prozesses und profitiert daher am meisten von der Ausführung in mehreren Threads.
  3. Im letzten Schritt führen wir PTBacktestExecute für die von der API zurückgegebenen Daten aus. Diese Funktion analysiert die Daten, gibt die Ergebnisse an die Explorationsspalten aus und generiert die oben beschriebenen AFL-Arrays.

Wie Sie sehen, ist es nicht so kompliziert, aber es erfordert viel mehr Code als der Single-Thread-Ansatz. Wenn Sie eine große Datenmenge analysieren, kann der Multithread-Ansatz je nach Anzahl der CPU-Kerne Ihres Computers bis zu 32-mal schneller sein.

Wie beim Single-Thread-Ansatz können Sie mehrere Zeitrahmen analysieren, indem Sie den obigen Codeblock mehrmals einfügen oder den Codeblock in eine for-Schleife einschließen.

Optimierung

Optimierung ist der Prozess der Feinabstimmung von Parametern, um die besten Ergebnisse für einen Markt oder eine Gruppe von Märkten zu erzielen. AmiBroker ermöglicht die gleichzeitige Optimierung von bis zu 64 Parametern, unterstützt die Portfoliooptimierung und enthält drei intelligente Optimierungs-Engines. Standard-Partikelschwarmoptimierung, Stämme und CMA-ES.

PrescienTrader unterstützt die Optimierung aller Parameter, ohne dass für jeden Parameter Code geschrieben werden muss. Halten Sie zum Einstellen der Optimierungsparameter die Taste gedrückt Verschiebung Drücken Sie die Taste und klicken Sie auf das Symbolleistensymbol Parameter. Daraufhin wird das Fenster mit den Optimierungsparametern angezeigt, in das Sie ein eingeben können Angebot (Von und Bis) für jeden Parameter und a Schritt für numerische Parameter. Der Bereich repräsentiert den Optimierungsbereich. Um beispielsweise den Lookback-Bereich zu optimieren, können Sie Folgendes auswählen:

LookBack-Bereich von: 5
Lookback-Bereich bis: 10
Lookback Range Schritt: 1

Durch Eingabe dieser Parameter würde der Lookback-Bereich zwischen 5 und 10 mit einem Inkrement von 1 optimiert, sodass Werte von 5, 6, 7, 8, 9, 10 getestet würden.

Protokollierung

Beim Ausführen einer Analyse gibt PrescienTrader kontinuierlich Informationen an das Trace-Fenster aus. Jede Zeile enthält folgende Informationen:

  • Analysetyp (Backtest, Optimierung, Exploration usw.)
  • Symbol des zu analysierenden Instruments
  • Zeitraum (täglich, wöchentlich, monatlich usw.)
  • Datenreihen (Abschluss, Durchschnitt usw.)
  • Parameterwerte:
    • Polarität
    • PL Basis
    • Min Frequenz
    • Maximale Frequenz
    • Lookback Range
    • Oberwellenfilter
    • Minimale Zuversicht
    • Beste X-Zyklen

Für jeden Parameterwert wird die Quelle in Klammern angegeben. Die Quelle kann eine der folgenden sein:

  • Param - Wert wurde aus dem Parameterfenster übernommen.
  • Opt - Wert wurde basierend auf den im Parameterfenster angegebenen Optimierungseinstellungen generiert.
  • Saved - Gespeicherter Wert für dieses Instrument und den Zeitraum.
  • AFL - Der Wert wurde aus der AFL-Variablen entnommen, die dem Parameter entspricht.
  • Array - Der Wert wurde einem AFL-Array entnommen. Da Arrays für jeden Balken einen anderen Wert verwenden können, wird kein Wert angezeigt.

AFL-Variablen haben die höchste Priorität, gefolgt von gespeicherten Werten und den im Parameterfenster angegebenen Werten.

Zusätzlich zum Trace-Fenster können Sie die Protokollierung in einer Datei aktivieren, indem Sie den Dateipfad in das Parameterfenster eingeben.

War dieser Artikel hilfreich?
Nicht gefallen 0
Ansichten: 1456
FÜR IMMER FREI
Tägliche Handelssignale
von PrescientSignals
ABONNIEREN
Abonnieren Sie, um täglich KOSTENLOSE Handelssignale zu erhalten, die an Ihren E-Mail-Posteingang gesendet werden
Freie Signale verzögern sich um eine Woche. Auf diese Weise können Sie unseren PrescientSignals-Service risikofrei bewerten, indem Sie die Vorhersagen der Vorwoche mit den tatsächlichen Ergebnissen vergleichen.
FÜR IMMER FREI
Tägliche Handelssignale von PrescientSignals
ABONNIEREN
Abonnieren Sie, um täglich KOSTENLOSE Handelssignale zu erhalten, die an Ihren E-Mail-Posteingang gesendet werden
Freie Signale verzögern sich um eine Woche. Auf diese Weise können Sie unseren PrescientSignals-Service risikofrei bewerten, indem Sie die Vorhersagen der Vorwoche mit den tatsächlichen Ergebnissen vergleichen.