Использование 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и выберите Установить.
Примечание
Если вы работаете со старой версией 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 и выберите Библиотека классов. Назовите свой проект так, как вы хотите назвать свой сиБот/расширение.

В файле "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, либо любое другое подходящее дополнение.

После этого вам потребуется использовать интерфейс командной строки (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 | |
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 | |
Другие .NET IDE
Если вы захотите, вы можете использовать другие IDE для работы с сиБотами, плагинами и индикаторами. Следуйте этим шагам для создания действительных расширений cTrader:
- Создайте проект библиотеки классов .NET.
- Установите пакет NuGet
cTrader.Automate. - Создайте файл класса, содержащий исходный код вашего сиБота/индикатора. Индикаторы наследуются от класса
Indicator, в то время как сиБоты должны наследоваться от классаRobot. - Соберите ваше расширение. Для получения дополнительной информации о компиляции/сборке ознакомьтесь с соответствующим разделом этой документации.