Обратил внимание, что trans2quik.dll выдаёт такое сообщение в некоторых случаях. Хотел узнать, кто такой Already и почему он подсоединился к шучу квику? Но действительно, в фразе ошибка. И не очень понятно, почему dll сообщает на английском, в то время как сам quik возвращает все сообщения на нормальном русском языке.
Не хотелось бы упоминать конкретного брокера, но заметил такую вещь: между TRANS2QUIK_SEND_ASYNC_TRANSACTION и получением статуса "заявка зарегистрирована" в TRANS2QUIK_TRANSACTION_REPLY_CALLBACK для инструмента Si обычно проходит 50-250 мсек. а для инструмента ED - примерно в тоже самое время суток (разница 10-20 минут не больше) проходит 1 (одна!) миллисекунда. код, естественно, один и тот же.
понятно, что оборот по инструментам разный. но от чего может быть такая зависимость? от настроек квика? (по Si ещё открыта таблица опционов, по ED - нет), от особенность работы брокера (искусственно тормозит заявки, "закрывает об себя"?) или всё нормально - и задержка чисто на стороне биржи, связанная с количеством агентов (трейдеров/роботов) в стакане?
мне казалось что по ED народу не так уж чтобы сильно меньше, 50-250 раз разницы - это какой-то "перебор"
задержки случайны, определить сложно, поскольку заявки выставляются на боевом сервере, в зависимости от рынка, скажем задержки раз в несколько часов определяю непосредственно до и после вызова TRANS2QUIK_SEND_ASYNC_TRANSACTION
думаю если вы скажете что TRANS2QUIK_SEND_ASYNC_TRANSACTION не выполняет никаких ожиданий, мне этого будет достаточно, спасибо
Периодически возникают странные паузы в работе робота, в 15 мсек по исполнению TRANS2QUIK_SEND_ASYNC_TRANSACTION в нормально время она исполняется < 1 мсек
пытаюсь найти причину, хотел бы уточнить, может ли быть дело в самой TRANS2QUIK_SEND_ASYNC_TRANSACTION или это где-то в другой стороне? робот работает в Java, для вызова dll используется JNA и в целом, как я говорю, отрабатывает <1 мсек. но вот эти странные паузы ровно в 15 мсек меня настораживают.
ОС Windows 7 pro памяти 16 Gb, под Java выделено тоже много, сомневаюсь что это GC
хотелось бы понять, замечал ли кто подобные паузы и с чем они могут быть связаны. а так же детали реализации TRANS2QUIK_SEND_ASYNC_TRANSACTION. может ли она содержать в себе какую-либо синхронизацию (паузу) или по-честному всегда возвращатся квази-мгновенно?
Почему для того чтобы CreateDataSource вернул не пустой массив, нужно чтобы на рабочем месте хоть раз был открыт график по этому инструменту? Сегодня проводил несколько экспериментов - создавал DataSource для пятиминуток в Si-9.15 Изначально графиков с ним открытых не было - только Si-6.15 (предыдущий) и возвращался в результате пустой DS если Si-9.15 внести в таблицу параметров - это не влияет на DataSource - так и возвращается пустой. если же открыть хотя бы часовой график Si-9.15, то DataSource даже для 5минуток начинает возвращать свечи.
в настройках стоит "с учётом настроек Связь/Списки", в настройках "Связь/Списки" фильр для инструментов не задан (доступны все).
неужели обязательно теперь будет открывать новый график, чтобы программа на Lua корректно получала данные?
Версия Quik 6.14.0.12 (такую брокер использует). отправляю заявки через Trans2Quik.dll, при этом отслеживаю статус исполнения через TRANS2QUIK_ORDER_STATUS_CALLBACK
алгоритм пытается выставить заявку достаточно близко к концу закрытия сессии. при этом исходя из статусов от Quik API - всё проходит отлично. Но в самом окошке Квика заявка оказывается снятой в 18-45, никаких дополнительных комментариев по ней нет. И уведомления о том что она снята в TRANS2QUIK_ORDER_STATUS_CALLBACK не приходит, т.е. алгоритм пытается и дальше дождаться, когда же она исполнится.
Почему так? вот лог вызовов операций Trans2Quik API из моего алгоритма:
хотелось бы уже получить исправление. или указание, в каком из модулей ошибка. насколько я понимаю, сегодня версию с багом уже стали рассылать некоторые брокеры!
Пробую отлаживать новый функционал на выходных из вашего демо-клиента (Quik-Junior). При подписывании на заявки, старте их получения, в order callback приходит только OrderDescriptor. и всё...
пробовал через ваше тестовое приложение API_Tester_DLG.exe - тоже самое. приходит OrderDescriptor, времена там какие-то, а ключевой информации, вроде номер заявки, количество, цена и тп - всё по нулям. в таблике заявок квика всё нормально.
это ваш тестовый сервер специально так настроен? или с квиком что-то не так? Quik версия 6.17.0.58, Trans2QUIK версии 1.2
в transaction callback приходят нормальные корректные данные.
Подскажите, как получить из таблицы текущих параметров в Lua одновременно объём по последней сделке и деньгах и в контрактах? Насколько я понимаю, для этого надо вызывать два раза функцию getParamEx, но ведь нет никакой гарантии, что таблица не изменится за это время. Как с получить эти данные, с гарантией, что они соответствуют одному и тому же моменту?