OnTransReply

Страницы: 1
RSS
OnTransReply
 
Добрый день! В OnTransReply не приходят колбеки от заявок поданных через файл. Я так понял из документации, что должны - или нет?
 
Для заявок поданных через trans2quik тоже не приходят.
 
Цитата
Eskra написал:
Добрый день! В OnTransReply не приходят колбеки от заявок поданных через файл. Я так понял из документации, что должны - или нет?
Добрый день,

Функция вызывается терминалом QUIK при получении ответа на транзакцию   пользователя, отправленную с помощью Trans2quik.dll, QPILE, QLua или   динамической загрузки транзакций из файла. То есть при подаче заявок из файла и trans2quik OnTransReply должен срабатывать.
Просьба проверить, что в таблицах Транзакций (Создать окно/Таблица транзакций") и таблице сообщений (Создать окно/Таблица сообщений") не возникает ошибок при отправке транзакции.
Если транзакция отправляется и ошибок нет, просьба привести пример скрипта подачи транзакции при применении которого OnTransReply не приходит, а также сообщить версию рабочего места QUIK.
 
Я подаю заявки не из скрипта, а из стороннего робота - в таком случае колбек должен приходить? Все транзакции выставляются, ошибок не возникает
 
Цитата
Eskra написал:
Я подаю заявки не из скрипта, а из стороннего робота - в таком случае колбек должен приходить? Все транзакции выставляются, ошибок не возникает
Так как Ваша программа использует trans2quik.dll при использовании асинхронного способа подачи транзакций ответ приходить должен.
Для диагностики проблемы просьба воспользоваться примером на C#, который можно скачать с нашего сайта по ссылке:
http://arqatech.com/upload/iblock/80a/Trans2QuikAPI_1.3_x64.zip
 
Ок, попробую
 
Я посмотрел пример - я так понял это робот, который пишет в лог свои действия.  
 
Я так же проверяю - у меня робот выставляет и снимает заявки через файлы - все работает, ответы приходят. Если в это время запустить скрипт с OnTransReply, то туда ничего не приходит. Если выставить заявку из скрипта, то ответ приходит
 
При выставлении заявок через dll тоже самое
 
Цитата
Eskra написал:
Если в это время запустить скрипт с OnTransReply, то туда ничего не приходит.
Добрый день,

Просьба прислать скрипт в котором OnTransReply не срабатывает
 
IsRun = true;

function OnInit()
  txt = io.open(getScriptPath().."/My.txt", "a");
end;

function main()
  while IsRun do

  sleep(3000);
  end;
end;

function OnStop()

  IsRun = false;
  txt:close();
end;

function OnTransReply(trans_reply)

  line=tostring(trans_reply.trans_id)..";"..tostring(trans_reply.status)"\n";
  txt:write(line);
  txt:flush();

end
 
Добрый день,

Рекомендуем воспользоваться примером test_trans.lua который работает вместе с tpf.lua. В нем содержится пример использования OnTransReply по получению которого происходит снятие заявок. На актуальной версии рабочего места QUIK 7.5 функция работает корректно. Описание работы и пример использования OnTransReply находятся в файле  test_trans.lua в папке "examples", архив с которой можно скачать с нашего сайта по ссылке:
http://arqatech.com/upload/iblock/022/quik_lua.zip
 
Добрый день! Ок, хорошо, попробую - у меня не работало на 7.2.2.3
 
Помогите решить проблемму с множеством колбеков OnTrade()
А то никак не могу перейти с версии QUIK 6.17 на более новую.
Скучаю по багам в новых версиях. )))
 
Добрый день, тоже не работает(

Я еще раз повторюсь - при подаче заявки из луа, все колбеки по ним приходят в OnTransReply. Когда подаем заявку из внешнего робота через trans2quik или файлы - то колбеков в луа по ним нет. Я посмотрел ваши примеры, но мой скрипт работает при подаче заявок из луа, проблема с ответами для внешних транзакций
 
Я проверял на квик-джуниор с сайта.
 
Цитата
Вячеслав написал:
Помогите решить проблемму с множеством колбеков OnTrade()
Запоминайте номера обработанных сделок
Других вариантов нет.
 
У вас ошибка воспроизвелась? Или это только уменя?)
 
Добрый вечер!
У меня в скрипте Lua не срабатывает OnTransReply.
В начале при выставлении заявки он отрабатывает, а при удалении этой заявки нет.
Посоветуйте, пж, что делать?
 
Цитата
Михаил написал:
Добрый вечер!
У меня в скрипте Lua не срабатывает OnTransReply.
В начале при выставлении заявки он отрабатывает, а при удалении этой заявки нет.
Посоветуйте, пж, что делать?
поставьте вывод в лог файл,
покажите скрипт .
 
Цитата
nikolz написал:
Цитата
Михаил написал:
Добрый вечер!
У меня в скрипте 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()
попробую пояснить.
--------------------------
этот колбек реагирует не на заявку, а на транзакцию.
Ему пофиг снял вы что-то или надели или одели.
Ему важно лишь транзакция исполнена или нет.
-----------------------
Попробуйте это понять.
Т е не надо ловить в нем вашу или не вашу заявку.
Это конечно можно делать и я ловлю, чтобы быстрее реагировать, но это сложно и в действительности не нужно.
------------------------------
Ловите свою заявку в колбеках заявок, а в этом колбеке надо ловить успешно или нет прошла вша транзакция.
 
Цитата
nikolz написал:
Цитата
Михаил написал:
OnTransReply()
попробую пояснить.
--------------------------
этот колбек реагирует не на заявку, а на транзакцию.
Ему пофиг снял вы что-то или надели или одели.
Ему важно лишь транзакция исполнена или нет.
-----------------------
Попробуйте это понять.
Т е не надо ловить в нем вашу или не вашу заявку.
Это конечно можно делать и я ловлю, чтобы быстрее реагировать, но это сложно и в действительности не нужно.
------------------------------
Ловите свою заявку в колбеках заявок, а в этом колбеке надо ловить успешно или нет прошла вша транзакция.
Так в OnTransReply() я и ловлю успешность выполнения заявки отправленной с помощью sendTransaction(). sendTransaction() исполняется, а ответа в OnTransReply() нет.
 
Цитата
Михаил написал:
Так в OnTransReply() я и ловлю успешность выполнения заявки отправленной с помощью sendTransaction(). sendTransaction() исполняется, а ответа в OnTransReply() нет.
OnTransReply() - это ответ на транзакцию. OnOrder() - для заявки.
 
Цитата
Михаил написал:
Цитата
nikolz написал:
 
Цитата
Михаил  написал:
OnTransReply()
 попробую пояснить.
--------------------------
этот колбек реагирует не на заявку, а на транзакцию.
Ему пофиг снял вы что-то или надели или одели.
Ему важно лишь транзакция исполнена или нет.
-----------------------
Попробуйте это понять.
Т е не надо ловить в нем вашу или не вашу заявку.
Это конечно можно делать и я ловлю, чтобы быстрее реагировать, но это сложно и в действительности не нужно.
------------------------------
Ловите свою заявку в колбеках заявок, а в этом колбеке надо ловить успешно или нет прошла вша транзакция.
Так в OnTransReply() я и ловлю успешность выполнения заявки отправленной с помощью sendTransaction(). sendTransaction() исполняется, а ответа в OnTransReply() нет.
поставьте вывод в лог или на экран самым первым оператором в функции OnTransReply
Страницы: 1
Читают тему
Наверх