Написание скриптов на API
Для того чтобы написать скрипт на TSLab API необходимо создать класс наследованный от интерфейса IExternalScript.
Данный интерфейс имеет следующую реализацию:
Как видим, интерфейс имеет всего один метод Execute, который принимает два параметра.
IContext - содержит общий контекст скрипта, нужен для рисования графиков, кеширования.
ISecurity - позволяет работать с инструментом, содержит свечи, тики, можно работать с позициями.
Метод Execute вызывается каждый раз когда TSLab запускает пересчет скрипта.
Также можно использовать другие интерфейсы, они различаются только количеством инструментов в параметрах:
IExternalScript2 – на входе два инструмента (ISecurity)
IExternalScript3 – на входе три инструменты (ISecurity)
IExternalScript4 – на входе четыре инструмента (ISecurity)
IExternalScriptMultiSec – на входе массив инструментов (ISecurity)
Для написания скриптов можно использовать следующий шаблон:
Основный свойства и методы:
Интерфейс IContext | |
IsLastBarClosed IsLastBarUsed IsFixedBarsCount | Для определения количества баров в расчете. |
IsOptimization | Показывает, что идет процесс оптимизации. |
TradeFromBar | Указывает с какого бара начинать торговлю. |
ScriptResult | Выводит результат в таблицу оптимизации. |
GetData(...) | Работа с кешем. Используется для расчета индикаторов. |
LoadObject(...) StoreObject(...) | Работа с кешем скрипта, который не стирается между расчетами. |
LoadGlobalObject(...) StoreGlobalObject(...) | Работа с глобальным кешем, который является общим между различными агентами и скриптами. Данные в кеше могут быть стерты, если программе не хватает памяти. |
Log(...) | Вывод логов. |
Recalc(...) | Запустить заново скрипт. |
Интерфейс ISecurity | |
FinInfo | Текущие данные по ценной бумаге (bid, ask, цена последней сделки, открытый интерес и т.д.). |
Bars | Список свечей. |
OpenPrices HighPrices LowPrices ClosePrices Volumes | Список цен открытия. Список максимумов. Список минимумов. Список цен закрытия. Список объемов. |
Interval IntervalBase IntervalInstance | Интервал ценной бумаги. |
LotSize LotTick Margin Tick Decimals | Размер лота для ценной бумаги. Размер изменения лота для ценной бумаги. Коэффициент маржи для ценной бумаги. Минимально возможное изменение цены. Количество десятичных знаков для цены ценной бумаги. |
Positions | Список позиций. |
Commission | Делегат для расчета комиссии. |
InitDeposit | Начальный депозит. |
IsRealtime | Показывает находится ли агент в режиме реальной торговли. |
Symbol | Символ ценной бумаги. |
CompressTo(...) CompressToPriceRange(...) CompressToVolume(...) Decompress(...) | Сжатие и разжатие свечей. |
GetBuyQueue(...) GetSellQueue(...) UpdateQueueData(...) | Получить очередь заявок. |
GetTrades(...) | Получить список сделок. |
RoundPrice(...) RoundShares(...) | Округление входящей цены до минимального тика. Округление входящего количества до минимального шага лота. |
Last updated