Репликатор сделок
Четвёртая по счету реинкарнация копировщика сделок, включающая опыт использования предыдущих версий и пожелания трудящихся.
Инструмент предназначен для реплицирования (копирования) сделок с нескольких ведущих счетов в произвольное количество ведомых счетов. Позволяет:
- Реплицировать сделки между разными счетами внутри одного рабочего места
- Реплицировать сделки между счетами произвольного количества разных терминалов, запущенных на одном компьютере
- Реплицировать сделки между счетами произвольного количества разных терминалов, запущенных на компьютерах одной локальной сети. Компьютеров и счетов может быть произвольное количество.
- Для каждого ведущего терминала задавать классы инструментов, по которым необходима репликация
- Для каждого ведомого счета для каждого ведомого класса устанавливать список инструментов классов для реплицирования, как явным указанием инструментов, так и используя текстовые маски.
- Для каждого ведомого счета в каждом ведомом терминале указывать коэффициент реплицирования, в том числе с изменением направления сделок
Как это работает?
Инструмент состоит из двух частей
Master
Cкрипт, запускаемый на каждом ведущем терминале. В его настройках указываются торговые счета, сделки по которым необходимо отправлять в ведомые терминалы. Для каждого торгового счета задаются терминалы, в которые необходимо отправлять данные. Ведомых терминалов может быть произвольное количество. Можно использовать терминалы, запущенные на компьютерах в пределах локальной сети, в этом случае папки терминалов (где находится файл info.exe) должны быть открыты на запись. Пример настроек:
[Основной счет]
ACCOUNT = NL0011100043 // Код торгового счета, с которого нужно дублировать сделки
TERMINALS = e:\Quik-Junior // Папка ведомого терминала, которому необходимо передать информацию о сделке.
// Терминалов может быть несколько, можно использовать сетевые пути
[Еще один счет]
ACCOUNT = SPBFUT123456 // Код торгового счета, с которого нужно дублировать сделки
TERMINALS = e:\QUIK-BKS, _ // Терминалов может быть несколько, их можно перечислить через запятую
d:\QUIK-Finam, _ // Удобно перечислять их по одному в строке, завершая каждую
// строку пробелом и символом подчеркивания
\\Petrov\Quik // Можно использовать сетевые пути
Slave
Скрипт, запускаемый в ведомом терминале. Он получает данные о сделках из всех запущенных ведущих терминалов, анализирует эти данные и в случае необходимости реплицирует сделку. В настройках задаются номер торгового счета, по которому исполнять сделки, классы и инструменты, по которым необходимо реплицирование, а также коэффициент репликации. Пример настроек:
[Все инструменты класса QJSIM]
ACCOUNT = NL0011100043 // По этому счету выставлять дубликаты сделок
CLIENTCODE = qtest658 // По этому коду клиента выставлять дубликаты сделок
CLASSCODE = QJSIM // Класс инструмента, сделки по которому нужно дублировать
SECCODE = * // Код или коды инструментов, сделки по которым нужно дублировать
K = -0.5 // Коэффициент дублирования. Отрицательный коэффициент означает выставление противоположной по направлению заявки
// По умолчанию значение 1
[Доллар-Рубль]
ACCOUNT = SPBFUT00045
CLIENTCODE = // На фьючерсах код клиента можно не указывать
CLASSCODE = SPBFUT
SECCODE = Si*, SRU2, SRZ2
K = 1
[Фьючерсы на индекс РТС 2022 год и все евродоллары]
ACCOUNT = SPBFUT00045
CLIENTCODE =
CLASSCODE = SPBFUT
SECCODE = RI*2, ED*
K = 2
Названия инструментов можно задавать явно либо при помощи масок. Звездочка разворачивается в последовательность любых символов, вопросительный знак в один любой символ. Например, Si* - это все фьючерсы доллар/рубль. Si?2 - это все фьючерсы 2022 года. Если указать просто звездочку, то будут дублироваться все бумаги, входящие в класс.
Более подробные комментарии находятся непосредственно в шаблонах файлов настроек
Быстродействие
Гарантируется задержка между получением информации о сделке на ведущем счете и выставлением соответствующей заявки на ведомом счете не более 0.2 секунды, если сам терминал функционирует нормально. Типичные значения колеблются от 0.05 до 0.15 секунд. Быстродействие не зависит от количества ведомых и ведущих терминалов и счетов. Сделки на ведомых счетах выставляются асинхронно и их количество и частота не влияют на быстродействие. Все заявки на ведомых счетах выставляются по рынку, что гарантирует немедленное исполнение, однако на цену зеркалируемых сделок может влиять проскальзывание.
Репликатор требует аккуратного обращения с ним. Невнимательность в настройках может привести к финансовым потерям.
Установка
- Прочтите файл Readme.html
- Библиотеку bot4sale64.dll поместите в рабочую папку каждого терминала (ведомого и ведущего).
- Для каждого терминала создайте папку с произвольным названием (например, Replicator4)
- В каждую из этих папок поместите файлы R4-MasterDemo.lua (или R4-Master.lua, если вам известен пароль от полной версии), R4-Master.ini, R4-Slave.lua,R4-Slave.ini.
- Отредактируйте файл настроек для каждого терминала. Если это ведущий терминал, это файл R4-Master.ini. Если это ведомый терминал - то файл R4-Slave.ini. Если терминал используется в обеих ролях, настройте оба файла
- Для ведущего терминала из меню терминала Сервис-Lua скрипты запустите на исполнение скрипт R4-MasterDemo.lua (или R4-Master.lua, если вам известен пароль от полной версии). Для ведомого - R4-Slave.lua. Если терминал используется в обеих ролях, запустите оба скрипта.
- Прочтите еще раз файл Readme.html
В демонстрационной версии скрипт R4-Master работает 10 минут, после чего отключается. Его можно снова запустить вручную. В полной версии ограничений нет.
Как сказать спасибо автору и получить пароль от полной версии? Угостите автора ужином с кружкой пива...