Компиляция и сборка алгоритмов в cTrader
Вы можете использовать два типа компиляторов при компиляции/сборке алго cTrader:
- Встроенный компилятор
- Компилятор .NET SDK
По умолчанию cTrader использует встроенный компилятор, но мы рекомендуем вам переключиться на компилятор .NET SDK, если он установлен на вашем локальном компьютере.
Компиляция файлов CSPROJ и извлечение сиБотов
cTrader Algo позволяет генерировать и сохранять алгоритмы путем компиляции файлов .csproj. Используйте следующий код для выполнения операции:
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 | |
Если вы установите AccessRights в значение None, вы должны указать пути к каталогам внутри папки данных алго. Эта конфигурация означает, что алго не могут компилировать файлы за пределами своих папок данных.
Если вы установите AccessRights в значение FullAccess, вы можете указать путь к любому каталогу или местоположению как для файла .csproj, так и для сгенерированного алгоритма.
Если вы намерены использовать относительный путь к файлу, базовый каталог должен существовать по этому пути: ..Documents\Algo\Data\{Algo type}\{Algo name}.
После того как вы запустите сиБот локально, алгоритм будет сохранен в указанном каталоге.
Переключение компиляторов
Чтобы переключиться на другой компилятор, нажмите Settings в левом нижнем углу интерфейса, чтобы открыть окно настроек, затем перейдите на вкладку Algo.

Откройте выпадающее меню Select compiler и выберите подходящий компилятор из доступных вариантов.
Встроенный компилятор
Встроенный компилятор интегрирован в платформу cTrader Windows. По сравнению с компилятором .NET SDK он имеет ограниченные возможности. Например, встроенный компилятор не поддерживает сторонние пакеты и фреймворки .NET, такие как WinForms и WPF.
Компилятор .NET SDK
Использование компилятора .NET SDK настоятельно рекомендуется для крупных проектов или расширений, использующих сторонние библиотеки .NET. Компилятор .NET SDK также поддерживает дополнительные функции, такие как параметры сборки.
Меню Select compiler позволяет выбрать любой компилятор .NET SDK, установленный на вашем локальном компьютере. Если версии .NET SDK не установлены, вы всегда можете нажать кнопку Install .NET SDK, чтобы перейти на страницу загрузки последней стабильной версии.
Параметры
cTrader предлагает настраиваемые параметры, которые вы можете указать при использовании .NET CLI при сборке ваших сиБотов/индикаторов во внешних IDE. Они определены ниже:
| Имя | Значение по умолчанию | Описание |
|---|---|---|
| AlgoName | $(MSBuildProjectName) | Указывает имя файла .algo.Это свойство не влияет на AssemblyName. |
| AlgoBuild | True | Включает сборку файлов .algo. |
| AlgoPublish | True | Включает копирование файлов .algo в каталог MyDocuments текущего пользователя после успешной сборки. |
| IncludeSource | False | Включает исходный каталог в целевой файл .algo. |
| IncludeSymbols | False (Release)True (Debug) | Включает отладочные символы в целевой файл .algo. |
Обработка дополнительной ошибки
Если вы ссылаетесь на пакет NuGet cTrader.Automate в вашем проекте библиотеки классов, который не содержит классов алго cTrader (таких как Robot для сиБота), вы столкнетесь с ошибкой "Assembly must contain algo type" при попытке собрать проект. Эта ошибка возникает, поскольку параметр AlgoBuild по умолчанию равен True.
Чтобы исправить проблему, просто установите AlgoBuild в значение False в вашем файле проекта .NET, как показано в примере ниже:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AlgoBuild>false</AlgoBuild>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="cTrader.Automate" Version="1.*-*" />
</ItemGroup>
</Project>