Convertisseur de devises
Dans le trading algorithmique, donner aux cBots et aux indicateurs la capacité de convertir de manière autonome les devises en utilisant les taux de marché actuels est essentiel. Dans ce guide API, nous expliquons comment cette fonctionnalité est implémentée dans cTrader.
Conversion de devises en une minute !
- Les méthodes
Convert (double value, Asset from, Asset toetConvert(double value, string from, string to))renvoient le taux de conversion exact entre les actifs spécifiés ou les actifs avec les noms spécifiés. Accédez-y via la nouvelle propriétéAssetConverterde la classeAlgo. - La classe
Assetinclut ses propres méthodesConvert(Asset to, double value)etConvert(string to, double value)qui peuvent être facilement invoquées à partir de n'importe quel objetAsset. - Lors du backtesting, cTrader utilisera automatiquement les taux de conversion historiques. Cela signifie que vous pouvez toujours vous attendre à des résultats historiquement précis et évaluer pleinement les performances de vos cBots.
Comment fonctionne la conversion de devises
L'interface IAssetConverter dans l'espace de noms cAlgo.API.Internals contient la méthode Convert() qui a les surcharges suivantes :
double Convert(double value, Asset from, Asset to)- convertit la valeur spécifiée de l'actiffromvers l'actifto.double Convert(double value, string from, string to)- convertit la valeur spécifiée de l'actif dont le nom correspond à la chaînefromvers l'actif dont le nom correspond à la chaîneto.
La classe Algo inclut désormais la propriété AssetConverter du type IAssetConverter. Vous pouvez accéder aux deux méthodes ci-dessus en tapant ce qui suit.
1 | |
La classe Asset a également ses propres méthodes Convert() avec les surcharges suivantes :
double Convert(Asset to, double value)- convertit la valeur spécifiée de l'actif à partir duquel cette méthode est appelée vers l'actifto.double Convert(string to, double value)- convertit la valeur spécifiée de l'actif à partir duquel cette méthode est appelée vers l'actif dont le nom correspond à la chaîneto.
Considérez l'exemple ci-dessous dans lequel notre cBot convertit GBP en JPY, puis exécute un nouvel ordre au marché en utilisant la valeur calculée comme volume de l'ordre.
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 | |
Si nous examinons le journal, nous pouvons voir que notre cBot se comporte comme prévu. Au moment où l'instance a été démarrée, le prix vendeur pour GBPJPY était égal à 159.619.

Conversion de devises dans le backtesting
cTrader prend entièrement en charge les taux de conversion historiques dans le backtesting.
Cela signifie que, lorsque vous effectuez un backtesting d'un cBot qui utilise l'une des méthodes décrites ci-dessus, les calculs de conversion seront effectués en utilisant des données historiquement précises plutôt que les taux de change actuels entre les actifs spécifiés. Cette fonctionnalité garantit que les résultats du backtesting et de l'optimisation sont aussi précis que possible compte tenu des conditions de marché passées.
Notez que cTrader peut construire des chaînes de conversion précises en utilisant des instruments de trading potentiellement illimités. Par conséquent, même si la devise de dépôt de votre compte diffère des actifs de base ou de cotation du symbole sur lequel vous souhaitez effectuer un backtesting, cTrader gérera tous les calculs nécessaires pour vous fournir des résultats de backtesting précis.
En résumé, les taux de conversion constituent un autre outil précieux pour s'assurer que vos cBots et indicateurs fonctionnent exactement comme prévu. Comme cTrader prend en charge l'utilisation de données historiques lors de la conversion d'actifs dans le backtesting, vous pouvez être sûr que tous les résultats de backtesting et d'optimisation sont historiquement précis.