Advanced operations with cBots
Ce guide est principalement destiné à compléter notre liste complète d'exemples de code cBot.
Trade other symbols
Vous pouvez développer un cBot qui trade plusieurs symboles en plus de celui spécifié lors de la création d'une nouvelle instance.
Pour rendre cela possible, Symbols est une collection de tous les symboles disponibles pour votre compte de trading. Vous pouvez itérer dessus en utilisant des boucles ; alternativement, vous pouvez effectuer une recherche pour trouver des symboles spécifiques.
Pour fonctionner correctement avec plusieurs symboles, les cBots doivent connaître les informations suivantes :
- Le volume minimum et maximum autorisé
- Le pas de volume
- La taille du tick en pip
- La valeur du tick en pip (la valeur monétaire d'un pip ou tick dans la devise de dépôt du compte)
Ces données peuvent être obtenues à partir d'un objet Symbol. Dans le code ci-dessous, nous trouvons un symbole avec "GBPUSD" comme nom, puis créons un ordre au marché pour celui-ci. Nous utilisons également son volume minimum autorisé comme volume d'ordre.
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
Convert pips to ticks
Lors du codage de cBots, il est facile de rencontrer des bugs résultant du fait que certaines valeurs de variables sont calculées en unités tandis que d'autres valeurs sont calculées en pips.
La classe SymbolExtensions ci-dessous montre comment les pips peuvent être convertis en ticks. Elle démontre également comment les pips peuvent être ajoutés à une valeur de prix absolue.
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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | |
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 | |
Get transaction details
Transactions contient des types qui fournissent des données sur les dépôts et les retraits pour les comptes. Ces types vous permettent d'accéder et de gérer les détails des transactions pour les comptes de manière programmatique.
Vous pouvez récupérer des données sur le type de transaction (dépôt ou retrait), le montant, les horodatages, l'ID de transaction, les détails du solde, les propriétés des fonds propres, etc.
Ce cBot récupère et affiche les détails de la transaction :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Get historical orders data
cTrader fournit la collection HistoricalOrder pour permettre aux utilisateurs de récupérer des informations sur les ordres, y compris les ordres au marché terminés et les ordres en cours qui ont été exécutés ou annulés. Les détails récupérables incluent l'ID de l'ordre, son type, son étiquette, le prix cible, l'expiration, etc.
Le code cBot ci-dessous vous montre comment obtenir les détails des ordres historiques :
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 | |
Utilisez les données de trades historiques
Lors du codage de cBots, vous avez accès à l'historique de votre compte. Cela signifie que vous pouvez parcourir vos trades passés et utiliser leurs données à toutes fins utiles.
L'extrait de code ci-dessous crée un fichier .CSV contenant tous nos trades passés et leurs données de trade.
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 | |
Obtenez des informations sur les transactions
Dans cTrader, les transactions exécutent les ordres et entraînent l'ouverture ou la fermeture de positions. Selon la liquidité du marché, un ordre peut être exécuté entièrement par une seule transaction ou en partie par plusieurs transactions. Consultez Positions et transactions pour en savoir plus.
Le code cBot ci-dessous vous montre comment récupérer des informations sur plusieurs transactions qui existent dans une seule position :
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 | |
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 | |
Convertir les lots en unités
Par défaut, les algorithmes cTrader calculent le volume en unités plutôt qu'en lots. Cependant, dans certains cas, vous pouvez trouver que travailler avec des lots est plus pratique et familier.
Vous pouvez convertir les lots en unités en utilisant la méthode Symbol.QuantityToVolumeUnits().
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Vous pouvez également utiliser la méthode Symbol.VolumeInUnitsToQuantity() pour convertir les unités en lots.
Travailler avec les couleurs
Les cBots peuvent utiliser des couleurs personnalisées lors de diverses opérations (par exemple, lors de l'affichage de texte sur les graphiques de trading). Pour ajouter une couleur en tant que paramètre personnalisable, ajoutez le code suivant à vos déclarations de paramètres.
1 2 | |
Remarque
Vous pouvez utiliser à la fois des codes de couleur hexadécimaux et des noms de couleurs (tels que "red") lors de la définition de la DefaultValue d'un tel paramètre.
Pour illustrer le fonctionnement des paramètres de couleur, nous allons créer un cBot simple qui, une fois démarré, écrira du texte sur le graphique de trading sur lequel il fonctionne. La couleur de ce texte sera personnalisable via le paramètre TextColor.
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 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |