Добрый день! В OnTransReply не приходят колбеки от заявок поданных через файл. Я так понял из документации, что должны - или нет?
Пользователь
Сообщений: Регистрация: 14.02.2015
11.10.2016 10:22:10
Для заявок поданных через trans2quik тоже не приходят.
QUIK clients support
Сообщений: Регистрация: 27.01.2015
11.10.2016 12:27:01
Цитата
Eskra написал: Добрый день! В OnTransReply не приходят колбеки от заявок поданных через файл. Я так понял из документации, что должны - или нет?
Добрый день,
Функция вызывается терминалом QUIK при получении ответа на транзакцию пользователя, отправленную с помощью Trans2quik.dll, QPILE, QLua или динамической загрузки транзакций из файла. То есть при подаче заявок из файла и trans2quik OnTransReply должен срабатывать. Просьба проверить, что в таблицах Транзакций (Создать окно/Таблица транзакций") и таблице сообщений (Создать окно/Таблица сообщений") не возникает ошибок при отправке транзакции. Если транзакция отправляется и ошибок нет, просьба привести пример скрипта подачи транзакции при применении которого OnTransReply не приходит, а также сообщить версию рабочего места QUIK.
Пользователь
Сообщений: Регистрация: 14.02.2015
11.10.2016 14:03:58
Я подаю заявки не из скрипта, а из стороннего робота - в таком случае колбек должен приходить? Все транзакции выставляются, ошибок не возникает
QUIK clients support
Сообщений: Регистрация: 27.01.2015
11.10.2016 16:11:59
Цитата
Eskra написал: Я подаю заявки не из скрипта, а из стороннего робота - в таком случае колбек должен приходить? Все транзакции выставляются, ошибок не возникает
Так как Ваша программа использует trans2quik.dll при использовании асинхронного способа подачи транзакций ответ приходить должен. Для диагностики проблемы просьба воспользоваться примером на C#, который можно скачать с нашего сайта по ссылке:
Пользователь
Сообщений: Регистрация: 14.02.2015
11.10.2016 16:19:07
Ок, попробую
Пользователь
Сообщений: Регистрация: 14.02.2015
11.10.2016 19:02:22
Я посмотрел пример - я так понял это робот, который пишет в лог свои действия.
Пользователь
Сообщений: Регистрация: 14.02.2015
11.10.2016 19:04:51
Я так же проверяю - у меня робот выставляет и снимает заявки через файлы - все работает, ответы приходят. Если в это время запустить скрипт с OnTransReply, то туда ничего не приходит. Если выставить заявку из скрипта, то ответ приходит
Пользователь
Сообщений: Регистрация: 14.02.2015
11.10.2016 19:05:44
При выставлении заявок через dll тоже самое
QUIK clients support
Сообщений: Регистрация: 27.01.2015
12.10.2016 13:34:24
Цитата
Eskra написал: Если в это время запустить скрипт с OnTransReply, то туда ничего не приходит.
Добрый день,
Просьба прислать скрипт в котором OnTransReply не срабатывает
Пользователь
Сообщений: Регистрация: 14.02.2015
12.10.2016 13:42:12
IsRun = true;
function OnInit() txt = io.open(getScriptPath().."/My.txt", "a"); end;
Рекомендуем воспользоваться примером test_trans.lua который работает вместе с tpf.lua. В нем содержится пример использования OnTransReply по получению которого происходит снятие заявок. На актуальной версии рабочего места QUIK 7.5 функция работает корректно. Описание работы и пример использования OnTransReply находятся в файле test_trans.lua в папке "examples", архив с которой можно скачать с нашего сайта по ссылке:
Пользователь
Сообщений: Регистрация: 14.02.2015
13.10.2016 12:56:07
Добрый день! Ок, хорошо, попробую - у меня не работало на 7.2.2.3
Пользователь
Сообщений: Регистрация: 31.01.2015
13.10.2016 21:30:58
Помогите решить проблемму с множеством колбеков OnTrade() А то никак не могу перейти с версии QUIK 6.17 на более новую. Скучаю по багам в новых версиях. )))
Пользователь
Сообщений: Регистрация: 14.02.2015
13.10.2016 21:47:57
Добрый день, тоже не работает(
Я еще раз повторюсь - при подаче заявки из луа, все колбеки по ним приходят в OnTransReply. Когда подаем заявку из внешнего робота через trans2quik или файлы - то колбеков в луа по ним нет. Я посмотрел ваши примеры, но мой скрипт работает при подаче заявок из луа, проблема с ответами для внешних транзакций
Пользователь
Сообщений: Регистрация: 14.02.2015
13.10.2016 21:58:40
Я проверял на квик-джуниор с сайта.
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
15.10.2016 07:41:25
Цитата
Вячеслав написал: Помогите решить проблемму с множеством колбеков OnTrade()
Запоминайте номера обработанных сделок Других вариантов нет.
Пользователь
Сообщений: Регистрация: 14.02.2015
17.10.2016 19:05:56
У вас ошибка воспроизвелась? Или это только уменя?)
Пользователь
Сообщений: Регистрация: 28.05.2018
17.02.2023 19:29:08
Добрый вечер! У меня в скрипте Lua не срабатывает OnTransReply. В начале при выставлении заявки он отрабатывает, а при удалении этой заявки нет. Посоветуйте, пж, что делать?
Пользователь
Сообщений: Регистрация: 30.01.2015
18.02.2023 07:03:22
Цитата
Михаил написал: Добрый вечер! У меня в скрипте Lua не срабатывает OnTransReply. В начале при выставлении заявки он отрабатывает, а при удалении этой заявки нет. Посоветуйте, пж, что делать?
написал: Добрый вечер! У меня в скрипте Lua не срабатывает OnTransReply. В начале при выставлении заявки он отрабатывает, а при удалении этой заявки нет. Посоветуйте, пж, что делать?
поставьте вывод в лог файл, покажите скрипт .
Вывод в OnTransReply() на экран стоит. При выставлении заявки скриптом он срабатывает. А затем при удалении заявки скриптом он не срабатывает. Хотя заявка удаляется, те скрипт срабатывает. Скрипт функции
function OnTransReply(order) message("OnTransReply ID: "..tostring(order.trans_id)) -- Отладочная -- if ID_B == order.trans_id then -- Интересует только наша заявка выставления на покупку NumOrderB = order.order_num -- Номер заявки сервера StatusOrderB = order.status -- Статус заявки: nil-не выставлена, 3-успешно выставлена msgOrderB = order.result_msg -- Сообщение с результатом обработки заявки end -- Удаление заявки if ID_B_Kill == order.trans_id then -- Интересует только наша заявка на удаление StatusKillOrderB = order.status -- Статус заявки: nil-не выставлена, 3-успешно выставлена msgKillOrderB = order.result_msg -- Сообщение с результатом обработки заявки end end При загрузке файла со скриптом дает ошибку загрузки.
попробую пояснить. -------------------------- этот колбек реагирует не на заявку, а на транзакцию. Ему пофиг снял вы что-то или надели или одели. Ему важно лишь транзакция исполнена или нет. ----------------------- Попробуйте это понять. Т е не надо ловить в нем вашу или не вашу заявку. Это конечно можно делать и я ловлю, чтобы быстрее реагировать, но это сложно и в действительности не нужно. ------------------------------ Ловите свою заявку в колбеках заявок, а в этом колбеке надо ловить успешно или нет прошла вша транзакция.
попробую пояснить. -------------------------- этот колбек реагирует не на заявку, а на транзакцию. Ему пофиг снял вы что-то или надели или одели. Ему важно лишь транзакция исполнена или нет. ----------------------- Попробуйте это понять. Т е не надо ловить в нем вашу или не вашу заявку. Это конечно можно делать и я ловлю, чтобы быстрее реагировать, но это сложно и в действительности не нужно. ------------------------------ Ловите свою заявку в колбеках заявок, а в этом колбеке надо ловить успешно или нет прошла вша транзакция.
Так в OnTransReply() я и ловлю успешность выполнения заявки отправленной с помощью sendTransaction(). sendTransaction() исполняется, а ответа в OnTransReply() нет.
Пользователь
Сообщений: Регистрация: 31.01.2015
20.02.2023 22:43:56
Цитата
Михаил написал: Так в OnTransReply() я и ловлю успешность выполнения заявки отправленной с помощью sendTransaction(). sendTransaction() исполняется, а ответа в OnTransReply() нет.
OnTransReply() - это ответ на транзакцию. OnOrder() - для заявки.
попробую пояснить. -------------------------- этот колбек реагирует не на заявку, а на транзакцию. Ему пофиг снял вы что-то или надели или одели. Ему важно лишь транзакция исполнена или нет. ----------------------- Попробуйте это понять. Т е не надо ловить в нем вашу или не вашу заявку. Это конечно можно делать и я ловлю, чтобы быстрее реагировать, но это сложно и в действительности не нужно. ------------------------------ Ловите свою заявку в колбеках заявок, а в этом колбеке надо ловить успешно или нет прошла вша транзакция.
Так в OnTransReply() я и ловлю успешность выполнения заявки отправленной с помощью sendTransaction(). sendTransaction() исполняется, а ответа в OnTransReply() нет.
поставьте вывод в лог или на экран самым первым оператором в функции OnTransReply