Время исполнения ордеров на ФОРТС и Фондовой секциях
Пользователь
Сообщений: Регистрация: 29.07.2015
15.02.2019 20:36:57
Добрый день!
Скажите, уважаемые разработчики, почему время исполнения ордеров на ФОРТС в разы меньше, чем на Фондовой секции? Ордер SRH9 отправлен: 15.02.19 20:30:12 Ордер SRH9 исполнился: 15.02.19 20:30:12 (62 мс) Ордер SBER отправлен: 15.02.19 20:30:12 Ордер SBER исполнился: 15.02.19 20:30:13 (562 мс)
2019.02.07 12:12:59.316 FCS_Trader (LKOH-6.19,M1) OnTradeTransaction Ордер 99220131 размещен за 17.00000000
Сегодня попробовал сделать то же самое в КВИКе Вот что получилось
Правда, конец измерения приходится не на колбэк TRANS2QUIK_TRADE_STATUS_CALLBACK а на TRANS2QUIK_ORDER_STATUS_CALLBACK, т.к в первом случае мы получаем несколько сообщений, а во втором просто проверяем nStatus
Но самое интересное не в этом. У меня в Открывашке на реале стоит квик 7.19.0.51 Если посмотреть время выставления ордеров (ассинхронные ордера) и время их исполнения, то из этих данных вообще ничго понять не возможно (время одинаковое)
Trans2QuikAPI перестает работать после снятия неактивной заявки
Во избежание недопонимания сразу поясним: не в ближайшем обновлении, а в одной из очередных версий. Как только такая версия выйдет - Вы будете уведомлены.
тебе говорят, что твой раундтрип до сервера около 10 мс
тебе говорят, что МТ пишет что-то, что не может происходить в реальности
адекватный технарь задумался бы, ты - машешь руками и брызгаешь слюнями
"выпей отвар их трав " (с)
Модераторы! Немного странно, что Вы становитесь на сторону откровенного хама, удаляя сообщение одной из сторон. Может быть Вам не нравятся не лестные отзывы о Вашем "детище"?
Исправление ошибок в trans2quik.dll
Пользователь
Сообщений: Регистрация: 29.07.2015
07.02.2019 12:43:06
Вот, например, ответ Егора Зайцева, на найденую мной ошибку "Добрый день,
Действительно, в настоящее время терминал при получении подписки от Trans2QUIK на получение заявок и сделок не проверяет валидность указанных в подписке кодов классов и инструментов. Данная ошибка не может привести ни к каким серьёзным последствиям и будет исправлена в одной из очередных версий ПО.
Понять хочу как ведётся замер. в этом куске не вижу строк выдающих логи:
Цитата
написал: 2019.02.06 18:27:25.902 Trades 'xxxxx': cancel order #99190769 sell limit 1.00 SNGR-6.19 at 285212019.02.06 18:27:25.908 Trades 'xxxxx': accepted cancel order #99190769 sell limit 1.00 SNGR-6.19 at 28521
я нехочу наехать или оскорбить, я хочу лишь понять. Просто воплей о том что МТ работает супер быстро миллион а по факту оказывается что люди замеряют время возврата из OrderSendAsync :)
Забегая вперёд, хочу сказать что раунд-трип это не просто время ответа сервера. Это время маршрута тернимал-сервер-биржа-сервер-терминал. И 7 мс мне кажутся очень подозрительными.
Если Вы программировали в МТ5 (тогда будет понятен смысл моих слов), то лично для Вас (из принципа) могу сделать коректный замер. Т.е сделаю GetMicrosecondCount(); перед отправкой ассинхронного ордера, и GetMicrosecondCount(); когда придет ответ от cервера в OnTradeTransaction(). Я раньше это делал (у меня получалось 5-9 мс)
Понять хочу как ведётся замер. в этом куске не вижу строк выдающих логи:
Цитата
написал: 2019.02.06 18:27:25.902 Trades 'xxxxx': cancel order #99190769 sell limit 1.00 SNGR-6.19 at 285212019.02.06 18:27:25.908 Trades 'xxxxx': accepted cancel order #99190769 sell limit 1.00 SNGR-6.19 at 28521
я нехочу наехать или оскорбить, я хочу лишь понять. Просто воплей о том что МТ работает супер быстро миллион а по факту оказывается что люди замеряют время возврата из OrderSendAsync :)
Забегая вперёд, хочу сказать что раунд-трип это не просто время ответа сервера. Это время маршрута тернимал-сервер-биржа-сервер-терминал. И 7 мс мне кажутся очень подозрительными.
Да вообще по-барабану сколько мс 7-15 мс. Я вообще не собирался что-то доказывать и измерять. Просто к слову сказал, то что я сам вижу в обоих терминалах. На мой взляд МТ5 работает гораздо быстрее, но он имеет очень много "своих" недостатков (н-р только фьючерсы). К слову будет сказано, что лично у меня больше претензий имеено к МТ5 нежели к квик, но последний (как платформа для роботов) ....
импорт транзакций, Время исполнения
Пользователь
Сообщений: Регистрация: 29.07.2015
07.02.2019 11:06:51
Цитата
написал: не принимайте на веру циферки, что вам рисует метатрейдер. Они означают другое, чем вы думаете.
Что Вы хотите сказать (доказать)? Что одна глюкавка лучше другой? Мне ничего рассазывать (доказывать) не нужно я и программирую и торгую (на реале) в обоих терминалах не один год. И как они работаю мне прекрано известно.
импорт транзакций, Время исполнения
Пользователь
Сообщений: Регистрация: 29.07.2015
07.02.2019 10:53:21
И он спрашивал не про МТ5, а про КВИК
импорт транзакций, Время исполнения
Пользователь
Сообщений: Регистрация: 29.07.2015
07.02.2019 10:51:31
Цитата
написал:
Цитата
написал:
Цитата
написал: пинг до сервера замерял? :)
ну и как при этом может получиться отправка сигнала, обработка его на сервере и обратный возврат ответа за 7 миллисекунд?
выше уже писали про замер пинга до сервера. Вряд ли время пинга будет 6 миллисекунд, если вы не медью с сервером соединены )
померьте и сделайте вывод.
У меня нет нужды сравнивать Квик с МТ5 - вывод очевиден (оба оставляют желать лучшего). Но с точки зрения создания торговых роботов второй на несколько порядков выше первого, да и скорость исполнения торговых приказов во втором гораздо выше. Но ни в первом, ни во втором невозможно КАЧЕСТВЕННО торговать роботами на MOEX Приходится из г...на шарики катать :)
P.S как на этом сайте вставить изображение?
Trans2Quik + Lua - нормально ли?
Пользователь
Сообщений: Регистрация: 29.07.2015
06.02.2019 19:03:04
Цитата
Михаил Ершов написал: Здравствуйте, вижу что очень популярно использовать Lua скрипт в квике для экспорта данных в свои приложения, написанные на некотором языке - C++, C#, Python ... Такой вопрос, можно ли технически в паре с Lua скриптом использовать trans2quik для заявок из программы, а Lua - для поступления торговых данных?
Сталкиваюсь с проблемой иногда что в Lua не приходят транзакции с номером заявки, хотя они выставляются, они теряются из виду у робота и т.д. Посоветовали trans2quik как "прямой API" к квику, типа такой проблемы не будет, поэтому думаю попробовать его если это нормальная и не устаревшая технология?
Михаил. Как Вы тестируете, то, что написано на LUA? Если текст срипта составляет 50-100 строк, то это как-то можно "пережить", отправляя сообщения, а если 8000 строк, , да ещё если на 1 инструмент а 50, то как тестировать будете?
Исправление ошибок в trans2quik.dll
Пользователь
Сообщений: Регистрация: 29.07.2015
06.02.2019 18:56:36
Уважаемые разработчики!
Понятно, что точный срок обновления trans2quik.dll невозможно огласить, но хотелось бы знать ВАШИ планы по срокам выхода обновления.
импорт транзакций, Время исполнения
Пользователь
Сообщений: Регистрация: 29.07.2015
06.02.2019 18:31:57
Цитата
написал:
Цитата
8 мсек в метатрейдере - это время постановки транзакции в очередь на отправку от терминала к серверу. Транзакция ещё находится у вас в терминале ожидает отправки, а управление снова отдано скрипту.
Не нужно фантазировать. В МТ5, 8 мс - это с момента время отправки транзакци + время получения ответа от сервера:
Реал
2019.02.06 18:27:25.902 Trades 'xxxxx': cancel order #99190769 sell limit 1.00 SNGR-6.19 at 28521 2019.02.06 18:27:25.908 Trades 'xxxxx': accepted cancel order #99190769 sell limit 1.00 SNGR-6.19 at 28521 2019.02.06 18:27:25.909 Trades 'xxxxx': cancel order #99190769 sell limit 1.00 SNGR-6.19 at 28521 placed for execution in 7.386 ms
100% Открытие сделок, через *. tri файл, Импорт заявок по текущим ценам
TYPE Тип заявки, необязательный параметр. Значения: «L» – лимитированная (по умолчанию), «M» – рыночная
По рыночной Quik не принимает заявки почему-то
Добрый день. Просьба сообщить подробности. Если возникает ошибка, то просьба ее сообщить, также выложите текст транзакции, которую подаете через tri файл.
Я звонил в Открывашку по этому вопросу. Ответ: "Рыночные заявки по фондовому рынку запрещены во избежании манипуляций на рынке" :) Оказывается это мы, маленькие частные инвесторы, двигаем рынок!
QUIK Junior
Пользователь
Сообщений: Регистрация: 29.07.2015
01.02.2019 00:40:37
Уважаемые разработчики!
"Почините" котировки в фондовой секции. Например: Шаг цены акции Роснефти - 0,05, а у Вас в стакане огромное кол-во котировок не кратных шагу цены.
импорт транзакций, Время исполнения
Пользователь
Сообщений: Регистрация: 29.07.2015
31.01.2019 02:21:13
Цитата
Алексей Смирнов написал: Здравствуйте. В каком случае время выполнения транзакции меньше: методом Trans2QuikAPI либо используя текстовые файлы .tri, .tro, trr?
У меня ассинронная отправка ордеров через Trans2QuikAPI, посылая первый приказ, ожидается ответ и по приходу ответа совершается вторая сделка. Интернет 100 Мб. Брокер - Открывашка Задержка между сделками - 250 - 300 мс (для сравнения , с этого же компьютера, в МТ5 - 7-8 мс)
Сценарий при TRANS2QUIK_DLL_DISCONNECTED
Пользователь
Сообщений: Регистрация: 29.07.2015
20.01.2019 08:56:26
Цитата
К сожалению сейчас нет полного описания возможных кодов ошибок pnExtendedErrorCode. ранее мы уже обсуждали эту проблему
А что из исходного кода Trans2quik.dll нельзя просто, ПОКА, скопировать существующие ошибки?
Сценарий при TRANS2QUIK_DLL_DISCONNECTED
Пользователь
Сообщений: Регистрация: 29.07.2015
20.01.2019 08:54:18
Вы, Павел, вероятно не ВСЁ читаете...
Вопрос не в том как коннектится, а что делать, если пришло RANS2QUIK_DLL_DISCONNECTED Я нашел, пока 2 ошибки 109 - терминал был закрыт 233 - запрещен импорт внешних транзакций
Сценарий при TRANS2QUIK_DLL_DISCONNECTED
Пользователь
Сообщений: Регистрация: 29.07.2015
13.01.2019 02:23:30
Принудительно закрыл терминал. В TRANS2QUIK_CONNECTION_STATUS_CALLBACK, TRANS2QUIK_DLL_DISCONNECTED пришла ошибка 109
Техническая поддержка. Каие варианты ещё возможны?
Сценарий при TRANS2QUIK_DLL_DISCONNECTED
Пользователь
Сообщений: Регистрация: 29.07.2015
12.01.2019 00:08:14
Добрый день! Использую DDE + trans2quik.dll Все нормально работает, но возник вопрос. Установив коллбэк TRANS2QUIK_SET_CONNECTION_STATUS_CALLBACK, возможно получить в TRANS2QUIK_CONNECTION_STATUS_CALLBACK следующие значения TRANS2QUIK_DLL_DISCONNECTED TRANS2QUIK_DLL_CONNECTED TRANS2QUIK_QUIK_DISCONNECTED TRANS2QUIK_QUIK_CONNECTED
А какие действия нужно предпринимать, получив эти сообщения? Н-р: TRANS2QUIK_DLL_DISCONNECTED - теряются ли коллбэки и другие настройки? И т.д... Какие сценарии возможны?
DDE и trans2quik.dll
Пользователь
Сообщений: Регистрация: 29.07.2015
18.12.2018 14:24:32
Добрый день!
А не у кого небыло такой ситуации:
Если данные просто выводятся из трёх таблиц (Фьючерсы, Акции и состояние счёта) по DDE, то всё ноормально (проверял 3 суток), НО, если отдаются торговые ассинхронные приказы через trans2quik.dll, то иногда, DDE приёмник "падает" "invalid pointer operation"
TRANS2QUIK_TRANSACTION_REPLY_CLASS_CODE
Пользователь
Сообщений: Регистрация: 29.07.2015
17.12.2018 12:12:52
Привет! Кто-нибудь пользовался этой функцией (trans2quik.dll) TRANS2QUIK_TRANSACTION_REPLY_CLASS_CODE ,
intptr_t
Пользователь
Сообщений: Регистрация: 29.07.2015
17.12.2018 11:52:09
Привет!
Как в Delphi объявить intptr_t ???
TRANS2QUIK_SUBSCRIBE_ORDERS ()
Пользователь
Сообщений: Регистрация: 29.07.2015
17.12.2018 11:12:46
В API есть такая строка LPTSTR TRANS2QUIK_API __stdcall TRANS2QUIK_TRANSACTION_REPLY_CLASS_CODE (TransactionReplyDescriptor tradeDescriptor);
tradeDescriptor - это ПРАВИЛЬНО?
TRANS2QUIK_SUBSCRIBE_ORDERS ()
Пользователь
Сообщений: Регистрация: 29.07.2015
17.12.2018 09:24:17
Квик и так еле "ползает", а тут еще нужно делать массивы по 52 инструментам и "бегать" по ним - очень высокая скорость работы получается!
Что мешает создать массив, в котором хранить номера уже полученных сделок и при появлении очередной записи сравнивать ее номер с тем который в массиве?
А что мешало Вам сделать это в trans2quik.dll?
TRANS2QUIK_SUBSCRIBE_ORDERS ()
Пользователь
Сообщений: Регистрация: 29.07.2015
15.12.2018 01:58:36
Добавлено Т.к собирается портфель акций, невозиожно использовать (чтобы уровнять "ноги") KILL_BALANCE или FILL_OR_KILL
TRANS2QUIK_SUBSCRIBE_ORDERS ()
Пользователь
Сообщений: Регистрация: 29.07.2015
15.12.2018 01:27:46
Цитата
Egor Zaytsev написал Добрый день. Можно различать по номеру сделки.
Нет, нельзя! Дело в том, что на Фондовом рынке нельзя посылать Рыночные ордера, а только Лимитные. И потому возникает следующая проблема (видел сам, делал логирование): Посылая лимитный ордер большого объема, он (очень часто) исполняется не сразу, а частями, совершая множество сделок.
И часто бывает, что в в TRANS2QUIK_TRADE_STATUS_CALLBACK приходят сообщения о ПЕРВОЙ сделке не сразу (подряд), а в разбежку. Н-р
1. Сообщение о ПЕРВОЙ сделке(номер сделки 101) 2. Сообщение о второй сделке(номер сделки 102) 3. Сообщение о второй сделке(номер сделки 102) 4. Сообщение о второй сделке(номер сделки 102) 5. Сообщение о ПЕРВОЙ сделке(номер сделки 101) 6. Сообщение о ТРЕТЬЕЙ сделке(номер сделки 103) 7. Сообщение о ПЕРВОЙ сделке(номер сделки 101)
Каким образом мониторить сделки в таком случае???
TRANS2QUIK_SUBSCRIBE_ORDERS ()
Пользователь
Сообщений: Регистрация: 29.07.2015
01.12.2018 00:02:59
Круто! (продолжение к TRANS2QUIK_TRADE_STATUS_CALLBACK)
Допустим я продал фьючерс, и покупаю акции на объём фьючерса, но в стакане аций нет нужного объёма для совершения одной сделки (Совкршаются 2 сделки с одинаковым объёмом).
Мне, в TRANS2QUIK_TRADE_STATUS_CALLBACK, придёт 6 сообщений! Как я буду различать в этих сообщениях две разные сделки?
TRANS2QUIK_SUBSCRIBE_ORDERS ()
Пользователь
Сообщений: Регистрация: 29.07.2015
30.11.2018 21:39:13
Спасибо
TRANS2QUIK_SUBSCRIBE_ORDERS ()
Пользователь
Сообщений: Регистрация: 29.07.2015
30.11.2018 05:33:26
Вообще-то, если какой-либо вопрос много раз поднимался, то обычно его закрепляют сверху раздела.
TRANS2QUIK_SUBSCRIBE_ORDERS ()
Пользователь
Сообщений: Регистрация: 29.07.2015
30.11.2018 02:01:38
Поиск по TRANS2QUIK_TRADE_STATUS_CALLBACK ничего не дал
TRANS2QUIK_SUBSCRIBE_ORDERS ()
Пользователь
Сообщений: Регистрация: 29.07.2015
29.11.2018 20:24:33
Спасибо! Будем ждать обновления.
Следующий вопрос: Почему, при совершении сделки, колбэк TRANS2QUIK_TRADE_STATUS_CALLBACK вызывается 3 раза?
Вывод по DDE таблицы [Состояние счёта]
Пользователь
Сообщений: Регистрация: 29.07.2015
28.11.2018 05:07:00
Добавить в таблицу [Состояние счёта] возможность добавление закреплённыж внизу значений (Н-р "свободно")
Ваш пример на Windows 7 prof x64 тоже не выдаёт ошибку!
В поле Class ввожу 123 и в поле Secs ввожу 123 , нажимаю Subscribe и нет никакой ошибки! Затем нажимаю Start и никакой ошибки тоже нет.
Экспорт по DDE таблицы [Состояние счёта]
Пользователь
Сообщений: Регистрация: 29.07.2015
27.11.2018 00:41:40
Добавлено. В подтверждении моих слов смторите это
Объёмы предложения и спроса в Доске опционов
Пользователь
Сообщений: Регистрация: 29.07.2015
27.11.2018 00:39:39
Прошло ТРИ ГОДА, а воз и еыек там...
Экспорт по DDE таблицы [Состояние счёта]
Пользователь
Сообщений: Регистрация: 29.07.2015
27.11.2018 00:34:52
Цитата
написал:
Хотя как понимаю, вам там не понравилось тоже.
А как может понравится, если всех разработчиков ВОВСЕ не интересует удобство КОНЕЧНЫХ пользователей? МТ хоть и удобный и быстрый, но там ПОЛНО своих косяков, и для каждой секции нужен отдельный терминал. Везде, и здесь и там, необходим "Танец с бубном"!