Compiler et construire des algorithmes dans cTrader
Vous pouvez utiliser deux types de compilateurs lors de la compilation/construction d'algos cTrader :
- Compilateur intégré
- Compilateur SDK .NET
Par défaut, cTrader utilise le compilateur intégré, mais nous vous recommandons de le changer pour le compilateur SDK .NET si vous en avez un installé sur votre machine locale.
Compilation de fichiers CSPROJ et récupération de cBots
cTrader Algo vous permet de générer et d'enregistrer des algorithmes en compilant des fichiers .csproj. Utilisez le code suivant pour exécuter l'opération :
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 | |
Si vous définissez AccessRights sur None, vous devez spécifier les chemins vers les répertoires à l'intérieur du dossier de données de l'algo. Cette configuration signifie que les algos ne sont pas autorisés à compiler des fichiers en dehors de leurs dossiers de données.
Si vous définissez AccessRights sur FullAccess, vous pouvez spécifier le chemin vers n'importe quel répertoire ou emplacement pour le fichier .csproj et l'algorithme généré.
Si vous avez l'intention d'utiliser un chemin de fichier relatif, le répertoire de base doit exister le long de ce chemin : ..Documents\Algo\Data\{Algo type}\{Algo name}.
Après avoir démarré le cBot localement, l'algorithme sera enregistré dans le répertoire spécifié.
Changement de compilateurs
Pour passer à un autre compilateur, cliquez sur Paramètres dans le coin inférieur gauche de l'interface utilisateur pour ouvrir la fenêtre des paramètres, puis passez à l'onglet Algo.

Ouvrez le menu déroulant Sélectionner le compilateur et choisissez un compilateur approprié parmi les options disponibles.
Compilateur intégré
Le compilateur intégré est intégré à la plateforme cTrader Windows. Par rapport au compilateur SDK .NET, il a des fonctionnalités limitées. Par exemple, le compilateur intégré ne prend en charge aucun package et framework .NET tiers tels que WinForms et WPF.
Compilateur SDK .NET
L'utilisation du compilateur SDK .NET est fortement recommandée pour les grands projets ou les extensions qui utilisent des bibliothèques .NET tierces. Le compilateur SDK .NET prend également en charge des fonctionnalités supplémentaires telles que les paramètres de construction.
Le menu Sélectionner le compilateur permet de choisir n'importe quel compilateur SDK .NET que vous avez installé sur votre machine locale. Si aucune version du SDK .NET n'est installée, vous pouvez toujours cliquer sur le bouton Installer le SDK .NET pour être redirigé vers la page de téléchargement de la dernière version stable.
Paramètres
cTrader offre des paramètres personnalisables que vous pouvez spécifier lors de l'utilisation de .NET CLI lors de la construction de vos cBots/indicateurs dans des IDE externes. Ils sont définis ci-dessous :
| Nom | Valeur par défaut | Description |
|---|---|---|
| AlgoName | $(MSBuildProjectName) | Spécifie le nom du fichier .algo.Cette propriété n'affecte pas le AssemblyName. |
| AlgoBuild | True | Permet de construire des fichiers .algo. |
| AlgoPublish | True | Permet de copier les fichiers .algo dans le répertoire MyDocuments de l'utilisateur actuel après une construction réussie. |
| IncludeSource | False | Inclut le répertoire source dans le fichier .algo cible. |
| IncludeSymbols | False (Release)True (Debug) | Inclut les symboles de débogage dans le fichier .algo cible. |
Gestion d'une erreur supplémentaire
Si vous référencez le package NuGet cTrader.Automate dans votre projet de bibliothèque de classes qui ne contient aucune classe d'algo cTrader (telle que Robot pour un cBot), vous rencontrerez l'erreur "Assembly must contain algo type" lorsque vous essayerez de construire le projet. Cette erreur survient car le paramètre AlgoBuild est égal à True par défaut.
Pour résoudre le problème, définissez simplement AlgoBuild sur False dans votre fichier de projet .NET comme indiqué dans l'exemple ci-dessous :
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AlgoBuild>false</AlgoBuild>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="cTrader.Automate" Version="1.*-*" />
</ItemGroup>
</Project>