Ошибка: указанная транзакция по указанному классу не найдена

Страницы: 1
RSS
Ошибка: указанная транзакция по указанному классу не найдена, Quik 8.11.0.66
 
Добрый день, брокер ВТБ, версия QUIK - 8.11.0.66.
Работает торговая  система (ТС) на QLUA и иногда при отправке транзакции получаю ошибку -  Указанная транзакция по указанному классу не найдена: "SPBFUT", а иногда  проходит без ошибок.
Транзакция отправляется строго в торговую сессию.
ТС работает на версии 5.3.5

вот с такими данными улетала транзакция фьючерс Si-3.21
12.02.2021;11:30:00;ACTION=NEW_ORDER; TRANS_ID=1612899312; OPERATION=B; QUANTITY=1; PRICE=74366;

На демо стенде такую ошибку не ловил, куда смотреть?
Спасибо.
 
Есть подозрение, из-за того что Quik работает неделю без перезапуска.
Нельзя было поставить и вручную заявку, после перезапуска стало возможно и заявку поставить и сделки совершенные увидеть.

Думал Quik хотя бы с понедельника по пятницу может отработать без перезагрузки.
 
Цитата
Олег написал:
Указанная транзакция по указанному классу не найдена:
Сталкивался с таким вопросом.
 
Цитата
Константин Рейм написал:
Цитата
Олег написал:
Указанная транзакция по указанному классу не найдена:
Сталкивался с таким вопросом.
С чем была связана проблема и как решили?
 
Да я так и не понял в чем подвох был, а здесь то написал с целью привлечения внимания общественности - глядишь может кто и откликнется - подскажет в чем дело и как с этим быть.
 
Олег, здравствуйте.

Рекомендуем проверить статусы инструментов/классов, в момент создания транзакции. Это касается таких параметров, как "Состояние сессии" и "Статус торговли инструментом" в таблице текущих торгов. Если "Сессия" покажет "закрыта" и/или "Статус" будет "не торгуется", то транзакция не выполнится. Можете прописать в коде скрипта условие на проверку этих двух статусов перед отправкой.
 
Цитата
Evgeniy Karnaukhov написал:
Олег, здравствуйте.

Рекомендуем проверить статусы инструментов/классов, в момент создания транзакции. Это касается таких параметров, как "Состояние сессии" и "Статус торговли инструментом" в таблице текущих торгов. Если "Сессия" покажет "закрыта" и/или "Статус" будет "не торгуется", то транзакция не выполнится. Можете прописать в коде скрипта условие на проверку этих двух статусов перед отправкой.
 
Код
   if round(getParamEx(statusClass, statusCode, "status").param_value) == 1 then status = true else status = false end -- Торговля разрешена/не разрешена
Во всех скриптах вот такая проверка стоит, если status == false, то транзакция не уйдет и тем не менее однажды вылезла ошибка описанная здесь.
 
Да и сама эта функция как то странно себя ведет: время "10:00:05", а status == false, (на 3-5 сек. на старте торгов задерживается), время "18:45:33", а status == true. Прокомментируете?
 
Цитата
Константин Рейм написал:
Да и сама эта функция как то странно себя ведет: время "10:00:05", а status == false, (на 3-5 сек. на старте торгов задерживается), время "18:45:33", а status == true. Прокомментируете?

Рассинхрон веремени.
 
Цитата
swerg написал:
Рассинхрон веремени.
Суть вопроса в том что "10:00:05" это серверное время и торги по времени уже начались, а функция status == false не дает торговать каое-то время. В принципе меня этот вопрос не особо волнует т.к. для опционов время в боте стоит - старт торгов в "10:01:00", финиш в "18:44:00" (вечерняя сессия по аналогии), но все же хотелось бы понять почему status живет своей жизнью. Был еще такой момент у одного из товарищей (писал об этом в другой ветке), бот торгует - у фьюча status == true в течение всей торговой сессии, а вот у опционов с утра все норм, а ближе к вечеру (точное время уже не помню) - status == false - и понятное дело бот не торгует опционы, а торговля то идет.
 
Цитата
Константин Рейм написал:
Суть вопроса в том что "10:00:05" это серверное время и торги по времени уже начались, а функция status == false не дает торговать каое-то время.

Ну правильно, серверное, от сервера QUIK, а не биржи
Конечно расхождение  в несколько секунд как-то слишком большое, однако это ж не status  мешает отправке транзакции; это значит, что биржа отклонила, т.е. с точки зрения биржи торги еще не начались. Рассинхрон в одну сторону подтверждает и то, что вечером "после окончания сессии" торги еще идут (судя по вашим же сообщениям, как я их понял). Так что либо время биржи отстает, либо сервера QUIK опережает, так я думаю.
 
Раньше тоже определял время по параметру STATUS, вот только как уже писали выше, он "тормозит" с утра на 3-4 секунды (открытие брокер, если что).
Хоть это и не очень критично, но иногда все же при утренних гэпах бывает нужно срочно закрыть сделку, и эти 3 секунды могут стоить 100-200 пунктов.


Решил вообще от проверки по статусу отказаться, решение то простое.
Сравниваем время последней свечи с локальным, переведенным в московское, если совпадает, то торгуем.

Естественно, локальное время должно быть синхронизированно.
 
Обычно, если послать транзакцию за несколько секунд до начала или через несколько секунд после окончания торговой сессии, то будет ошибка от шлюза торговой системы:
"Сейчас эта сессия не идет."

Цитата
Олег написал:
вот с такими данными улетала транзакция фьючерс Si-3.21
12.02.2021;11:30:00;ACTION=NEW_ORDER; TRANS_ID=1612899312; OPERATION=B; QUANTITY=1; PRICE=74366;
Что значит "улетела"?
Цитата
Олег написал:
Указанная транзакция по указанному классу не найдена: "SPBFUT"
Это, вроде, как ошибка самого терминала, транзакция на сервер не отправляется.

Цитата
Evgeniy Karnaukhov написал:
"Статус" будет "не торгуется"
Не бывает такого Статуса торговли инструментом. По крайней мере, ни разу не встречал.
 
Цитата
Незнайка написал:
Что значит "улетела"?
Отправлена команда sendTransaction(transaction) и получен ответ как в теме.

У меня подозрение, что были проблемы с самим Квиком, так как вручную тоже не мог выставить заявку.
 
Олег,
Здравствуйте,
Если через терминал транзакция не отправляется то и через QLUA вполне ожидаемо отправиться не сможет.
Ошибка означает то что сказано, а именно транзакция не найдена.
Варианты причин могут быть разные:
Указаны неверные параметры транзакции
Нет прав на класс
Права есть но класса нет
Права есть, класс есть, но возможна какая-то неполадка на стороне брокера.

Достоверно определить причины, может только брокер.
Страницы: 1
Читают тему (гостей: 1)
Наверх