Репликатор сделок

5.0/5 rating 1 vote
  • Версия: 1.1
  • Размер: 585.42 KB
  • Просм: 213
  • Добавлено: 06.04.22
  • Скачано: 42
  • Изменено: 31.05.22

Четвёртая по счету реинкарнация копировщика сделок, включающая опыт использования предыдущих версий и пожелания трудящихся.


Инструмент предназначен для реплицирования (копирования) сделок с нескольких ведущих счетов в произвольное количество ведомых счетов. Позволяет:

  1. Реплицировать сделки между разными счетами внутри одного рабочего места
    Реплицирование сделок внутри одного рабочего места QUIK
  2. Реплицировать сделки между счетами произвольного количества разных терминалов, запущенных на одном компьютере
    Репликация сделок между разными терминалами одного компьютера
  3. Реплицировать сделки между счетами произвольного количества разных терминалов, запущенных на компьютерах одной локальной сети. Компьютеров и счетов может быть произвольное количество.
    Реплицирование в локальной сети
  4. Для каждого ведущего терминала задавать классы инструментов, по которым необходима репликация
  5. Для каждого ведомого счета для каждого ведомого класса устанавливать список инструментов классов для реплицирования, как явным указанием инструментов, так и используя текстовые маски.
  6. Для каждого ведомого счета в каждом ведомом терминале указывать коэффициент реплицирования, в том числе с изменением направления сделок

 


Как это работает?

Инструмент состоит из двух частей

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 секунд. Быстродействие не зависит от количества ведомых и ведущих терминалов и счетов. Сделки на ведомых счетах выставляются асинхронно и их количество и частота не влияют на быстродействие. Все заявки на ведомых счетах выставляются по рынку, что гарантирует немедленное исполнение, однако на цену зеркалируемых сделок может влиять проскальзывание.

 

Репликатор требует аккуратного обращения с ним. Невнимательность в настройках может привести к финансовым потерям. 

 

Установка

  1. Прочтите файл Readme.html
  2. Библиотеку bot4sale64.dll поместите в рабочую папку каждого терминала (ведомого и ведущего).
  3. Для каждого терминала создайте папку с произвольным названием (например, Replicator4)
  4. В каждую из этих папок поместите файлы R4-MasterDemo.lua (или R4-Master.lua, если вам известен пароль от полной версии), R4-Master.ini, R4-Slave.lua,R4-Slave.ini.
  5. Отредактируйте файл настроек для каждого терминала. Если это ведущий терминал, это файл R4-Master.ini. Если это ведомый терминал - то файл R4-Slave.ini. Если терминал используется в обеих ролях, настройте оба файла
  6. Для ведущего терминала из меню терминала Сервис-Lua скрипты запустите на исполнение скрипт R4-MasterDemo.lua (или R4-Master.lua, если вам известен пароль от полной версии). Для ведомого - R4-Slave.lua. Если терминал используется в обеих ролях, запустите оба скрипта.
  7. Прочтите еще раз файл  Readme.html wink

 В демонстрационной версии скрипт R4-Master работает 10 минут, после чего отключается. Его можно снова запустить вручную. В полной версии ограничений нет.


Как сказать спасибо автору и получить пароль от полной версии? Угостите автора ужином с кружкой пива...

 

 

Недостаточно прав для комментирования