Temps de lecture estimé: 7 min

PrescienTrader comprend des fonctions multi-délais qui s'intègrent aux puissantes fonctionnalités d'analyse et de backtest d'AmiBroker. Il comprend également des scripts AFL qui montrent comment utiliser les fonctions d'analyse. Les fonctions d'analyse nécessitent un abonnement PrescientAPI Professional.

La vidéo suivante montre comment configurer et exécuter une exploration. Veuillez regarder la vidéo, puis revenir à cet article pour continuer le didacticiel.

La vignette

Exploration

Lorsque vous exécutez une exploration à l'aide du script de backtesting PrescienTrader inclus, AmiBroker analyse votre liste d'instruments et votre plage de dates spécifiées. Il génère une ligne pour chaque combinaison d'un instrument et d'une date. Dans l'exemple ci-dessus, nous analysons juste un instrument unique (CHF / JPY) pour la plage de dates du 1er octobre au 31 décembre 2018.

Les scripts affichent les colonnes d'exploration suivantes:

  • Symbole de téléscripteur
  • Date / heure
  • Ouvrir, Haut, Bas, Fermer, Volume, Intérêt ouvert
  • Enregistré - Cette colonne est surlignée en jaune pour toute ligne utilisant les réglages de paramètres enregistrés. Lorsque vous enregistrez les paramètres dans PrescienTrader, les paramètres sont enregistrés uniquement pour l'instrument et la période sélectionnés. Cela vous permet d'utiliser des réglages de paramètres personnalisés pour chaque instrument et chaque période. Lorsque vous exécutez une exploration, PrescienTrader appliquera automatiquement tous les réglages de paramètres personnalisés. La surbrillance jaune dans la colonne Enregistré est pour vous rappeler que la ligne utilise des paramètres enregistrés, pas les paramètres que vous avez entrés dans la fenêtre Paramètres.
  • Pente PL - Cela indique la pente de la tendance de la ligne Prescient. Les pentes positives prédisent une tendance à la hausse tandis que les pentes négatives prédisent une tendance à la baisse.
  • Score FLD - La somme des FLD pour tous les cycles valides multipliée par la force ou l'amplitude de chaque cycle, en fonction de votre paramètre de base PL. Des valeurs positives indiquent que le marché est dans une tendance cyclique à la hausse. Des valeurs négatives indiquent que le marché est dans une tendance baissière cyclique.
  • Barre de tendance - Le nombre de barres relatif dans la tendance actuelle prédite. La première barre d'une tendance est la barre zéro.
  • Barres de tendance - Le nombre total de barres dans la tendance prévue actuelle.
  • Tendance Pct - Le pourcentage d'achèvement de la tendance actuelle prévue. Par exemple, si Trend Bar = 5 et Trend Bars = 10, Trend Pct serait 50%. Notez que Trend Pct n'atteindra jamais 100%, car cela signifierait qu'une nouvelle tendance a commencé. Au point de chevauchement entre l'ancienne et la nouvelle tendance, Trend Pct sera 0%. En plus de l'affichage numérique, cette colonne affiche également un graphique à barres qui passe du vert au rouge à mesure que la tendance progresse.
  • action - Il s'agit du signal, Buy / Sell / Short / Cover, pour la ligne actuelle. Les signaux générés à partir des scripts inclus sont simplement basés sur Trend Slope. Lorsque la pente de tendance est positive, elle affichera un signal d'achat et lorsque la pente de tendance sera négative, elle affichera un signal court. Ceci est conçu comme un très simple exemple de la façon dont vous pourriez commencer à construire un système commercial en utilisant les indicateurs PrescienTrader. N'utilisez PAS ces signaux d'exemple pour le trading en direct, car vous perdrez probablement de l'argent! L'idée est de développer vos propres systèmes de trading en utilisant nos indicateurs et éventuellement d'autres indicateurs, puis de backtester le système de manière approfondie. Une fois que vous avez un système backtesté valide, vous pouvez brancher ce système dans la colonne Action pour afficher vos signaux de trading.

Backtesting

Pour exécuter un backtest ou une optimisation, commencez par charger le script AFL PrescienTrader Backtesting. Nous vous suggérons faire une copie du script, plutôt que de modifier le script d'origine. Nos fonctions d'analyse génèrent une sortie pour les colonnes d'exploration et créent également des matrices AFL et des matrices contenant les résultats. Lors de l'exécution d'un backtest ou d'une optimisation, vous utiliserez les tableaux et matrices AFL générés, qui comprennent les éléments suivants:

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

Si vous exécutez une analyse pour plusieurs périodes, les fonctions créeront un ensemble distinct de tableaux et de matrices pour chaque période. Les noms seront les mêmes que ci-dessus, sauf que chaque nom aura un suffixe HTPx, où x représente l'indice de période le plus élevé. Par exemple, les tableaux et matrices pour la première période supérieure seront nommés, ptStaticPLHTP1, ptStaticPLSlopeHTP1, etc… Les tableaux et matrices pour la deuxième période supérieure seront nommés ptStaticPLHTP2, ptStaticPLSlopeHTP2, etc…

Le backtester AmiBroker est extrêmement puissant. Il prend en charge un véritable backtest de portefeuille, des tests de marche avant, des simulations de Monte Carlo, des tests sur plusieurs périodes, une pyramide et une mise à l'échelle, plusieurs devises et plus encore. Toutes ces fonctionnalités et cette puissance sont à votre disposition pour les backtests et la sortie de PrescienTrader. Cela dépasse le cadre de cet article pour discuter des détails du backtesting dans AmiBroker. Pour cela, il est préférable de lire la documentation AmiBroker.

Paramètres et variables de paramètres

Lors de l'exécution d'une analyse, PrescienTrader utilisera les valeurs de paramètre que vous spécifiez dans la fenêtre Paramètres. Cependant, si vous avez précédemment enregistré les paramètres de l'instrument pour le marché et la période actuels, les paramètres enregistrés remplaceront les paramètres affichés dans la fenêtre Paramètres. Cela vous permet d'effectuer une analyse de portefeuille en utilisant différentes valeurs de paramètres pour chaque instrument du portefeuille. Lorsque vous affichez la fenêtre Paramètres, elle affiche les derniers paramètres que vous avez entrés, qui ne sont pas nécessairement les paramètres enregistrés. Clique le Effacer tout pour afficher les paramètres enregistrés de l'instrument.

De plus, vous pouvez enregistrer les paramètres par défaut. Contrairement aux paramètres d’instrument enregistrés, les paramètres par défaut enregistrés NE PAS remplacer les paramètres affichés. Cela vous permet de profiter du fait qu'AmiBroker se souvient automatiquement des derniers paramètres que vous avez entrés, donc si vous testez un certain ensemble de paramètres plusieurs fois, vous n'avez pas à les ressaisir à chaque fois. Cependant, vous pouvez toujours revenir aux paramètres par défaut enregistrés en cliquant sur le Effacer tout bouton. Garde en tête que les paramètres d'instrument enregistrés ont priorité sur les paramètres par défaut enregistrés, donc si vous cliquez sur Effacer tout et il n'affiche pas vos paramètres par défaut, cela signifie que vous avez enregistré les paramètres de l'instrument pour l'instrument et la période actuellement affichés.

Enfin, vous pouvez remplacer la plupart des paramètres en définissant une variable AFL correspondant à chaque paramètre. Les variables disponibles comprennent:

  • ptPolarity (0 = positif, 1 = négatif)
  • ptPLBasis (0 = amplitude, 1 = force)
  • ptLookbackRange
  • ptMinFrequency
  • ptMaxFrequency
  • ptHarmonicFilter
  • ptMinConfidence
  • ptBestXCycles

Chaque variable présente également des variations de période de temps plus élevées pour l'analyse multi-périodes. Pour définir une variable de période plus longue, ajoutez HTP1, HTP2, HTP3, etc… au nom de la variable. Par exemple:

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

Les variables remplacent toujours les paramètres de la fenêtre Paramètres et tous les paramètres enregistrés. Si vous définissez une variable de paramètre dans AFL, le paramètre correspondant disparaîtra de la fenêtre Paramètres. Vous devez définir toutes vos variables de paramètre AVANT d'appeler le PrescientAnalysis ou PrescientAnalysisPrepare les fonctions.

Analyse monofil vs multithread

PrescienTrader prend en charge à la fois l'analyse monothread et multithread. La fonction à un seul thread ne nécessite qu'une seule ligne de code, elle est donc idéale pour exécuter des explorations rapides ou de simples backtests. L'inconvénient est que l'analyse s'exécute dans un seul thread, de sorte qu'elle ne peut analyser qu'une seule ligne à la fois. Cependant, si votre analyse ne comprend que quelques centaines de lignes, la différence de temps serait négligeable. Dans ce scénario, il vous faudrait plus de temps pour écrire le code supplémentaire pour une analyse multithread que le temps gagné en l'exécutant.

PrescienTrader Backtester Script - Section à fil unique

L'exemple de script d'analyse est appelé PrescienTrader Backtester. Si vous affichez ce script, vous verrez qu'il contient une section à un seul thread et une section à plusieurs threads, que vous pouvez basculer entre l'utilisation d'un réglage de paramètre. La section d'analyse singe-thread contient une seule ligne de code:

PTBacktest ();

le PTBacktest La fonction ne prend aucun paramètre car vous configurez tous les paramètres dans la fenêtre Paramètres. Lorsqu'il s'exécute, il crée une demande d'API, soumet la demande à PrescientAPI, analyse la réponse, renvoie les résultats dans les colonnes d'exploration et génère les tableaux AFL décrits ci-dessus.

Pour effectuer une analyse multi-périodes, il suffit d'appeler la fonction PrescientAnalysis plusieurs fois. Par exemple, si vous souhaitez analyser la période de base et deux périodes plus longues, vous devez utiliser le code suivant:

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

Chaque instance de la fonction crée un autre cadre temporel dans la fenêtre Paramètres, donc dans l'exemple ci-dessus, votre fenêtre Paramètres contiendrait des paramètres pour la période de base, HTP1 et HTP2. Ne confondez pas le multi-thread avec le multi-temps; ce sont deux concepts complètement différents. Le multi-threading fait référence à l'exécution de plusieurs analyses à la fois, comme l'analyse d'un portefeuille d'instruments. Le multi-temps fait référence à l'analyse de chaque instrument dans plus d'un temps. Par exemple, vous pouvez analyser les délais quotidiens, hebdomadaires et mensuels du S&P 500. Dans cet exemple, vous bénéficieriez également de l'exécution en mode multithread, car il analyserait les trois délais simultanément. Cependant, vous pouvez exécuter une analyse multi-délais en mode monothread, auquel cas il analyserait les délais séquentiellement.

Script d'analyse PrescienTrader - Section multithread

La section multi-thread est plus compliquée que le script single-thread et nécessite plusieurs lignes de code:

postVars = PTBacktestPrepare ();
if (StrLen (postVars)> 0) {
    ih = InternetPostRequest ("https://api.prescientrading.com", postVars);
    si (ih) {
        response = "";
        while ((line = InternetReadString (ih))! = "")
            réponse + = ligne;
        PTBacktestExecute (réponse);
        InternetClose (ih);
    }
    autre {
        msg = "Aucune réponse de l'API - Délai d'attente possible ou problème de connectivité Internet - Attente de 60 secondes";
        _TRACE (msg);
        PTLogToFile (msg);
        PTWait (60);
    }
}

La raison du code supplémentaire est qu'AmiBroker ne prend pas en charge le multithread dans les plugins comme PrescienTrader. Ainsi, au lieu d'effectuer l'intégralité de l'opération d'analyse dans une seule fonction de plug-in, le plug-in gère tout, sauf la demande d'API, qui est la partie la plus chronophage et offre donc le plus grand avantage à s'exécuter dans plusieurs threads.

Décomposons cela étape par étape…

  1. Dans la première étape, nous appelons PTBacktestPrepare et attribuons le résultat à la variable postVars. Cette fonction utilise les paramètres définis dans la fenêtre Paramètres pour générer les données au format approprié pour une demande d'API.
  2. Dans la deuxième étape, nous effectuons la demande d'API à l'aide des fonctions InternetPostRequest et InternetReadString. Puisqu'il interagit avec un serveur distant, c'est la partie la plus lente du processus et profite donc le plus de l'exécution dans plusieurs threads.
  3. Dans la dernière étape, nous exécutons PTBacktestExecute sur les données renvoyées par l'API. Cette fonction analyse les données, envoie les résultats aux colonnes d'exploration et génère les tableaux AFL décrits ci-dessus.

Comme vous pouvez le voir, ce n'est pas si compliqué, mais cela nécessite beaucoup plus de code que l'approche à un seul thread. Si vous analysez une grande quantité de données, l'approche multithread peut être jusqu'à 32 fois plus rapide, selon le nombre de cœurs de processeur de votre ordinateur.

Comme avec l'approche à un seul thread, vous pouvez analyser plusieurs délais en insérant le bloc de code ci-dessus plusieurs fois ou en encapsulant le bloc de code dans une boucle for.

Optimisation

L'optimisation est le processus de réglage fin des paramètres pour obtenir les meilleurs résultats pour un marché ou un groupe de marchés. AmiBroker permet d'optimiser jusqu'à 64 paramètres simultanément, prend en charge l'optimisation de portefeuille et comprend trois moteurs d'optimisation intelligents, Optimisation de l'essaim de particules standard, Tribus et CMA-ES.

PrescienTrader prend en charge l'optimisation de tous ses paramètres sans avoir à écrire de code pour chaque paramètre. Pour définir les paramètres d'optimisation, maintenez la touche Décalage et cliquez sur l'icône de la barre d'outils Paramètres. Cela affichera la fenêtre des paramètres d'optimisation, où vous pouvez saisir un gamme (De et À) pour chaque paramètre et un étape pour les paramètres numériques. La plage représente la plage d'optimisation. Par exemple, pour optimiser la plage d'analyse, vous pouvez sélectionner quelque chose comme:

Gamme LookBack à partir de: 5
Fourchette de recul: 10
Étape de l'analyse rétrospective: 1

La saisie de ces paramètres permettrait d'optimiser la plage d'analyse entre 5 et 10 avec un incrément de 1, de sorte qu'elle testerait des valeurs de 5, 6, 7, 8, 9, 10.

Enregistrement

Lors de l'exécution d'une analyse, PrescienTrader génère en continu des informations dans la fenêtre Trace. Chaque ligne contient les informations suivantes:

  • Type d'analyse (backtest, optimisation, exploration, etc…)
  • Symbole de l'instrument analysé
  • Période (quotidienne, hebdomadaire, mensuelle, etc…)
  • Séries de données (proches, moyennes, etc.)
  • Valeurs des paramètres:
    • Polarité
    • Base PL
    • Fréquence minimale
    • Fréquence max
    • Gamme rétrospective
    • Filtre harmonique
    • Confiance minimale
    • Best X Cycles

Pour chaque valeur de paramètre, il indique sa source entre parenthèses. La source peut être l'une des suivantes:

  • Param - La valeur a été extraite de la fenêtre Paramètres.
  • Opt - La valeur a été générée en fonction des paramètres d'optimisation spécifiés dans la fenêtre Paramètres.
  • Sauvegardé - Valeur enregistrée pour cet instrument et cette période.
  • AFL - La valeur a été tirée de la variable AFL correspondant au paramètre.
  • Tableau - La valeur a été prise à partir d'un tableau AFL. Étant donné que les tableaux peuvent utiliser une valeur différente pour chaque barre, aucune valeur ne sera affichée.

Les variables AFL ont la priorité la plus élevée, suivies des valeurs enregistrées, puis des valeurs spécifiées dans la fenêtre Paramètres.

En plus de la fenêtre Trace, vous pouvez activer la journalisation dans un fichier en entrant le chemin du fichier dans la fenêtre Paramètres.

Cet article a-t-il été utile?
Ne pas aimer 0
Vues: 1418
LIBRE POUR TOUJOURS
Signaux de négociation quotidiens
par PrescientSignals
SOUSCRIRE
Abonnez-vous pour recevoir quotidiennement des signaux de trading GRATUITS dans votre boîte de réception
Les signaux gratuits sont retardés d'une semaine. Cela vous permet d'évaluer sans risque notre service PrescientSignals, en comparant les prévisions de la semaine précédente avec les résultats réels.
LIBRE POUR TOUJOURS
Signaux de négociation quotidiens par PrescientSignals
SOUSCRIRE
Abonnez-vous pour recevoir quotidiennement des signaux de trading GRATUITS dans votre boîte de réception
Les signaux gratuits sont retardés d'une semaine. Cela vous permet d'évaluer sans risque notre service PrescientSignals, en comparant les prévisions de la semaine précédente avec les résultats réels.