Aller au contenu

Utilisez Visual Studio et d'autres IDE

Créer de nouveaux cBots/indicateurs

Vous pouvez choisir d'utiliser des IDE externes pour créer de nouveaux cBots/indicateurs au lieu de le faire à l'aide de l'éditeur de code intégré. L'utilisation d'IDE externes présente plusieurs avantages, notamment la possibilité d'utiliser des extensions IDE personnalisées, y compris des linters et des formateurs automatiques.

IDE externes

Voici la liste complète des IDE externes actuellement pris en charge par cTrader.

  • Visual Studio
  • Visual Studio Code
  • Rider
  • Sublime Text

Vous pouvez utiliser n'importe lequel des éléments ci-dessus pour modifier un algorithme si vous avez accès à son code source. Sélectionnez un tel algorithme dans la liste et ouvrez le menu déroulant Modifier dans... en haut de la fenêtre de l'éditeur de code. Dans le menu, sélectionnez l'IDE avec lequel vous souhaitez ouvrir l'algorithme.

Bien qu'il existe un grand nombre d'IDE appropriés pour travailler avec C# et .NET, nous recommandons d'utiliser soit Microsoft Visual Studio, soit Visual Studio Code. Ces deux IDE sont faciles à utiliser et offrent un large éventail de paramètres personnalisables facilitant le travail avec C# et .NET. Notre documentation ne couvre que ces IDE.

Visual Studio

Installer le package NuGet cTrader.Automate

Avant de créer un cBot ou un indicateur, installez le package NuGet cTrader.Automate. Vous pouvez le faire en effectuant les actions suivantes :

  • Ouvrez le menu Projet dans Visual Studio et sélectionnez Gérer les packages NuGet.
  • Sélectionnez nuget.org comme source de package et tapez cTrader dans la barre de recherche.
  • Cliquez sur le package cTrader.Automate et sélectionnez Installer.

Image title

Remarque

Si vous travaillez à partir d'une version antérieure de Visual Studio (2015 ou antérieure), vous devrez également installer le gestionnaire de packages NuGet. Pour plus d'informations, consultez cette documentation.

Vous pouvez également ouvrir le menu Outils, sélectionner Gestionnaire de packages NuGet et ouvrir la console du gestionnaire de packages. Dans celle-ci, tapez Install-Package cTrader.Automate.

Après avoir installé le package NuGet cTrader.Automate, chaque fois que vous construisez un projet cBot/indicateur, Visual Studio créera automatiquement un fichier .algo pour votre projet dans son répertoire build. Lorsque vous travaillez sous Windows, le package créera également un fichier .algo correspondant dans le dossier ../Documents/cAlgo/Sources/{Robots/Indicators}.

Créer de nouveaux cBots et indicateurs dans Visual Studio

Pour créer un nouveau cBot/indicateur, créez un nouveau projet dans Visual Studio et choisissez Bibliothèque de classes. Nommez votre projet comme vous souhaitez que votre cBot/extension soit nommé.

Image title

Dans le fichier « Class1.cs », écrivez le code de votre cBot/indicateur. Ensuite, ouvrez le menu Générer et sélectionnez Générer la solution. Vous pouvez également appuyer sur Ctrl+Shift+B. Après une construction réussie, vous devriez voir un fichier .algo dans les répertoires spécifiés ci-dessus.

Si vous ne voyez pas votre nouveau cBot/indicateur dans l'interface utilisateur de cTrader, relancez la plateforme cTrader, et il devrait apparaître parmi les autres extensions.

Pour plus d'informations sur Visual Studio, consultez cette documentation.

Visual Studio Code

Comparé à Visual Studio, VS Code est un éditeur de code beaucoup plus léger, ce qui justifie sa popularité croissante parmi les développeurs. To create cBots/indicators via VS Code, you have to meet the following prerequisites.

  • Installez le SDK .NET.
  • Installez une extension C# dans VS Code.

Pour installer une extension appropriée, ouvrez le marketplace des extensions, tapez C# dans la barre de recherche et choisissez soit l'extension officielle de Microsoft, soit tout autre module complémentaire approprié.

Image title

Ensuite, vous devrez utiliser l'interface de ligne de commande (CLI) .NET pour créer une solution et un projet de bibliothèque de classes contenant votre cBot/indicateur.

Remarque

Vous ne devez utiliser Documents\cAlgo\Sources que si vous utilisez un système Windows, sinon vous pouvez créer et construire vos projets d'indicateur/cBot dans n'importe quel répertoire.

Créer un indicateur

Pour créer un indicateur via VS Code, ouvrez un nouveau terminal PowerShell en choisissant Nouveau terminal dans le menu Terminal. Vous pouvez également appuyer sur Ctrl+Shift+`.

1. Dans le terminal, ouvrez votre répertoire Documents\cAlgo\Sources\Indicators.

cd Documents\cAlgo\Sources\Indicators

2. Créez un nouveau répertoire pour votre indicateur. Il contiendra votre solution d'indicateur et votre projet. Passez à ce répertoire.

mkdir MyIndicator
cd MyIndicator

3. Créez une nouvelle solution .NET dans le répertoire nouvellement créé.

dotnet new sln

4. Créez un projet de bibliothèque de classes .NET.

dotnet new classlib --name MyIndicator

Ce projet sera créé dans le répertoire MyIndicator.

5. Ajoutez le projet à votre solution.

dotnet sln add .\MyIndicator\MyIndicator.csproj

6. Installez le package NuGet cTrader.Automate.

dotnet add .\MyIndicator\MyIndicator.csproj package cTrader.Automate

7. Ajoutez une classe d'indicateur. Pour ce faire, renommez le fichier Class1.cs en MyIndicator.cs et ouvrez-le, puis remplacez son contenu par le code d'espace réservé suivant. Modifiez le code dans VS Code.

 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
using cAlgo.API;

namespace cAlgo;

[Indicator(AccessRights = AccessRights.None)]
public class MyIndicator : Indicator
{
    [Parameter(DefaultValue = "Hello world!")]
    public string Message { get; set; }

    [Output("Main")]
    public IndicatorDataSeries Result { get; set; }

    protected override void Initialize()
    {
        // To learn more about cTrader Algo visit our Help Center:
        // https://help.ctrader.com/ctrader-algo

        Print(Message);
    }

    public override void Calculate(int index)
    {
        // Calculate value at specified index
        // Result[index] =
    }
}

8. Construisez le projet.

dotnet build --configuration Release

Vous pouvez également construire votre projet avec le code source.

dotnet build --configuration Release -p:IncludeSource=True

Vous pouvez changer la configuration de construction en Debug si vous souhaitez déboguer votre indicateur.

Après une construction réussie, vous aurez le fichier .algo de l'indicateur dans le dossier bin de son projet et également dans le dossier Documents\cAlgo\Sources\Indicators\ si vous utilisez Windows.

Créer un cBot

La création d'un cBot est similaire à la création d'un indicateur, sauf que vous devez utiliser la classe Robot au lieu de la classe Indicator et le répertoire Documents\cAlgo\Sources\Robots\ au lieu de Documents\cAlgo\Sources\Indicators\.

Vous pouvez utiliser l'exemple de code ci-dessous pour votre classe cBot :

 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
using cAlgo.API;

namespace cAlgo.Robots;

[Robot(AccessRights = AccessRights.None)]
public class MyRobot : Robot
{
    [Parameter(DefaultValue = "Hello world!")]
    public string Message { get; set; }

    protected override void OnStart()
    {
        // To learn more about cTrader Algo visit our Help Center:
        // https://help.ctrader.com/ctrader-algo

        Print(Message);
    }

    protected override void OnTick()
    {
        // Handle price updates here
    }

    protected override void OnStop()
    {
        // Handle cBot stop here
    }
}

Autres IDE .NET

Si vous le souhaitez, vous pouvez utiliser d'autres IDE pour travailler avec les cBots, les plug-ins et les indicateurs. Suivez ces étapes pour créer des extensions cTrader valides :

  1. Créez un projet de bibliothèque de classes .NET.
  2. Installez le package NuGet cTrader.Automate.
  3. Créez un fichier de classe contenant le code source de votre cBot/indicateur. Les indicateurs héritent de la classe Indicator tandis que les cBots doivent hériter de la classe Robot.
  4. Construisez votre extension. Pour plus d'informations sur la compilation/construction, consultez la section correspondante de cette documentation.