Aller au contenu

Comment créer un robot de trading forex en Python à l'aide de l'IA

Cet article et cette vidéo montrent comment créer un robot de trading Python gratuit pour cTrader avec l'IA.

Remarque

cTrader est la seule plateforme majeure offrant une prise en charge native de Python, permettant à quiconque de créer de puissants robots Python pour automatiser les stratégies de trading. Aucun adaptateur ni solution de contournement complexe n'est nécessaire.

Bien que ChatGPT soit utilisé pour la démonstration, les mêmes étapes pour créer des robots de trading avec l'IA s'appliquent à Gemini, Claude, DeepSeek et autres.

Sélectionner un modèle Python

Ouvrez cTrader Algo dans cTrader Windows ou Mac, puis cliquez sur Nouveau pour commencer à créer un nouveau robot de trading.

Dans l'assistant de création d'algorithme, créez un nouvel algorithme et donnez-lui un nom.

Choisissez Python comme langage de programmation, puis sélectionnez l'option À l'aide d'un modèle.

cTrader propose une grande variété de modèles Python, couvrant tous les types de stratégies, styles d'analyse ou activités de trading automatisé. Ces algorithmes préconstruits contiennent déjà une logique de trading complète et des paramètres ajustables, ils sont donc prêts à l'emploi une fois que vous les avez enregistrés et compilés.

Remarque

La collection complète de modèles d'algorithmes est disponible dans l'assistant de création d'algorithmes dans cTrader Windows ou Mac, et vous pouvez également y accéder dans notre dépôt public.

Supposons que nous nous spécialisions dans le trading de cassure. Par conséquent, nous choisissons Sample Breakout cBot.

Remarque

Des descriptions détaillées des modèles d'algorithmes populaires, y compris Breakout cBot, sont disponibles dans notre Base de connaissances.

Breakout cBot tire parti du mouvement des prix au-delà d'un niveau de support ou de résistance prédéfini, et l'indicateur Bollinger Bands guide ses décisions. Compilons le robot de trading et effectuons un backtest.

Appuyez sur Ctrl+B ou cliquez sur Compiler en haut de l'éditeur de code.

Une fois la compilation réussie, cliquez sur n'importe quelle instance disponible sous le nom du cBot.

Dans la grille principale, accédez à l'onglet Backtesting. Effectuez un backtest d'un an en utilisant les paramètres par défaut pour évaluer les résultats du robot. Le cBot produit un gain de 22 % pour cette période, générant 74 trades gagnants sur 194 comme enregistré dans l'onglet Statistiques de trading.

Améliorer le cBot avec l'IA

Avec l'assistance de l'IA, vous pouvez améliorer le code du robot de trading pour de meilleurs résultats et identifier les combinaisons de paramètres qui produisent des rendements plus élevés.

Le RSI est un indicateur de momentum qui filtre les cassures faibles ou les faux signaux. Cet indicateur devrait se fondre parfaitement et compléter les Bollinger Bands utilisées dans Sample Breakout cBot. Pour référence, vous pouvez obtenir l'intégration du RSI pour Super cBot fournie dans un article du Centre d'assistance.

Prenez l'extrait d'intégration du RSI, joignez-le à une invite contenant toutes les informations nécessaires, puis transmettez le tout à l'outil d'IA :

Prompt

Study the RSI integration in Super cBot, then implement the same RSI filters in Special cBot. 

[Special cBot code]

[Super cBot integrated with RSI code]

L'IA réfléchit puis fournit le code pour Special cBot intégré avec le RSI.

 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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import clr

clr.AddReference("cAlgo.API")

# Import cAlgo API types
from cAlgo.API import *

# Import trading wrapper functions
from robot_wrapper import *

class SampleBreakoutcBot():
    Label = "Sample Breakout cBot"

    def on_start(self):
        # Bollinger Bands for breakout consolidation logic
        self.bollingerBands = api.Indicators.BollingerBands(api.Source, api.Periods, api.Deviations, api.MAType)

        # Track consolidation bars
        self.consolidation = 0

        # --- RSI filter (same style as grid cBot) ---
        self.rsi_period = getattr(api, "RsiPeriod", 14)
        self.rsi_overbought = getattr(api, "RsiOverbought", 70)
        self.rsi_oversold = getattr(api, "RsiOversold", 30)
        self.rsi = api.Indicators.RelativeStrengthIndex(api.Bars.ClosePrices, self.rsi_period)

    def on_bar(self):
        top = self.bollingerBands.Top.Last(1)
        bottom = self.bollingerBands.Bottom.Last(1)

        # Detect consolidation via band height
        if top - bottom <= api.BandHeightPips * api.Symbol.PipSize:
            self.consolidation += 1
        else:
            self.consolidation = 0

        if self.consolidation >= api.ConsolidationPeriods:
            volumeInUnits = api.Symbol.QuantityToVolumeInUnits(api.Quantity)

            # Breakout up
            if api.Ask > top:
                if self.passes_rsi_filter():
                    api.ExecuteMarketOrder(TradeType.Buy, api.SymbolName, volumeInUnits, self.Label, api.StopLossInPips, api.TakeProfitInPips)
                    self.consolidation = 0
                else:
                    api.Print("RSI filter blocked BUY breakout (RSI={:.2f}, range {}-{})"
                              .format(self.get_rsi_value(), self.rsi_oversold, self.rsi_overbought))

            # Breakout down
            elif api.Bid < bottom:
                if self.passes_rsi_filter():
                    api.ExecuteMarketOrder(TradeType.Sell, api.SymbolName, volumeInUnits, self.Label, api.StopLossInPips, api.TakeProfitInPips)
                    self.consolidation = 0
                else:
                    api.Print("RSI filter blocked SELL breakout (RSI={:.2f}, range {}-{})"
                              .format(self.get_rsi_value(), self.rsi_oversold, self.rsi_overbought))

    # --- Helpers copied in spirit from the grid cBot ---
    def get_rsi_value(self):
        # Use the last CLOSED bar for stability
        return self.rsi.Result.Last(1)

    def passes_rsi_filter(self):
        r = self.get_rsi_value()
        return (r > self.rsi_oversold) and (r < self.rsi_overbought)

Ensuite, demandez à l'IA de recommander des paramètres optimaux pour le robot de trading en fonction de notre stratégie.

Prompt

I want the cBot to generate smoother, slower signals that pair naturally with the RSI filter. 
I prefer fewer trades but cleaner breakouts. 
I am setting the consolidation period to 1 because I want the cBot to act immediately when 
volatility compresses. 

Which moving average type is best for this?

L'IA réfléchit puis fournit des informations utiles. Elle recommande Wilders Smoothing comme meilleur type de moyenne mobile pour notre stratégie.

Appliquer les recommandations de l'IA

Retournez à l'éditeur de code dans cTrader et appliquez les modifications recommandées. Collez le code mis à jour, puis compilez le cBot amélioré.

Ouvrez à nouveau l'onglet Backtesting. Définissez la moyenne mobile sur Wilders Smoothing, comme recommandé par l'IA, puis exécutez un backtest pour la même période d'un an.

Cette fois, le rapport de backtesting sur la même période montre un gain de 97 %, une amélioration massive par rapport aux 22 % générés par la logique originale du cBot.

Le nouveau résultat démontre à quel point les conseils de l'IA peuvent être efficaces pour affiner les performances des robots de trading et optimiser leurs paramètres afin d'obtenir d'excellents résultats. Le taux de réussite du robot s'est également considérablement amélioré, générant 51 trades gagnants sur un total de 93.

Démarrer le cBot dans le cloud

Grâce à la synchronisation du cloud, le nouveau cBot est automatiquement disponible depuis toutes les applications cTrader où votre cTrader ID est actif. Vous pouvez même démarrer le robot de trading dans cTrader Mobile ou Web.

Appuyez simplement sur l'icône Démarrer.

Étant donné que le cBot s'exécute dans le cloud, il continue de trader 24 heures sur 24 sans interruption, même si votre application cTrader est fermée ou si votre appareil est éteint. Aucun VPS n'est nécessaire.

Monétiser le cBot

En option, vous pouvez monétiser votre cBot dans cTrader Store, une place de marché sécurisée et dynamique qui met en relation acheteurs et vendeurs de produits de trading.

Pour publier un produit, sélectionnez le cBot que vous souhaitez vendre directement depuis le cloud ou téléchargez un fichier, puis fournissez les détails nécessaires. Une fois publié, l'algorithme est mis en ligne dans cTrader Store et devient disponible à l'achat pour des millions d'utilisateurs de cTrader.

Remarque

La distribution d'algorithmes via cTrader Store est totalement sécurisée, car votre code source n'est jamais révélé ni téléchargé nulle part. Votre propriété intellectuelle est également respectée, car chaque achat de produit est destiné à un seul utilisateur et n'est pas transférable.

Image title