Comment créer un cBot via ChatGPT
L'IA générative est en plein essor et créer un cBot sans avoir à écrire une seule ligne de code n'est plus un rêve, c'est une réalité. Dans cet article et sa vidéo correspondante, nous vous montrerons comment vous pouvez créer un cBot en utilisant ChatGPT. Nous vous montrerons également comment vous pouvez évaluer le code cBot fourni par ChatGPT et vous assurer que votre bot généré par IA est opérationnel en quelques minutes seulement.
Créer la bonne invite
Pour les besoins de cette vidéo, nous utiliserons le modèle GPT-3.5. Il est gratuit pour tout le monde et, bien qu'il manque de fonctionnalités par rapport aux modèles GPT plus récents, il produit d'excellents résultats.
La première partie de la création d'un excellent cBot avec ChatGPT consiste à taper la bonne invite. Voici quelques règles pour ce qui fait une bonne invite :
1. Encouragez ChatGPT à essayer de jouer le rôle d'un développeur professionnel de cBot.
Vous pouvez y parvenir en tapant une invite initiale avec les mots "Jouons à un jeu où tu es un développeur d'algorithmes qualifié pour cTrader..." ou quelque chose comme "Fais semblant d'être un développeur professionnel de cBots pour cTrader..."
2. Soyez précis.
Plus vous fournissez de détails à ChatGPT, mieux c'est. Des invites telles que "Créez un cBot rentable pour moi..." entraîneraient beaucoup de confusion de la part de l'IA.
Nous recommandons de spécifier chaque partie de votre cBot aussi précisément que possible. Réfléchissez aux paramètres qu'il devrait avoir, aux conditions auxquelles il devrait réagir et aux opérations de trading qu'il devrait effectuer. Si vous créez un panneau de trading personnalisé, réfléchissez aux éléments d'interface utilisateur qu'il devrait avoir et où ils devraient être placés.
3. Soyez poli et respectueux.
Cela peut sembler surprenant, mais la recherche a montré qu'être poli avec ChatGPT améliore réellement la qualité de la sortie. Incluez des phrases telles que "J'apprécierais si...", "Ce serait bien si..." ou quelque chose de similaire.
Créer un cBot de trading de couleur
Pour commencer, nous voulons simplement créer un cBot simple qui place un nouvel ordre du marché à chaque ouverture de barre. Le sens de l'ordre dépend de si la barre précédente était verte ou rouge. Si la barre était rouge, nous voulons placer un ordre de vente et si elle était verte, nous voulons placer un ordre d'achat.
Voici comment nous pouvons le faire en fournissant les bonnes invites.
- Phrase de départ : "Fais semblant d'être un développeur professionnel de cBots pour cTrader, écris un code très simple et compréhensible."
- Exigences spécifiques : "Créez un cBot. À chaque barre, il devrait placer un nouvel ordre du marché sans mécanismes de protection. Le volume de l'ordre (en unités) devrait être un paramètre personnalisable. Un ordre d'achat devrait être placé si la barre précédente était verte. Un ordre de vente devrait être placé si la barre précédente était rouge."
- Politesse : "J'apprécierais vraiment si vous faisiez cette tâche, merci !"
Le code exact que ChatGPT produit peut varier, mais dans tous les cas, nous pouvons simplement le copier et le coller dans la fenêtre de l'éditeur de code pour voir s'il est correct et pour voir s'il implémente notre logique souhaitée.
Habituellement, il n'y a que quelques erreurs non critiques qui nécessitent une correction. Dans notre cas, la seule chose qui nécessitait une correction était de changer l'objet Symbol dans la méthode ExecuteMarketOrder en chaîne SymbolName. Voici le code final que nous avons obtenu après avoir fait tout cela.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
Comme d'habitude, nous sauvegardons et construisons le bot. Dans l'application Trade, nous attachons l'instance du bot à un graphique et voyons s'il fonctionne comme prévu. Le bot fonctionne parfaitement et réagit à la couleur des barres passées en plaçant de nouveaux ordres. Le volume de l'ordre est également un paramètre personnalisable.
Remarque
Notez que nous n'avons même pas eu à lire le code généré par ChatGPT. Nous avons simplement corrigé chaque avertissement affiché dans l'éditeur de code, puis lancé le bot.
Créer un cBot de trading de tendance
Bien que le cBot précédent ait très bien fonctionné, il utilisait une logique simple et ne prêtait pas attention aux tendances du marché. Nous allons essayer de créer quelque chose de plus complexe en utilisant la même approche de prompting qu'auparavant.
- Phrase de départ : "Imaginons que vous êtes un développeur de cBot qualifié pour cTrader. Je serai votre client."
- Exigences spécifiques : "Créez un cBot. À chaque barre, il doit vérifier si la moyenne mobile de 50 jours est au-dessus ou en dessous de la moyenne mobile de 200 jours. Si elle est au-dessus, le bot doit placer un ordre d'achat. Si elle est en dessous, le bot doit placer un ordre de vente. Le bot ne doit pas placer d'ordre s'il existe déjà une position ouverte dans la même direction. Le volume de l'ordre doit être un paramètre personnalisable."
- Politesse : "Merci pour votre aide !"
Une fois de plus, nous allons simplement copier et coller le code qui nous a été donné par ChatGPT dans la fenêtre de l'éditeur de code et essayer de construire le bot. Voici toutes les erreurs de construction que nous obtenons :
- Le code utilise le membre API obsolète
MarketSeries. Nous pouvons le remplacer par la collectionBars.ClosePrices. - Nous devons à nouveau remplacer l'argument
SymbolparSymbolName. - Nous devons également supprimer certains arguments inutiles des méthodes
ExecuteMarketOrdercar ils ne correspondent à aucune des surcharges de méthode disponibles.
Nous pouvons également examiner comment notre logique a été réalisée. Dans la méthode OnStart(), nous initialisons nos moyennes mobiles. ChatGPT a fait des périodes de moyenne mobile des paramètres personnalisables même si nous ne le lui avons pas demandé. Nous pouvons le laisser tel quel sans affecter la logique de base.
Cependant, dans la méthode OnBar(), nous pouvons voir que le bot ne place de nouveaux ordres que lorsqu'il n'y a pas de positions ouvertes (Positions.Count ==0). Ce n'est pas ce que nous voulons car nous voulons également vérifier la direction de la position. Nous pouvons légèrement modifier le code pour obtenir le bot suivant.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | |
Nous avons utilisé la méthode Positions.FindAll(string label) pour obtenir toutes les positions avec une étiquette donnée et calculer leur nombre.
Lorsque nous construisons le bot, nous pouvons l'ajouter à un graphique. Nous ajouterons également des moyennes mobiles de 50 et 200 jours afin de pouvoir évaluer les comportements du cBot. Après avoir attendu un peu, nous pouvons voir que le bot fonctionne comme prévu. De nouveaux ordres sont placés lorsque nécessaire, mais pas plus d'une position ouverte n'existe dans une direction donnée.
Créer un cBot en utilisant d'autres IA
Résumé
ChatGPT peut être un outil précieux lorsque vous devez créer rapidement un cBot avec une logique précisément définie. Bien que ChatGPT produise quelques erreurs, elles sont généralement insignifiantes et peuvent être corrigées rapidement.
