Инструкция по работе с терминалом TSLab версии 2.1

Особенности работы сервера Transaq c TSLab

Основная особенность:

После переподключения transaq присылает ДРУГИЕ ID транзакций.

Пример из лога программы tslab.log

Заявка вечером:

23:48:10.50[Transaq Parser]DEBUG:Order orderno=21968103629 trid=358351

эта же заявка утром:

09:55:07.44[Transaq Parser]DEBUG:Order orderno=21968103629 trid=10381

Проблема состоит в том, что с ID 10381 уже могла быть заявка в истории или от другого работающего агента.

Т.к. транзак никогда эту проблему не исправит, то вариант решения такой: нужно настраивать очистку старых заявок и транзакций в настройках поставщика данных.

По умолчанию, в настройках стоит год.
Можно попробовать поставить несколько дней.
Но если внутри дня очень много сделок, то вероятность того, что transaq даст номер, который был вчера, возрастает.
В этом случае кеш своих сделок в настройках поставщика данных стоит уменьшать до трех дней(чем быстрее алгоритм, тем вероятнее получить данную проблему)

Transaq:’secid’ isn’t a number

>Transaq:’secid’ isn’t a number

Это значит что в Вашей конфигурации используется инструмент с прошедшим сроком экспирации.
Финам удаляет такие инструменты с сервера на следующий день после экспирации.
Вам нужно просмотреть все окна(графики, окна сделок по инструментам, котировки, …) и удалить все подобные инструменты.

Transaq Can’t lock SendLocker

Сообщение касается только серверов Transaq
new order failed
TSLab.DataSource.Transaq.TransaqException: Can’t lock SendLocker!

Очень редкое и кратковременное сообщение.
Сообщение выдает программа TSLab
В transaq можем подавать команды только последовательно, одну за другой.
Если в момент подачи команды, подается другая команда (от другого агента), то новая заявка ставится на ожидание до 2 сек.
Агент — это торгующий экземпляр скрипта, привязанный к Вашим счетам. Количество агентов, которые могут быть созданы на базе одного скрипта, не ограничено.

В обычном случае этого достаточно.
Иногда, поставщик данных выполняет предыдущую команду больше 2 сек, поэтому выдается это сообщение.
Поставщик данных — это часть программы, которая обеспечивает взаимодействие с конкретным торговым брокером, либо напрямую с биржей. Поставщик может реализовывать как полный набор функционала: прием торговых данных, выдачу торговых поручений, так и частичный набор.

Причины могут быть разные. Например, интернет или слабый компьютер(слишком много агентов для этого процессора).

Добавление счетов и смена Логина TransaqConnector

Удаление, добавление счетов

При любых манипуляциях со счетами, в личном кабинете брокера, необходимо отключиться от сервера брокера.

Т.е. перед тем как отключить Счет от Логина Transaq Connector или добавить к Логину новый счет в личном кабинете брокера Финам, необходимо выключить поставщика данных в программе.

Добавление нового типа поставщика с теми же счетами

Пример, у Вас был поставщик данных TransaqNew, Вы хотите сменить поставщик данных на TransaqHFT, на котором подключены те же счета.

Добавление такого поставщика данных необходимо осуществлять при выключенных агентах и при отсутствии позиций.

На новом поставщике данных необходимо запустить новые агенты.

Если Вы настроены сохранить статистику старых агентов, при добавлении поставщика данных с этими же счетами, старые агенты потеряют свои позиции, в этом случае может помочь копирование базы данных от старого поставщика.

База данных поставщика находится в папке, на одном уровне с папкой логов программы.

Инструменты | Папка с логами | поднимитесь на один уровень с папкой логов | папка НазваниеПоставщикаData

Файл Cache.sqlite, необходимо перенести с одного поставщика данных в папку нового поставщика данных. Такой перенос не тестировался и является неким «хаком» программы.

Особенность связанных заявок Transaq

При работе со связанными заявками в Transaq возможна следующая ситуация.

1. Вечером выставили связанную заявку.

2. Утром она сработала. Приходит номер лимитной заявки, затем приходит номер сделки.

3. Только через несколько секунд приходит информация по условной заявке.

Для TSLab происходит то, что сначала приходит исполнение лимитной заявки, а только через 5 секунд приходит ее связь с условной заявкой.

Это не массовая проблема.

Такая ситуация возможна на открытии сессий, в пиковые моменты нагрузки на сервера.

В данном случае, порядок получения сделки и исполненного ордера по рыночной части и самого условного поручения гарантировать невозможно.

Потому-что потоки рыночных данных и процесс синхронизации между серверами независимы друг от друга.

Чтобы гарантировать порядок данных, нужно как минимум задерживать рыночные, и тогда все данные будут задержаны на 5 секунд, что по понятным причинам сделать нельзя.

В итоге, на графике Агента можно наблюдать следующую картину:
график-сделка