Zum Inhalt

Visual Studio und andere IDEs verwenden

Neue cBots/Indikatoren erstellen

Sie können externe IDEs verwenden, um neue cBots/Indikatoren zu erstellen, anstatt dies mit dem integrierten Code-Editor zu tun. Die Verwendung externer IDEs bietet mehrere Vorteile, wie z. B. die Möglichkeit, benutzerdefinierte IDE-Erweiterungen einschließlich Linters und Auto-Formatierern zu verwenden.

Externe IDEs

Hier ist die vollständige Liste der externen IDEs, die derzeit von cTrader unterstützt werden.

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

Sie können jede der oben genannten IDEs verwenden, um einen Algorithmus zu bearbeiten, wenn Sie Zugriff auf dessen Quellcode haben. Wählen Sie einen solchen Algorithmus in der Liste aus und öffnen Sie das Dropdown-Menü Bearbeiten in... oben im Code-Editor-Fenster. Wählen Sie im Menü die IDE aus, mit der Sie den Algorithmus öffnen möchten.

Obwohl es eine große Anzahl geeigneter IDEs für die Arbeit mit C# und .NET gibt, empfehlen wir die Verwendung von entweder Microsoft Visual Studio oder Visual Studio Code. Beide IDEs sind einfach zu bedienen und bieten eine breite Palette anpassbarer Einstellungen, die die Arbeit mit C# und .NET erleichtern. Unsere Dokumentation behandelt nur diese IDEs.

Visual Studio

Das cTrader.Automate NuGet-Paket installieren

Bevor Sie einen cBot oder einen Indikator erstellen, installieren Sie das cTrader.Automate NuGet-Paket. Sie können dies tun, indem Sie die folgenden Schritte ausführen:

  • Öffnen Sie das Menü Projekt in Visual Studio und wählen Sie NuGet-Pakete verwalten.
  • Wählen Sie nuget.org als Paketquelle aus und geben Sie cTrader in die Suchleiste ein.
  • Klicken Sie auf das Paket cTrader.Automate und wählen Sie Installieren.

Image title

Hinweis

Wenn Sie mit einer älteren Version von Visual Studio (2015 oder früher) arbeiten, müssen Sie auch den NuGet-Paket-Manager installieren. Weitere Informationen finden Sie in dieser Dokumentation.

Alternativ öffnen Sie das Menü Tools, wählen NuGet-Paket-Manager und öffnen die Paket-Manager-Konsole. Geben Sie darin Install-Package cTrader.Automate ein.

Nach der Installation des cTrader.Automate NuGet-Pakets erstellt Visual Studio automatisch eine .algo-Datei für Ihr Projekt in dessen build-Verzeichnis, wenn Sie ein cBot/Indikator-Projekt erstellen. Bei der Arbeit unter Windows erstellt das Paket auch eine entsprechende .algo-Datei im Ordner ../Documents/cAlgo/Sources/{Robots/Indicators}.

Neue cBots und Indikatoren in Visual Studio erstellen

Um einen neuen cBot/Indikator zu erstellen, erstellen Sie ein neues Projekt in Visual Studio und wählen Sie Klassenbibliothek. Benennen Sie Ihr Projekt so, wie Sie Ihren cBot/Ihre Erweiterung benennen möchten.

Image title

Schreiben Sie in der Datei „Class1.cs" den Code für Ihren cBot/Indikator. Öffnen Sie anschließend das Menü Erstellen und wählen Sie Projektmappe erstellen. Alternativ drücken Sie Ctrl+Shift+B. Nach einem erfolgreichen Build sollten Sie eine .algo-Datei in den oben angegebenen Verzeichnissen sehen.

Wenn Sie Ihren neuen cBot/Indikator nicht in der cTrader-Benutzeroberfläche sehen, starten Sie die cTrader-Plattform neu, und er sollte unter anderen Erweiterungen erscheinen.

Weitere Informationen zu Visual Studio finden Sie in dieser Dokumentation.

Visual Studio Code

Im Vergleich zu Visual Studio ist VS Code ein wesentlich schlankerer Code-Editor, was seine steigende Beliebtheit unter Entwicklern rechtfertigt. To create cBots/indicators via VS Code, you have to meet the following prerequisites.

  • Installieren Sie das .NET SDK.
  • Installieren Sie eine C#-Erweiterung in VS Code.

Um eine geeignete Erweiterung zu installieren, öffnen Sie den Erweiterungs-Marketplace, geben Sie C# in die Suchleiste ein und wählen Sie entweder die offizielle Microsoft-Erweiterung oder ein anderes geeignetes Add-on.

Image title

Anschließend müssen Sie die .NET-Befehlszeilenschnittstelle (CLI) verwenden, um eine Lösung und ein Klassenbibliotheksprojekt zu erstellen, das Ihren cBot/Indikator enthält.

Hinweis

Sie sollten Documents\cAlgo\Sources nur verwenden, wenn Sie ein Windows-System verwenden, andernfalls können Sie Ihre Indikator-/cBot-Projekte in jedem beliebigen Verzeichnis erstellen und erstellen.

Einen Indikator erstellen

Um einen Indikator über VS Code zu erstellen, öffnen Sie ein neues PowerShell-Terminal, indem Sie Neues Terminal im Menü Terminal wählen. Alternativ drücken Sie Ctrl+Shift+`.

1. Öffnen Sie im Terminal Ihr Verzeichnis Documents\cAlgo\Sources\Indicators.

cd Documents\cAlgo\Sources\Indicators

2. Erstellen Sie ein neues Verzeichnis für Ihren Indikator. Es wird Ihre Indikatorlösung und Ihr Projekt enthalten. Wechseln Sie zu diesem Verzeichnis.

mkdir MyIndicator
cd MyIndicator

3. Erstellen Sie eine neue .NET-Lösung im neu erstellten Verzeichnis.

dotnet new sln

4. Erstellen Sie ein Klassenbibliothek-.NET-Projekt.

dotnet new classlib --name MyIndicator

Dieses Projekt wird im Verzeichnis MyIndicator erstellt.

5. Fügen Sie das Projekt zu Ihrer Lösung hinzu.

dotnet sln add .\MyIndicator\MyIndicator.csproj

6. Installieren Sie das cTrader.Automate NuGet-Paket.

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

7. Fügen Sie eine Indikatorklasse hinzu. Benennen Sie dazu die Datei Class1.cs in MyIndicator.cs um und öffnen Sie sie, ersetzen Sie dann deren Inhalt durch den folgenden Platzhaltercode. Bearbeiten Sie den Code in 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. Erstellen Sie das Projekt.

dotnet build --configuration Release

Sie können Ihr Projekt auch mit Quellcode erstellen.

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

Sie können die Build-Konfiguration auf Debug ändern, wenn Sie Ihren Indikator debuggen möchten.

Nach einem erfolgreichen Build haben Sie die .algo-Datei des Indikators im bin-Ordner des Projekts und auch im Ordner Documents\cAlgo\Sources\Indicators\, wenn Sie Windows verwenden.

cBot erstellen

Das Erstellen eines cBots ist ähnlich wie das Erstellen eines Indikators, außer dass Sie die Klasse Robot anstelle der Klasse Indicator und das Verzeichnis Documents\cAlgo\Sources\Robots\ anstelle von Documents\cAlgo\Sources\Indicators\ verwenden müssen.

Sie können den folgenden Beispielcode für Ihre cBot-Klasse verwenden:

 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
    }
}

Andere .NET-IDEs

Wenn Sie möchten, können Sie andere IDEs verwenden, um mit cBots, Plugins und Indikatoren zu arbeiten. Befolgen Sie diese Schritte, um gültige cTrader-Erweiterungen zu erstellen:

  1. Erstellen Sie ein .NET-Klassenbibliotheksprojekt.
  2. Installieren Sie das cTrader.Automate NuGet-Paket.
  3. Erstellen Sie eine Klassendatei, die den Quellcode Ihres cBots/Indikators enthält. Indikatoren erben von der Klasse Indicator, während cBots von der Klasse Robot erben müssen.
  4. Erstellen Sie Ihre Erweiterung. Weitere Informationen zum Kompilieren/Erstellen finden Sie im entsprechenden Abschnitt dieser Dokumentation.