Скрипт на C++/CLI

C++/CLI — один из языков платформы .NET Framework — редко используется для разработки больших самостоятельных проектов. Его главное назначение — создание сборок для взаимодействия .NET с родным (неуправляемым) кодом.

В TSLab можно подключать скрипты написанные на C#, VB.NET. Или подключать библиотеки dll написанные на .NET (C#, VB.NET, C++/CLI).

Для примера, напишем библиотеку на C++/CLI и подключим в TSLab.

Итак, создадим новый проект в Visual Studio 2019. Выберем тип: CLR Class Library на языке C++.

Сразу переключим проект на x64, добавим библиотеки TSLab.Script.dll, TSLab.Script.Handlers.dll, TSLab.DataSource.dll.

Пример скрипта возьмем из статьи Первый скрипт (API) написанный на C#, но мы его переделаем на C++. Создадим класс BuyScript, и напишем следующий код:

#pragma once using namespace System; using namespace TSLab::Script; using namespace TSLab::Script::Handlers; using namespace TSLab::DataSource; namespace MyLibC { public ref class BuyScript sealed : IExternalScript { public: virtual void Execute(TSLab::Script::Handlers::IContext^ ctx, TSLab::Script::ISecurity^ sec) { for (int i = 0; i < ctx->BarsCount; i++) { IPosition^ longPos = sec->Positions->GetLastActiveForSignal("LE", i); if (!longPos) { sec->Positions->BuyAtMarket(i + 1, 1, "LE", ""); } else { longPos->CloseAtStop(i + 1, longPos->EntryPrice * 0.995, "LXS", ""); longPos->CloseAtProfit(i + 1, longPos->EntryPrice * 1.005, "LXP", ""); } } } }; }

Теперь можно собрать проект и если нет ошибок, то студия создаст библиотеку \x64\Debug\TestLibC.dll ее и подключим в TSLab.

Как видим, скрипт подключился, на графике отобразились сделки.