Aller au contenu

Comment créer un cBot pour cTrader en 5 minutes

Dans cet article et sa vidéo correspondante, nous allons décrire une méthode rapide pour créer un cBot dans cTrader Algo. Le cBot que nous allons créer mettra en œuvre une stratégie de trading simple appelée Trois soldats blancs et trois corbeaux noirs. Vous pouvez en savoir plus sur cette stratégie dans notre base de connaissances.

Avant de suivre nos instructions, assurez-vous d'avoir téléchargé et installé l'application cTrader Windows ou Mac depuis le site officiel. Lancez-la et accédez à la section cTrader Algo. Vous pouvez la trouver dans le panneau de gauche. Cliquez sur l'onglet Algo, et la section cTrader Algo devrait apparaître.

Ajouter un nouveau cBot

Cliquez sur le bouton Nouveau dans cTrader Algo pour commencer à créer un nouveau cBot. Entrez un nom, choisissez un langage de programmation entre C# et Python et continuez jusqu'à ce que l'éditeur de code s'ouvre.

Ajouter les paramètres du cBot

Avant de commencer à implémenter une stratégie de trading, nous examinerons les paramètres et méthodes de base des cBots. Vous pouvez également consulter notre documentation pour vous familiariser avec ce que font les différents paramètres et méthodes.

  • Paramètres du cBot – vous permettent de définir des attributs configurables tels que le volume tradé ou les distances de stop loss/take profit.

  • Méthodes du cBot – définissent comment votre cBot se comporte lorsque des événements spécifiques se produisent. Il existe quatre événements principaux que vous devez gérer lors du développement d'un cBot cTrader, et chacun est géré par une méthode correspondante fournie par cTrader. Ces méthodes sont OnStart(), OnTick(), OnBar(), OnStop() en C# et on_start(), on_tick(), on_bar_closed(), on_stop() en Python. Notez que la méthode OnBar() en C# et on_bar_closed() en Python n'est pas incluse dans le modèle de code par défaut.

Le tableau suivant définit ces quatre méthodes en détail.

C# Python Objectif
OnStart() on_start() Déclenchée lorsqu'une instance de cBot commence à fonctionner. Elle est utilisée pour initialiser toutes les variables que vous prévoyez d'utiliser dans votre cBot, telles que les indicateurs, les compteurs, les gestionnaires d'événements ou les minuteurs.
OnTick() on_tick() Déclenchée à chaque tick (mise à jour du cours) sur le graphique de trading sur lequel une instance de cBot est en cours d'exécution. Couramment utilisée pour une logique d'entrée ou de sortie rapide basée sur des données en temps réel. Dans cette méthode, vous pouvez programmer des conditions d'entrée et de sortie personnalisées ainsi que toute autre fonction auxiliaire que vous devez exécuter lorsqu'un nouveau tick arrive.
OnBar() on_bar_closed() Déclenchée à la clôture de chaque barre. Dans cette méthode, vous pouvez programmer des conditions d'entrée et de sortie personnalisées ou toute autre fonction qui doit s'exécuter lors de la formation de chaque nouvelle barre.
OnStop() on_stop() Appelée lorsque le cBot s'arrête. Utilisée pour effectuer des opérations finales telles que la fermeture de positions, la sauvegarde de l'état et plus encore

Ajouter la logique de trading

Nous allons maintenant ajouter le code pour notre stratégie de trading. Notre cBot doit ouvrir une position longue lorsque trois barres vertes sont formées sur le graphique et une position courte lorsqu'il y a trois barres rouges consécutives.

Tout d'abord, nous devons définir les paramètres de notre cBot. Ces paramètres seront entièrement personnalisables depuis l'interface utilisateur de cTrader. Nous définirons trois paramètres dans notre cBot.

  1. Le volume de chaque trade.
  2. Le stop loss en pips.
  3. Le take profit en pips.

Collez le code suivant dans votre éditeur de code juste en dessous des accolades après la déclaration de classe (public class NewcBot : Robot)

1
2
3
4
5
6
7
8
[Parameter(DefaultValue = 1000)]
public double Volume { get; set; }
        
[Parameter(DefaultValue = 10)]
public double TakeProfit { get; set; }
        
[Parameter(DefaultValue = 10)]
public double StopLoss { get; set; }

Remarque

Les cBots Python utilisent des paramètres personnalisables déclarés dans leurs fichiers .cs.

1
2
3
4
5
6
7
8
[Parameter(DefaultValue = 1000)]
public double Volume { get; set; }
        
[Parameter(DefaultValue = 10)]
public double TakeProfit { get; set; }
        
[Parameter(DefaultValue = 10)]
public double StopLoss { get; set; }

Nous devons maintenant implémenter la logique derrière notre stratégie de trading. Collez le code suivant dans votre méthode OnBar() ou on_bar_closed(). Rappelez-vous que cette méthode est appelée chaque fois qu'une nouvelle barre est formée.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
//Three White Soldiers
if(Bars.ClosePrices.Last(1) > Bars.OpenPrices.Last(1) 
&& Bars.ClosePrices.Last(2) > Bars.OpenPrices.Last(2)  
&& Bars.ClosePrices.Last(3) > Bars.OpenPrices.Last(3))
{
    ExecuteMarketOrder(TradeType.Buy, SymbolName, Volume, "", StopLoss, TakeProfit);
}
            
//Three Black Crows
if(Bars.ClosePrices.Last(1) < Bars.OpenPrices.Last(1) 
&& Bars.ClosePrices.Last(2) < Bars.OpenPrices.Last(2)  
&& Bars.ClosePrices.Last(3) < Bars.OpenPrices.Last(3))
{
    ExecuteMarketOrder(TradeType.Sell, SymbolName, Volume, "", StopLoss, TakeProfit);
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Three White Soldiers
if (close.Last(1) > open_.Last(1) and
    close.Last(2) > open_.Last(2) and
    close.Last(3) > open_.Last(3)):
    api.ExecuteMarketOrder(TradeType.Buy, api.SymbolName, api.Volume, "", api.StopLoss, api.TakeProfit)

# Three Black Crows
elif (close.Last(1) < open_.Last(1) and
      close.Last(2) < open_.Last(2) and
      close.Last(3) < open_.Last(3)):
    api.ExecuteMarketOrder(TradeType.Sell, api.SymbolName, api.Volume, "", api.StopLoss, api.TakeProfit)

Nous allons maintenant examiner le code de plus près. cTrader fournit un accès aux barres historiques du graphique, nous permettant de vérifier si les trois dernières barres sont toutes vertes ou toutes rouges, respectivement. Dans la méthode OnBar() en C# et on_bar_closed() en Python ci-dessus, nous vérifions d'abord si les trois dernières barres étaient toutes vertes. Nous évaluons ensuite si ces barres étaient toutes rouges.

Si l'une des deux conditions est vraie, nous plaçons un ordre au marché en utilisant la méthode ExecuteMarketOrder(). Elle prend plusieurs entrées (arguments), les plus importantes étant la direction du trade, le symbole, le volume tradé, le stop loss et le take profit.

Dans notre cas, la direction de l'ordre (TradeType.Buy, TradeType.Sell) est déterminée par les conditions de la stratégie de trading. Le nom du symbole est pris directement du graphique sur lequel notre cBot est en cours d'exécution SymbolName. Le volume de trading, le stop loss et le take profit (Volume, StopLoss, TakeProfit en C# et VolumeInLots, StopLossInPips, TakeProfitInPips en Python) sont tous récupérés à partir des paramètres du cBot que nous avons définis.

Créer et exécuter le cBot

Nous devons maintenant vérifier si notre cBot se construit avec succès. Par défaut, la fenêtre de résultat de construction se trouve directement sous l'éditeur de code. Si vous ne la voyez pas, cliquez sur le bouton Disposition dans la barre supérieure de l'interface utilisateur de cTrader et sélectionnez Résultat de construction. Le raccourci clavier pour cette action est Ctrl + W

Ensuite, cliquez sur le bouton Construire situé dans la barre supérieure de l'interface utilisateur de cTrader. Vous pouvez également faire un clic droit sur votre cBot et cliquer sur Construire dans le menu qui vient d'apparaître, ou simplement appuyer sur Ctrl + B.

Image title

Si la construction réussit, vous verrez un message vert dans la zone Résultat de construction en bas de l'éditeur de code.

Image title

Sinon, s'il y a des problèmes avec votre code, vous verrez un message rouge et un résumé détaillé de toutes les erreurs de construction.

Image title

Une fois que votre cBot a été construit avec succès, vous pouvez commencer à l'utiliser. Tout ce que vous avez à faire est d'ajouter une instance sur un graphique de trading. Pour ce faire, cliquez simplement sur l'icône + à droite du nom de votre cBot. Vous verrez une liste de tous les symboles sur lesquels vous pouvez exécuter votre cBot.

Image title

Nous allons sélectionner EURUSD. Après avoir choisi un symbole, une nouvelle instance de cBot sera ajoutée. Vous verrez un nouvel élément dans la liste des cBots avec le nom du symbole et la période que vous souhaitez trader.

Vous devriez également voir les paramètres que vous avez codés dans l'onglet Paramètres directement sous le graphique de trading.

Image title

Vous pouvez modifier ces paramètres comme vous le souhaitez ou simplement les laisser à leurs valeurs par défaut.

De plus, vous verrez un bouton Lecture en haut du graphique EURUSD.

Image title

Pour lancer votre instance, appuyez sur ce bouton. Vous pouvez également trouver une copie de ce bouton à droite de votre instance dans la liste des cBots à gauche. L'un ou l'autre de ces boutons démarrera le cBot.

Après avoir cliqué sur l'un des boutons, vous devriez le voir devenir orange, ce qui signifie qu'une instance de notre cBot est maintenant en cours d'exécution. Dans l'onglet Journal, vous devriez également voir une nouvelle ligne indiquant que le cBot a maintenant démarré.

Backtester le cBot

Notre cBot peut prendre beaucoup de temps pour ouvrir une position sur un graphique de trading réel. Nous allons effectuer un backtest rapide pour le voir en action sur des données historiques. Pour ce faire, ouvrez l'onglet Backtest.

Image title

Utilisez le curseur de calendrier plus près du haut de l'écran pour sélectionner la plage de dates que vous souhaitez utiliser pour le backtesting. Activez l'indicateur Mode visuel pour suivre les résultats du backtesting au fur et à mesure qu'ils se produisent.

Nous allons déplacer le curseur d'un mois en arrière. Cliquez sur le bouton Lecture pour lancer le cBot sur les données historiques choisies.

Ensuite, vous pourrez voir de nouvelles positions s'ouvrir et/ou se fermer dans l'onglet immédiatement sous le graphique de trading et à droite de la section Paramètres. Plus précisément, après avoir détecté l'un des deux modèles que nous avons codés, le cBot placera un ordre d'achat ou de vente.

L'exécution d'un backtest est un moyen utile d'analyser si votre cBot fonctionne correctement.

Résumé

Nous espérons que cet article vous a été utile pour démontrer comment vous pouvez créer un robot de trading automatisé en utilisant cTrader.

Image title