コンテンツにスキップ

Visual Studioやその他のIDEを使用する

新しいcBot/インジケーターを作成する

内蔵のコードエディタを使用する代わりに、外部IDEを使用して新しいcBot/インジケーターを作成することもできます。 外部IDEを使用する利点として、リンターや自動フォーマッターなどのカスタムIDE拡張機能を使用できることが挙げられます。

外部IDE

以下は、現在cTraderでサポートされている外部IDEの完全なリストです。

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

ソースコードにアクセスできる場合、上記のいずれかを使用してアルゴリズムを編集できます。 リスト内でそのようなアルゴリズムを選択し、コードエディタウィンドウの上部にある編集...ドロップダウンを開きます。 メニューで、アルゴリズムを開くIDEを選択します。

C#と.NETで作業するための適切なIDEは多数存在しますが、Microsoft Visual StudioまたはVisual Studio Codeの使用を推奨します。 これらのIDEは使いやすく、C#と.NETでの作業を容易にする幅広いカスタマイズ可能な設定を提供しています。 当社のドキュメントでは、これらのIDEのみをカバーしています。

Visual Studio

cTrader.Automate NuGetパッケージをインストールする

cBotまたはインジケーターを作成する前に、cTrader.Automate NuGetパッケージをインストールしてください。 以下の手順でインストールできます:

  • Visual Studioでプロジェクトメニューを開き、NuGetパッケージの管理を選択します。
  • パッケージソースとしてnuget.orgを選択し、検索バーにcTraderと入力します。
  • cTrader.Automateパッケージをクリックし、インストールを選択します。

Image title

注意

古いバージョンのVisual Studio(2015以前)を使用している場合、NuGetパッケージマネージャーもインストールする必要があります。 詳細については、このドキュメントを参照してください。

または、ツールメニューを開き、NuGetパッケージマネージャーを選択して、パッケージマネージャーコンソールを開きます。 コンソールにInstall-Package cTrader.Automateと入力します。

cTrader.Automate NuGetパッケージをインストールすると、cBot/インジケータープロジェクトをビルドするたびに、Visual Studioは自動的にプロジェクトのbuildディレクトリに.algoファイルを作成します。 Windowsで作業している場合、パッケージは../Documents/cAlgo/Sources/{Robots/Indicators}フォルダにも対応する.algoファイルを作成します。

Visual Studioで新しいcBotとインジケーターを作成する

新しいcBot/インジケーターを作成するには、Visual Studio内で新しいプロジェクトを作成し、クラスライブラリを選択します。 プロジェクトに、cBot/拡張機能として付けたい名前を付けます。

Image title

「Class1.cs」ファイルに、cBot/インジケーターのコードを記述します。 その後、ビルドメニューを開き、ソリューションのビルドを選択します。 または、Ctrl+Shift+Bを押します。 ビルドが成功すると、上記のディレクトリに.algoファイルが表示されます。

cTrader UIに新しいcBot/インジケーターが表示されない場合は、cTraderプラットフォームを再起動すると、他の拡張機能の中に表示されるはずです。

Visual Studioに関する詳細情報は、このドキュメントを参照してください。

Visual Studio Code

Visual Studioと比較して、VS Codeははるかに軽量なコードエディタであり、これが開発者の間で人気が高まっている理由です。 VS CodeでcBot/インジケーターを作成するには、以下の前提条件を満たす必要があります。

  • .NET SDKをインストールします。
  • VS Code内にC#拡張機能をインストールします。

適切な拡張機能をインストールするには、拡張機能マーケットプレイスを開き、検索バーにC#と入力して、公式のMicrosoft拡張機能または他の適切なアドオンを選択します。

Image title

その後、.NETコマンドラインインターフェース(CLI)を使用して、cBot/インジケーターを含むソリューションとクラスライブラリプロジェクトを作成する必要があります。

注意

Windowsシステムを使用している場合のみDocuments\cAlgo\Sourcesを使用する必要があります。それ以外の場合は、任意のディレクトリでインジケーター/cBotプロジェクトを作成およびビルドできます。

インジケーターを作成する

VS Codeでインジケーターを作成するには、ターミナルメニューで新しいターミナルを選択して、新しいPowerShellターミナルを開きます。 または、Ctrl+Shift+`を押します。

1. ターミナルで、Documents\cAlgo\Sources\Indicatorsディレクトリを開きます。

cd Documents\cAlgo\Sources\Indicators\

2. インジケーター用の新しいディレクトリを作成します。 これには、インジケーターのソリューションとプロジェクトが含まれます。 このディレクトリに切り替えます。

mkdir MyIndicator
cd MyIndicator

3. 新しく作成したディレクトリ内に新しい.NETソリューションを作成します。

dotnet new sln

4. クラスライブラリの.NETプロジェクトを作成します。

dotnet new classlib --name MyIndicator

このプロジェクトはMyIndicatorディレクトリ内に作成されます。

5. プロジェクトをソリューションに追加します。

dotnet sln add .\MyIndicator\MyIndicator.csproj

6. cTrader.Automate NuGetパッケージをインストールします。

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

7. インジケータークラスを追加します。 これを行うには、Class1.csファイルをMyIndicator.csに名前を変更して開き、その内容を以下のプレースホルダーコードに置き換えます。 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. プロジェクトをビルドします。

dotnet build --configuration Release

ソースコードでプロジェクトをビルドすることもできます。

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

インジケーターをデバッグしたい場合は、ビルド構成をDebugに変更できます。

ビルドが成功すると、プロジェクトのbinフォルダ内と、Windowsを使用している場合はDocuments\cAlgo\Sources\Indicators\フォルダ内にインジケーターの.algoファイルが作成されます。

cBotを作成する

cBotの作成は、インジケーターの作成と似ていますが、Indicatorクラスの代わりにRobotクラスを使用し、Documents\cAlgo\Sources\Indicators\ディレクトリの代わりにDocuments\cAlgo\Sources\Robots\ディレクトリを使用する必要があります。

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

他の.NET IDE

必要に応じて、他のIDEを使用してcBot、プラグイン、インジケーターを操作できます。 有効なcTrader拡張機能を作成するには、以下の手順に従います:

  1. .NETクラスライブラリプロジェクトを作成します。
  2. cTrader.Automate NuGetパッケージをインストールします。
  3. cBot/インジケーターのソースコードを含むクラスファイルを作成します。 インジケーターはIndicatorクラスを継承し、cBotはRobotクラスを継承する必要があります。
  4. 拡張機能をビルドします。 コンパイル/ビルドに関する詳細情報は、このドキュメントの関連セクションを確認してください。