Особенности работы с поставщиком данных Interactive Brokers
Last updated
Last updated
В процессе работы через поставщика данных Interactive Brokers у программы TSLab нет возможности получать список доступных ценных бумаг (контрактов).
Чтобы начать работу с ценной бумагой (контрактом), Вам необходимо ввести тикер ценной бумаги (контракта) в соответствующем поле окна "Управление контрактами", которое можно открыть из настроек поставщика данных Interactive Brokers. В этом же окне необходимо указать:
наименование площадки (либо в ручном режиме, либо выбрать из списка имеющихся)
тип ценной бумаги (контракты).
В качестве дополнительных параметров контракта Вы можете указать валюту контракта и экспирацию контракта в соответствующих полях окна.
Можно добавить все фьючерсы по базовому активу. Для этого надо указать Тикер, Площадку, Валюту и Тип (фьючерсы). Экспирацию можно не указывать. Например: MSFT, ONE, USD, Фьючерсы.
После того как настройки контракта были выбраны, необходимо нажать на кнопку Добавить
Внимание! Полноценная работа с опционами IB в программе не поддерживается. Не все опционы можно загрузить в программу в данном поставщике данных. Те, которые загружаются не работают с блоком "торгуемый опцион" и таблицей "опционная доска".
Для добавления опционов надо указывать дату экспирации, так как опционов очень много. Выбрать тип Колл-опцион или Пут-опцион.
После того как необходимые свойства ценной бумаги (контракта) указаны, Вы можете внести ценную бумагу в список закешированных контрактов для дальнейшего использования с помощью кнопки "Добавить".
В качестве альтернативного варианта для того, чтобы ценная бумага распознавалась программой TSLab, необходимо выставить и тут же снять заявку по интересующей Вас ценной бумаге с помощью терминала TWS. Таким образом наименование ценной бумаги запомнится в списке закэшированных контрактов программы TSLab.
В случае возникновения сбоя в кодировке Журнала сообщений, необходимо открыть настройки терминала TWS, выбрать закладку API и активировать опцию "Отправлять сообщения на английском языке".
Используемый программой TSLab API брокера Interactive Brokers не передает информацию по лотности. Соответственно, для покупки 1 лота, содержащего, к примеру, 100 акций, в настойках агента необходимо указывать 100.
Для тестирования алгоритмов на акциях используйте блок "Относительная комиссия с минимумом".
В блоке установите параметр Минимальная комиссия = 1. Брокер не взимает плату за объем сделки и каждая сделка, с любым объемом, это 1$
Параметр блока Комиссия, % можно использовать для приблизительного учета проскальзывания в сделках.
Маржа указывается в % годовых. Учет идет только по шортам. Ее размер уточняйте у брокера.
Брокер IB поддерживает выставление заявок за пределами торговой сессии на бирже. Данный функционал поддерживается TSLab не в полном объеме. Поэтому, при выставлении заявки за пределами сессии ответ о подтверждении заявки может идти дольше, чем указанное количество ожидания ответа в настройках программы.
По истечению таймаута программа снова выставит заявку, таким образом будет двойное исполнение.
Решение
Чтобы предотвратить данную ситуацию с поставщиком данных Interactive Brokers, необходимо организовывать алгоритмы так, чтобы они не выставляли заявки во вне торговое время. Если не получается так сделать, то подключение к TWS рекомендуется организовывать, учитывая таймаут ожидания заявки.
В TSLab откройте окно Настройки программы.
Файл -> Настройки программы -> Торговля -> Таймаут заявки
Значение поля Таймаут заявки должно быть больше, чем разница между временем начала торговой сессии и временем подключения к брокеру.
Мы не рекомендуем выставлять заявки вне работы биржи, явно брокер такие заявки исполняет либо редко, либо никогда. Так же через несколько миллисекунд брокер может прислать обновление по заявке выставленной во вне торговое время, что заявка СНЯТА, а потом она исполняется.
Соответственно, возникает такая же проблема с двойным исполнением. Заявка снята, поэтому программа должна выставить новую, согласно сигналам.
Если в настройках поставщика данных поставить настройку "Исп. SMART всегда", то инструменты с некоторых бирж, например MEXI, нельзя будет подгрузить, так как MEXI отсутствует в SMART площадке. Можно создать несколько поставщиков данных. Используя разные API ID. При этом настраивать TWS особым образом не требуется.
К сожалению, в используемом нами API брокера Interactive Brokers не передается информация по лотности. Поэтому, если в настройках агента выставить один лот, то агент купит одну акцию, а не один лот.
Соответственно, для покупки одного лота = 100 акций в настойках агента необходимо указывать 100 лотов. То же касается менеджера заявок.