Comment créer des blocs, des groupes et des modèles StrategyQuant à l'aide de l'IA

Une stratégie StrategyQuant ne se crée jamais d’un seul coup. La plateforme l’assemble à partir des éléments que vous fournissez, puis passe en revue les combinaisons pour trouver celle qui fonctionne. Ces éléments s’empilent dans un ordre bien défini — et j’ai développé une compétence d’IA pour chaque couche de la pile, soit quatre au total. Ensemble, elles constituent le Kit d'outils de création SQX (le plugin sqx-lab). Vous décrivez la partie souhaitée en anglais courant ; le « skill » correspondant génère un artefact réel, prêt à être importé, dont la compatibilité avec votre propre installation a été vérifiée. Ce guide pratique explique le fonctionnement des quatre « skills » et comment les utiliser pour créer des projets.

Pourquoi est-ce important aujourd'hui ?

Nous sommes arrivés à un moment étrange. N'importe quelle IA est désormais capable de produire quelque chose qui dit Comme une stratégie de trading : un paragraphe convaincant, une règle plausible, un bloc de code qui semble correct. Presque rien de tout cela ne résiste à la mise en œuvre dans un moteur réel. Cet écart — entre un résultat qui semble correct et un résultat qui fonctionne réellement — est le cœur du problème, et c’est précisément ce que ce workflow a pour but de combler.

Ici, rien ne repose sur la parole de l’IA. Chaque artefact est conçu pour être accepté par StrategyQuant lui-même, et le processus s’achève là où il le doit : dans un véritable Version d'AlgoWizard sur des données réelles. C'est la plateforme — son analyseur syntaxique, son générateur, son moteur de backtesting — qui a le dernier mot, et non le modèle. Une stratégie est soit capable d'importer, de générer et de tester rétrospectivement, soit elle ne l'est pas ; il n'y a pas de place pour une réponse en apparence plausible mais qui échoue en coulisses.

C'est ce qui est formidable quand on fait ça aujourd'hui. La production est devenue peu coûteuse ; la vérification, c'est tout ce qui compte. Une IA capable de générer un millier de stratégies est un risque. En revanche, une IA dont chaque résultat est validé par un véritable moteur de backtesting est un outil auquel on peut réellement faire confiance — et c’est pourquoi, dans mon propre processus, la prochaine étape consiste à… oracle qui charge chaque artefact dans un StrategyQuant actif et permet au moteur de le valider avant que je ne m'appuie dessus.

Le principe : quatre niveaux, quatre compétences

Dans StrategyQuant, tout est constitué de quatre types de pièces, chacune étant composée de la précédente :

  • bloc personnalisé il s'agit d'une règle de trading unique — un signal, un filtre ou un niveau de cours ;
  • groupe aléatoire regroupe des blocs ou des atomes dans un menu à partir duquel le générateur sélectionne un élément ;
  • modèle de stratégie organise ces ensembles en une structure stratégique exploitable ;
  • projet exécute un ou plusieurs modèles en tant que tâches de compilation sur des données réelles.

La création manuelle de chaque couche est un travail de spécialiste, nécessitant de nombreux clics et une connaissance approfondie de la plateforme. Chaque compétence automatise une couche — et comme elles s’enchaînent dans le même ordre, une idée peut passer d’une règle à un projet de compilation en cours d’exécution sans que vous ayez à écrire la moindre ligne de XML.

Couche Compétence Ce qu'il écrit
Bloc sqx-custom-block Une seule règle de trading : un signal, un filtre ou un niveau de prix.
Groupe sqx-random-group Ensemble de blocs ou d'atomes dans lequel le constructeur prélève un élément.
Modèle modèle-de-stratégie-sqx Une stratégie .sqx compilable qui relie des groupes pour former une figure.
Project projet-stratégie-sqx Un fichier « project.cfx » prêt à l'exécution qui génère des modèles à partir de données réelles.

Un principe sous-tend chacune d'entre elles, et c'est ce qui fait qu'elles sont dignes de confiance : chaque compétence est dérivé de l'installation. Avant de générer quoi que ce soit, il analyse votre installation StrategyQuant et établit un catalogue détaillant exactement les capacités de votre configuration : les indicateurs natifs, vos blocs personnalisés exportés, et même les indicateurs que vous avez uniquement codés dans l’éditeur. Il effectue ensuite la compilation en se basant strictement sur ce catalogue. Il ne peut pas accéder à un indicateur dont vous ne disposez pas ; ainsi, rien de ce qu’il produit n’est un “ fantôme ” qui échouerait à l’importation.

Le processus : toujours les mêmes six étapes

Ces quatre compétences s'inscrivent dans un processus de travail rigoureux. Une fois maîtrisé, ce processus s'applique aussi bien aux blocs qu'aux groupes, aux modèles et aux projets.

  1. Indiquez-lui l'emplacement de votre installation (une seule fois). Cette fonctionnalité analyse votre dossier StrategyQuant — le fichier de configuration, vos blocs personnalisés exportés, et même vos extraits de code Java — et établit un catalogue détaillant exactement les capacités de votre build, y compris vos propres indicateurs personnalisés. Tout ce qu’elle génère provient de ce catalogue.
  2. Expliquez ce que vous voulez, en termes simples. “ Position longue lorsque le RSI passe au-dessus de 30. ” “ Une liste de mes déclencheurs de cassure. ” “ Cassures uniquement dans le sens de la tendance. ” “ Une analyse de l'EUR/USD sur le graphique H1 pour la période 2015-2020. ” Il n'y a pas de syntaxe à apprendre.
  3. Il vérifie les spécifications avant d'écrire quoi que ce soit. Il présente d'abord le projet en termes clairs — le nom, la structure, les indicateurs et paramètres précis — afin que vous puissiez l'approuver ou le réorienter. C'est avant même que le code XML ne soit créé qu'il est le plus facile de repérer une idée erronée.
  4. Il compare chaque article à votre catalogue. Si un indicateur ou un bloc que vous avez mentionné n'est pas présent dans votre version, le système vous le signale et vous propose un équivalent qui l'est — jamais un élément fantôme qui échouerait en silence.
  5. Il génère l'artefact et le valide. Le fichier XML doit passer le validateur avant même que vous ne puissiez le consulter. Les blocs personnalisés font l'objet d'une deuxième vérification « d'hygiène des bords » qui attribue à chaque bloc une note comprise entre A et D et signale les « tueurs silencieux » que la vérification syntaxique ne peut pas détecter : anticipation sur la barre de développement, indicateurs de rafraîchissement et seuils qu'une règle ne pourrait jamais réellement atteindre.
  6. Vous importez les données dans AlgoWizard. Les blocs et les groupes s'importent directement. Quant aux modèles et aux projets, vous devez d'abord les importer, puis Construire — et la version « Build » est la preuve définitive que la stratégie est réelle, et pas seulement bien conçue.

Compétence n° 1 — sqx-custom-block : la règle de trading

Un bloc personnalisé est l'unité de base d'une stratégie StrategyQuant : un élément logique unique et réutilisable que vous intégrez dans AlgoWizard. Les auteurs de stratégies créent ces deux types de blocs. A Condition Un bloc est une règle de type vrai/faux — un signal ou un filtre. Un Niveau des prix Le bloc renvoie un prix : un niveau de stop, un objectif, une fourchette ou une référence de cassure.

Vous décrivez — “ Prendre une position longue lorsque le RSI(14) passe au-dessus de 30, et une position courte dans le sens inverse. ”

Vous obtenez — un bloc « Condition » validé dont la période du RSI (2–50) et le niveau de survente sont définis comme paramètres optimisables, ainsi que son équivalent « short-side », appariés automatiquement, sous forme de fichier XML prêt à être importé.

Comment cela fonctionne-t-il ?

  • Il analyse quatre sources au sein de votre installation, ce qui lui permet de trouver vos propres indicateurs personnalisés — et pas seulement les indicateurs natifs — qu’ils soient enregistrés dans AlgoWizard, présents dans un fichier d’exportation ou simplement codés dans l’éditeur. C’est ce qui permet de résoudre le problème bien connu consistant à “ ne pas trouver mon indicateur ”.
  • Un bloc correspond à une idée. Il n'ajoutera pas discrètement un deuxième indicateur de confirmation, sauf si vous le demandez.
  • Les garde-fous qui distinguent une règle solide d'une règle subtilement défaillante sont intégrés : les données OHLC sont lues à partir de la dernière fermé barre (jamais celle en cours de formation), les seuils sont vérifiés par rapport à la plage réelle de l'indicateur, et les indicateurs qui se rafraîchissent sont signalés.
  • Si vous recherchez des idées plutôt qu'une règle précise, un mode de recherche propose des pistes, un critique antagoniste élimine celles qui sont faibles, surajustées ou redondantes, et seules les spécifications réellement réalisables sont retenues pour la rédaction.

Importation : AlgoWizard → Blocs personnalisés → Importer.

Compétence 2 — sqx-random-group : le pool

Un groupe aléatoire est un menu dans lequel le générateur sélectionne un élément — par stratégie, par emplacement. Il remplace les paramètres globaux de « Building-Blocks » pour cet emplacement précis : au lieu de choisir parmi l'ensemble des éléments, le générateur en sélectionne un au hasard parmi ceux que vous avez sélectionnés. Il existe deux types de groupes. A Condition règles booléennes de regroupement ; a Valeur les prix ou les niveaux des groupes. Un modèle associe un groupe à l'un de ses emplacements grâce à l'identifiant unique de ce groupe.

Vous décrivez — “ Regrouper mes blocs de déclenchement de sortie en un seul ensemble. ”

Vous obtenez — un groupe de conditions validé qui réexporte vos blocs de rupture par référence — c'est-à-dire le menu exact à partir duquel le générateur effectuera son échantillonnage — sous forme de fichier XML prêt à être importé.

Comment cela fonctionne-t-il ?

  • Il existe deux façons de constituer un groupe. Hybride réutilise vos blocs personnalisés existants par référence — ce qui est le cas le plus courant. En ligne crée des éléments nouveaux directement à partir des éléments de base du catalogue.
  • Les éléments sont simples : une règle ou une comparaison par élément. La logique composée (ET/OU) doit être placée dans un bloc personnalisé, que vous intégrez ensuite dans un pool — ce qui permet de garder les groupes clairs et la recherche du générateur bien définie.
  • C'est vous qui décidez, pour chaque élément, quels paramètres le générateur est libre d'optimiser et lesquels restent fixes.
  • La cohérence des types est imposée : les éléments d'un groupe « Condition » doivent être des valeurs booléennes ; ceux d'un groupe « Valeur » doivent être des prix ou des nombres.

Importation : AlgoWizard → Aléatoire / Groupes de blocs → Importer.

Compétence 3 — sqx-strategy-template : la stratégie

Un modèle de stratégie est une stratégie StrategyQuant dont certaines sous-expressions sont laissées telles quelles. trous que le générateur remplit et modifie. Il s’agit de la couche la plus délicate, car la validité d’une stratégie n’est pas garantie par sa structure seule : les exclusions de moteur, le câblage des nombres magiques et le protocole des variables de signal se situent tous en dehors du schéma, et seule une compilation effective prouve la validité d’une stratégie. La compétence ne rédige donc pas manuellement le XML de la stratégie. Elle transpose les groupes que vous avez choisis dans un squelette dont la compilation a été validée et ne modifie que le tracé des trous, en restant strictement dans un cadre éprouvé.

Vous décrivez — “ Des cassures uniquement dans le sens de la tendance, avec une entrée sur un stop placé au plus haut de la période précédente. ”

Vous obtenez — un modèle .sqx qui intègre un filtre de tendance, un déclencheur de cassure et un ensemble de cours de stop dans une structure éprouvée, avec la position courte reproduite automatiquement et la séquence complète de sortie déjà en place.

Comment cela fonctionne-t-il ?

  • Chaque entrée est exprimée sous la forme d'un filtre — le régime, ou quand vous pouvez agir — plus un déclencheur — le cas où incendies. Une étape de conception les associe de manière à créer une véritable synergie plutôt qu’une redondance, et inscrit la thèse falsifiable qui sous-tend cette interface.
  • Il génère des figures de trading éprouvées : entrées « immediate-market » et « pending-stop », entrées basées sur la séance, entrées multi-périodes (un filtre de période supérieure appliqué à un déclencheur de la période principale), entrées structurées par rôle (régime ET déclencheur ET NON veto), ainsi que les stratégies à plusieurs volets.
  • La position courte est toujours répliquée automatiquement, et l'ensemble des niveaux de sortie — stop, objectif, stop suiveur, seuil de rentabilité, sortie après un certain nombre de barres — est déjà configuré ; le modèle détermine uniquement les niveaux de sortie que le générateur peut optimiser.
  • Il n'invente jamais de groupe. Si un groupe dont il a besoin n'existe pas, vous devez d'abord le créer à l'aide de la compétence « groupe aléatoire ».

Importation : AlgoWizard → importer le fichier .sqx → lancer une compilation.

Compétence n° 4 — sqx-strategy-project : la compilation

Un fichier de projet contient tout ce dont une compilation a besoin : le flux de données, les symboles et le calendrier, ainsi que l'ensemble des procédures de clôture et de réception. C'est bien trop pour pouvoir tout régénérer en toute sécurité ; c'est pourquoi cette compétence clone un projet auquel vous faites déjà confiance et intègre une tâche de compilation par modèle — chaque tâche disposant de sa propre base de données de résultats.

Vous décrivez — “ Clonez ma base EURUSD H1 et configurez ces trois modèles en tant que tâches, pour la période 2015-2020. ”

Vous obtenez — un projet prêt à l'emploi — trois tâches de compilation, chacune écrivant dans sa propre base de données, héritant des données et des paramètres de votre base avec la nouvelle fenêtre de date appliquée — déployé dans votre installation.

Comment cela fonctionne-t-il ?

  • Ce système repose sur des clones et est lié à l'installation : il ne compile jamais manuellement un projet. Il copie une tâche source octet par octet et ne modifie que le modèle et la base de données de sortie pour chaque tâche.
  • Des options de remplacement applicables à l'ensemble du projet vous permettent de changer d'instrument (StrategyQuant recalcule automatiquement la structure des ticks au chargement), de définir la fenêtre de backtest ou de modifier le spread, le glissement, la session et le sens de la transaction.
  • Il vérifie automatiquement chaque clone — bases de données uniques, modèles chargés sur le disque — avant que quoi que ce soit n'intervienne sur votre installation.
  • Une règle est essentielle : déployer selon le principe « StrategyQuant » fermé, car cela réécrit le projet à la fermeture ; ouvrez-le ensuite et lancez la compilation.

Utiliser : déployer dans l'installation → ouvrir le projet → lancer une compilation.

La pile en action

Comme ces compétences s'imbriquent les unes dans les autres, une même idée peut parcourir les quatre niveaux d'un seul coup, chaque résultat alimentant le suivant :

  1. Bloc. Auteur “ Le RSI(14) passe au-dessus de 30 ” dans un bloc « Condition » de retour à la moyenne, avec son reflet inversé.
  2. Groupe. Regroupez ce bloc avec vos autres déclencheurs de réversion dans un groupe de conditions que le générateur pourra échantillonner.
  3. Modèle. Intégrez ce groupe en tant que déclencheur, derrière un filtre de régime de portée, dans un fichier .sqx modifiable accompagné d'une thèse.
  4. Project. Clonez votre base EURUSD, intégrez le modèle en tant que tâche, lancez la compilation et lisez la base de données.

Chaque étape est validée avant la suivante, et chaque atome correspond à un élément réellement présent dans votre installation — ce qui permet à l'ensemble de la chaîne de s'importer et de se compiler.

Ce que je vais réaliser ensuite

Les quatre fonctionnalités ci-dessus constituent ce que j'ai déjà mis à disposition : la couche de création. Deux éléments viennent s'y ajouter, sur lesquels je travaille activement, et je tiens à préciser qu'aucun des deux n'est encore disponible.

L'oracle — vérification sur une plateforme en production

Les outils de validation vérifient tout ce qui est destiné à l'importation, mais dans mon travail, je vais encore plus loin. Je charge chaque artefact dans une instance de StrategyQuant en cours d'exécution via son interface REST, de sorte que la plateforme elle-même confirme l'authenticité de l'artefact avant que je ne lui accorde ma confiance — un LOAD PASS Une information provenant de StrategyQuant vaut mieux que n'importe quelle vérification effectuée par soi-même. Je suis en train d'intégrer cet oracle dans un plugin stratégique que les auteurs et vérifie l'ensemble des stratégies de bout en bout. Il fonctionne actuellement en mode privé ; il n'est pas encore possible de le télécharger.

L'usine à modèles — juger toute une population

Au-dessus se trouve une usine. Elle part d’une hypothèse de marché, confie à ces experts la rédaction du modèle et de ses groupes, utilise l’oracle pour vérifier qu’ils se chargent correctement, puis génère et évalue l’ensemble population des stratégies à partir de statistiques hors échantillon — le ratio de Sharpe déflaté et la « Probabilité » du surajustement des backtests — et rend son verdict : valider, réviser ou abandonner. Ce projet est en cours de développement.

En bref

  • Quatre compétences, une pour chaque niveau d'une stratégie StrategyQuant : bloc, groupe, modèle, projet — proposées ensemble sous le nom de Kit d'outils de création SQX (le plugin sqx-lab).
  • Un processus unique pour tous : indiquez votre installation, décrivez-la en termes simples, validez le cahier des charges, lancez la validation, puis importez.
  • Tout provient de votre propre version, donc tout s'importe systématiquement — et il n'y a aucun élément fantôme.
  • L'oracle de vérification et l'usine d'évaluation de la population sont les éléments sur lesquels je vais maintenant m'appuyer.

Ces quatre compétences sont proposées ensemble sous le nom de Kit d'outils de création SQX — le plugin sqx-lab. Si vous souhaitez les utiliser dans votre propre installation de StrategyQuant, ou si vous êtes curieux de savoir quelle direction prennent Oracle et Factory, nous contacter.

clonex / Ivan Hudec

Ivan Hudec — “ Clonex ” sur le forum

Je suis trader depuis 15 ans et je développe des stratégies avec StrategyQuant X depuis 2014. Aujourd’hui, je me consacre à trois activités : je développe et teste en conditions réelles des stratégies automatisées, j’enrichis la plateforme SQX elle-même avec des indicateurs personnalisés, des extraits de code et des outils Python dédiés à l’apprentissage automatique et à la recherche quantitative, et j’aide d’autres traders à atteindre leurs objectifs plus rapidement — sans qu’ils aient à commettre les mêmes erreurs coûteuses que celles que j’ai commises au fil des années.
La plupart des stratégies de trading au détail semblent très prometteuses lors des backtests, mais s'effondrent en conditions réelles. Mon travail va à l'encontre de cette tendance : je développe des stratégies honnêtes, validées et suffisamment robustes pour qu'on puisse leur confier de l'argent réel. Je décris ce processus — avec ses bons et ses mauvais côtés, ainsi que le surajustement dont personne ne parle — sur mon site, algotrading.space.
Si vous souhaitez approfondir vos connaissances en matière de validation, de développement SQX sur mesure ou de création d'un véritable avantage concurrentiel grâce aux données et au code, c'est là que je partage toutes ces informations.  www.algotrading.space

0 Commentaires
Le plus ancien
Le plus récent Le plus populaire

Poursuivre la lecture