1 (2015-08-18 07:38:35 отредактировано ascerdfg)

Тема: Проверка скорости брокера

-- разрабатывался для совершения сделки в момент открытия биржи чтоб попасть в тренд. ["PRICE"]="57000" набрасывать не больше 1000 руб., для исполнения по рынку, иначе может не сработать (лимиты цены покупки-продажи, устанавливаемые биржей).
is_run=true

function tra(pie) -- продажа 

t = {

            ["CLASSCODE"]="SPBFUT",

            ["SECCODE"]="SiU5",

            ["ACTION"]="NEW_ORDER",

            ["ACCOUNT"]="411хххх",

            ["CLIENT_CODE"]="65ххх",

            ["TYPE"]="M",
            
            ["OPERATION"]="S",

            ["QUANTITY"]="1",

            ["PRICE"]="57000",
            
            ["TRANS_ID"]="111",


      }
      
      res=sendTransaction(t)

end



function tra_b(pie_b) -- купля 

t = {

            ["CLASSCODE"]="SPBFUT",

            ["SECCODE"]="SiU5",

            ["ACTION"]="NEW_ORDER",

            ["ACCOUNT"]="411хххх",

            ["CLIENT_CODE"]="65ххх",

            ["TYPE"]="M",
            
            ["OPERATION"]="B",

            ["QUANTITY"]="1",

            ["PRICE"]="59000",
            
            ["TRANS_ID"]="111",


      }
      
      res=sendTransaction(t)

end


function main()

      while is_run do

            sleep(10000)

      end

end

function OnStop(stop_flag)

    is_run=false

end


function OnAllTrade(alltrade)

    if alltrade.sec_code=="SiU5" and is_run==true then 

        if alltrade.flags==1 then -- продано 
            is_run=false
            tra(pie) -- продаём 
        end
        if alltrade.flags==2 then -- куплено 
            is_run=false
            tra_b(pie_b)
        end
    end
end

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

2

Re: Проверка скорости брокера

Пинг с Тулы Ростелеком до Москвы Билайн =20 мс.

3 (2015-08-18 00:22:30 отредактировано kalikazandr)

Re: Проверка скорости брокера

ascerdfg пишет:

Пинг с Тулы Ростелеком до Москвы Билайн =20 мс.

Отличный пинг.
Я 14 км от сервера биржи.
cmd: ping - t -l 512 moex.com
стабильно 2 ms.
до самого быстро доступного сервера брокера 2 ms.
делаю так, когда волатильность на рынке практически 0.
текущее предложение Сбера 68,5, отправляю псевдо-рыночные заявки

 t = {
    ACTION = "NEW_ORDER",
    TRANS_ID= "1",
    ACCOUNT = account,
    CLIENT_CODE = clientcode,
    TYPE = "L",
    OPERATION = "B",
    CLASSCODE = "TQBR,
    SECCODE= "SBER",
    PRICE = "70",
    QUANTITY = "1"
    }
for i =1, 10 do
    sendTransaction (t)
end

в итоге смотрим в таблице заявок время выставления в микросекундах (регистрация на бирже),
а там очень все интересно:
по идее все заявки должны идти по порядку с точностью 1-2 микросекунды, ан нет - между ними аж по 50 - 60 миллисекунд!
а тут еще интереснее!
смотрю таблицу сделок:
номера по порядку - никто не вклинился
а вот время между сделками те же 50-60 ms.

В итоге понимаем: что где-то между сервером квик и сервером брокера сидит "тормоз" и не хилый и чо-то там себе считает...

4

Re: Проверка скорости брокера

ascerdfg пишет:

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

Информация по обезличенным сделкам на сервер брокера иногда приходит с задержкой более 1 сек, особенно по ФОРТС, особенно в первые секунды. К вам ещё позже.
С учётом этого, у вас очень даже хороший результат.

5

Re: Проверка скорости брокера

CyberTrader пишет:

Информация по обезличенным сделкам на сервер брокера иногда приходит с задержкой более 1 сек, особенно по ФОРТС, особенно в первые секунды.

Информация по обезличенным сделкам от сервера биржи до сервера брокера никогда не приходит с задержкой более 2ms.
Другое дело сколько провайдеров по дороге от пользователя до биржи и насколько дряхлое оборудование у провайдера да и брокера тож (в "Открытии" точно как гамно мамонта). Если провайдер пользователя использует пиринговую сеть (что мало вероятно) то с Тулы до Пекина пинг будет около 3 ms.
У меня до Владивостока 3ms, до Пекина не измерял.

6

Re: Проверка скорости брокера

CyberTrader пишет:
ascerdfg пишет:

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

Информация по обезличенным сделкам на сервер брокера иногда приходит с задержкой более 1 сек, особенно по ФОРТС, особенно в первые секунды. К вам ещё позже.
С учётом этого, у вас очень даже хороший результат.

На брокере БКС кто-нить может запустить?

7

Re: Проверка скорости брокера

kalikazandr пишет:
ascerdfg пишет:

Пинг с Тулы Ростелеком до Москвы Билайн =20 мс.

Отличный пинг.
Я 14 км от сервера биржи.
cmd: ping - t -l 512 moex.com
стабильно 2 ms.
до самого быстро доступного сервера брокера 2 ms.
делаю так, когда волатильность на рынке практически 0.
текущее предложение Сбера 68,5, отправляю псевдо-рыночные заявки

 t = {
    ACTION = "NEW_ORDER",
    TRANS_ID= "1",
    ACCOUNT = account,
    CLIENT_CODE = clientcode,
    TYPE = "L",
    OPERATION = "B",
    CLASSCODE = "TQBR,
    SECCODE= "SBER",
    PRICE = "70",
    QUANTITY = "1"
    }
for i =1, 10 do
    sendTransaction (t)
end

в итоге смотрим в таблице заявок время выставления в микросекундах (регистрация на бирже),
а там очень все интересно:
по идее все заявки должны идти по порядку с точностью 1-2 микросекунды, ан нет - между ними аж по 50 - 60 миллисекунд!
а тут еще интереснее!
смотрю таблицу сделок:
номера по порядку - никто не вклинился
а вот время между сделками те же 50-60 ms.

В итоге понимаем: что где-то между сервером квик и сервером брокера сидит "тормоз" и не хилый и чо-то там себе считает...

Один из тормозов рассчитывает, достаточно ли у нас средств.

8

Re: Проверка скорости брокера

ascerdfg пишет:

Один из тормозов рассчитывает, достаточно ли у нас средств.

Да, но дело не в расчетах совсем, а в том, что заявка проверяется на всех этапах:
на ПК(терминалом), сервере квик, брокера, биржи.
Затем, если все нормально идет ответ от биржи - "да такую заявку я зарегистрирую".
Тут маршрут короче - сервер квик - брокер - сервер квик - биржа.
А потом ответ пользователю и все это через несколько узлов маршрутизации, которые тоже "тормозят жутко".
У меня был такой случай в декабре 2014, когда робот успел выставить 3 заявки и купить! в 3 раза больше, чем доступное кол-во лотов в таблице купить/продать.
Этот "тормоз" сообразил, когда уже стояли заявки на продажу. После чего мне выключили возможность что-либо с ними сделать (через 5 минут робот начинает закрывать принудительно позицию и начал спамить message (не удалось снять заявку)).
Звоню брокеру - мол так и так - не могу снять заявки. Пока шох-ворох заявки на продажу исполняются)) + 74% и все сразу заработало. Товарищ из тех-поддержки брокера с чем меня и поздравил, сказал, если бы у меня не купило третье лицо, то сделки аннулировали бы.

9 (2015-08-18 10:39:00 отредактировано CyberTrader)

Re: Проверка скорости брокера

kalikazandr пишет:

Информация по обезличенным сделкам от сервера биржи до сервера брокера никогда не приходит с задержкой более 2ms.

Откуда такая информация? Почему не 1ms или 3ms?
В ТВС иногда наблюдаются расхождения во времени сделок:

[+]Spoiler

http://i072.radikal.ru/1505/24/c13b26315f6d.png

Сделки в ТВС сортируются согласно приходу на сервер брокера. Вывод напрашивается сам.

10

Re: Проверка скорости брокера

kalikazandr пишет:

У меня был такой случай в декабре 2014, когда робот успел выставить 3 заявки и купить! в 3 раза больше, чем доступное кол-во лотов в таблице купить/продать.

Подскажите, по какой технологии был подключен робот?

11

Re: Проверка скорости брокера

swerg пишет:

Подскажите, по какой технологии был подключен робот?

По обычной.
Через 2 недели (если брокер успеет монтаж и подключение своих серверов на бирже) будет робот стоять на сервере биржи.
4,5 тыр. за 5 ГБ виртуалки. Даже не знаю, что делать то))
Робот у меня ураган <<1 ms от нахождения сигнала до выставления заявки.
Со слов техника ([url]http://www.finam.ru/services/promo0004c/#tile_for[/url]) Quik сможет обеспечить прием/передачу данных = 2ms.
Если надо быстрее, то TSLab и fix, а TSLab не поддерживает Lua. Придется с# изучать - короче ппц - отдых мне только снится.

12 (2015-08-18 13:10:00 отредактировано swerg)

Re: Проверка скорости брокера

kalikazandr пишет:
swerg пишет:

Подскажите, по какой технологии был подключен робот?

По обычной.

Вы по сайту квика посмотрите, сколько у них "обычных схем". От того и вопрос.
Робот на Lua в клиентском месте QUIK, я верно понял?

Времена озвучены - да, вполне реальные (но "в среднем" и "для обычной биржевой нагрузки", не в моменты сильных движняков, но там все проседают).

Кстати, для роботов - посмотрите еще  "FIX Client Connector" у квика.
Стоимость вполне вменяемая, библиотек подключения по протоколу Fix - много, на любых языках. Ну а контролировать итоги работы робота - через обычный терминал.

13

Re: Проверка скорости брокера

swerg пишет:

Робот на Lua в клиентском месте QUIK, я верно понял?

Верно.

swerg пишет:

Кстати, для роботов - посмотрите еще  "FIX Client Connector" у квика.
Стоимость вполне вменяемая, библиотек подключения по протоколу Fix - много, на любых языках. Ну а контролировать итоги работы робота - через обычный терминал.

Я думал над этим. "FIX Client Connector" и пачка провайдеров по дороге - даст не значительный прирост по времени.
А на сервере мне пока и 2ms хватит. Тем не менее, есть над чем работать.

14

Re: Проверка скорости брокера

kalikazandr пишет:
swerg пишет:

Робот на Lua в клиентском месте QUIK, я верно понял?

Верно.

swerg пишет:

Кстати, для роботов - посмотрите еще  "FIX Client Connector" у квика.
Стоимость вполне вменяемая, библиотек подключения по протоколу Fix - много, на любых языках. Ну а контролировать итоги работы робота - через обычный терминал.

Я думал над этим. "FIX Client Connector" и пачка провайдеров по дороге - даст не значительный прирост по времени.
А на сервере мне пока и 2ms хватит. Тем не менее, есть над чем работать.

Но зато если ваш робот будет успешен - биржевики его скопируют и будут сами на нём торговать.

15

Re: Проверка скорости брокера

ascerdfg пишет:

Но зато если ваш робот будет успешен - биржевики его скопируют и будут сами на нём торговать.

)) эт вряд-ли, торговать точно не смогут.

16

Re: Проверка скорости брокера

хотя мне кажется что и в квике предусмотрен механизм воровства скриптов.

17

Re: Проверка скорости брокера

ascerdfg пишет:

хотя мне кажется что и в квике предусмотрен механизм воровства скриптов.

Напрямую у арки спрашивать не пробовали?

18

Re: Проверка скорости брокера

Короче, цитата:

FIX2MICEX - это своего рода API которое подключается на прямую на биржу.
Там нет QLUA, нет терминала.
Вам придется полностью переписать своего робота на любом другом высокоуровневом языке (C#, C++, Delphi и т.д.)
Далее этот робот подключается через FIX2MICEX к бирже и делает свое дело.
Вы у брокера получаете еще одну учетную запись с теми же правами что и у FIX2MICEX.
Через эту вторую учетку Вы подключаетесь терминалом QUIK и смотрите как робот себя ведет.
При этом управлять роботом Вы будете не через терминал QUIK, а каким-либо своим способом (как запрограммируете)

19

Re: Проверка скорости брокера

27.08.2015 Стоп-заявка победила робота в скорости по продаже на открытии торгов. Первая обезличенная сделка была в 10:00:00.0, моя стоп-заявка 10:00:01.323. Роботова 10:00:01.852