Написание скриптов на 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