Перейти к содержанию

Использование Visual Studio и других IDE

Создание новых сиБотов/индикаторов

Вы можете использовать внешние IDE для создания новых сиБотов/индикаторов вместо использования встроенного редактора кода. Использование внешних IDE имеет ряд преимуществ, таких как возможность использования пользовательских расширений IDE, включая линтеры и автоформатирование.

Внешние IDE

Вот полный список внешних IDE, которые в настоящее время поддерживаются cTrader.

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

Вы можете использовать любую из вышеперечисленных IDE для редактирования алгоритма, если у вас есть доступ к его исходному коду. Выберите такой алгоритм в списке и откройте выпадающее меню Редактировать в... в верхней части окна редактора кода. В меню выберите IDE, в которой вы хотите открыть алгоритм.

Хотя существует большое количество подходящих IDE для работы с C# и .NET, мы рекомендуем использовать либо Microsoft Visual Studio, либо Visual Studio Code. Обе эти IDE просты в использовании и предлагают широкий спектр настраиваемых параметров, облегчающих работу с C# и .NET. Наша документация охватывает только эти IDE.

Visual Studio

Установка пакета NuGet cTrader.Automate

Перед созданием сиБота или индикатора установите пакет NuGet cTrader.Automate. Вы можете сделать это, выполнив следующие действия:

  • Откройте меню Проект в Visual Studio и выберите Управление пакетами NuGet.
  • Выберите nuget.org в качестве источника пакетов и введите cTrader в строке поиска.
  • Нажмите на пакет cTrader.Automate и выберите Установить.

Image title

Примечание

Если вы работаете со старой версией Visual Studio (2015 или более ранней), вам также потребуется установить диспетчер пакетов NuGet. Для получения дополнительной информации обратитесь к этой документации.

Альтернативно откройте меню Инструменты, выберите Диспетчер пакетов NuGet и откройте консоль диспетчера пакетов. В ней введите Install-Package cTrader.Automate.

После установки пакета NuGet cTrader.Automate при каждой сборке проекта сиБота/индикатора Visual Studio будет автоматически создавать файл .algo для вашего проекта в его каталоге build. При работе в Windows пакет также создаст соответствующий файл .algo в папке ../Documents/cAlgo/Sources/{Robots/Indicators}.

Создание новых сиБотов и индикаторов в Visual Studio

Чтобы создать новый сиБот/индикатор, создайте новый проект в Visual Studio и выберите Библиотека классов. Назовите свой проект так, как вы хотите назвать свой сиБот/расширение.

Image title

В файле "Class1.cs" напишите код для вашего сиБота/индикатора. Затем откройте меню Сборка и выберите Собрать решение. Альтернативно нажмите Ctrl+Shift+B. После успешной сборки вы должны увидеть файл .algo в каталогах, указанных выше.

Если вы не видите свой новый сиБот/индикатор в интерфейсе cTrader, перезапустите платформу cTrader, и он должен появиться среди других расширений.

Для получения дополнительной информации о Visual Studio обратитесь к этой документации.

Visual Studio Code

По сравнению с Visual Studio, VS Code является гораздо более легковесным редактором кода, что объясняет его растущую популярность среди разработчиков. To create cBots/indicators via VS Code, you have to meet the following prerequisites.

  • Установите .NET SDK.
  • Установите расширение C# в VS Code.

Чтобы установить подходящее расширение, откройте магазин расширений, введите C# в строке поиска и выберите либо официальное расширение Microsoft, либо любое другое подходящее дополнение.

Image title

После этого вам потребуется использовать интерфейс командной строки (CLI) .NET для создания решения и проекта библиотеки классов, содержащего ваш сиБот/индикатор.

Примечание

Вы должны использовать Documents\cAlgo\Sources только если вы используете систему Windows, в противном случае вы можете создавать и собирать свои проекты индикаторов/сиБотов в любом каталоге.

Создание индикатора

Чтобы создать индикатор через 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. Установите пакет NuGet cTrader.Automate.

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, если хотите отладить свой индикатор.

После успешной сборки у вас будет файл .algo индикатора в папке bin его проекта, а также в папке Documents\cAlgo\Sources\Indicators\, если вы используете Windows.

Создание сиБота

Создание сиБота аналогично созданию индикатора, за исключением того, что вам нужно использовать класс Robot вместо класса Indicator и каталог Documents\cAlgo\Sources\Robots\ вместо Documents\cAlgo\Sources\Indicators\.

Вы можете использовать приведенный ниже пример кода для класса вашего сиБота:

 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 для работы с сиБотами, плагинами и индикаторами. Следуйте этим шагам для создания действительных расширений cTrader:

  1. Создайте проект библиотеки классов .NET.
  2. Установите пакет NuGet cTrader.Automate.
  3. Создайте файл класса, содержащий исходный код вашего сиБота/индикатора. Индикаторы наследуются от класса Indicator, в то время как сиБоты должны наследоваться от класса Robot.
  4. Соберите ваше расширение. Для получения дополнительной информации о компиляции/сборке ознакомьтесь с соответствующим разделом этой документации.