Блог им. kvazar

Кто-то использует ODBC экспорт из КВИКа?

После перехода на х64 «лажает» ODBC, в частности не обновляются/не приходят правильно статусы ордеров и стоп-ордеров.
Кто-то использует эти таблицы в работе в связке с СУБД? Техподдержка КВИКа озадачена, но пока нет ответа.

upd! после обновления до 8.5.2 проблема решена, спасибо!!! это мне и в голову не пришло, скачал квик «свежий» с финама называется.
★1
69 комментариев
Именно эти таблицы не использую. А что не так работает? Статус изменился, а обновления в базу не пробросились?
avatar
Replikant_mih, именно.
avatar
kvazar, а если, например, развести по разным таблам ордера с разными статусами? Тогда ордер будет появляться в новой таблице, а не обновляться, хотя я даже не уверен, что по ODBC выгружаются только строки под фильтром, а не все.
avatar
Replikant_mih, одна таблица->одна таблица, все ведь работало до перехода. Мне интересно, я один попался или нет. Я видел лог ODBC, есть предположения ошибки. Жду техподдержку.
avatar
kvazar, Ну я понимаю, что все работало, а теперь не работает)), накинул вариант как можно попробовать обойти до того как тех поддержка разрулит. Сам эти таблицы не экспортирую, да и в целом эту функцию не часто использую.
avatar
Replikant_mih, у меня это стоп-сигнал… без этого никак.
avatar
Вообще, Квик существенно подвисает. На глаз это может быть и незаметно, но открываете вы меню — секундная задержка — это оно и есть. Из за этого, в частности, могут быть пропуски событий.
avatar
3Qu, во! вам бы тему задать — отслеживание событий в Квик)
avatar
Kot_Begemot, это не та тема. События либо отслеживаются, либо пропускаются. Это тема ARQA.
avatar
3Qu, ну так как их отследить-то? 
avatar
Kot_Begemot, никак, если Квик их вовне не отдает, а хоронит внутри себя.
А то, что часть событий он пропускает, даже в документации Квик написано. Правда, немного по другому поводу, но думаю, что у них все примерно в одном ключе сделано.
avatar
3Qu, а если вовне отдает, а внутри себя виснет?

У меня один раз была ситуация — нужно было закрыть один опцион в полном стакане 12 марта 2020.

Робот послал штук сто заявок на покупку по всё время растущей цене (кушал Offera) пока таблица «позиции по клиентским счетам» не обновилась и не показала, что уже все опционы закрыты и ещё целая куча довеском по каким-то нереальным ценам. 

Я прописал некоторые защиты, но… не могу быть точно уверенным.
avatar
Kot_Begemot, 
а если вовне отдает, а внутри себя виснет?
Вовне отдал, далее не его дела. Выстрелил — забыл. Если return не нужен. Но если в основном потоке, будет отдыхать пока летит.)
avatar
3Qu, понятно. То есть счёт не отслеживаете совсем?
avatar
Kot_Begemot, в смысле? Я вообще то о Квик.
avatar
3Qu, вот и я не понимаю… У вас никогда проблем с зависанием серверов и потерей заявок/позиций/денег/ГО что-ли не было?
avatar
Kot_Begemot, у Альфы не было, но у меня Квик недавно, с год наверное. У нового брокера пока не было.
avatar
3Qu, странно.
avatar
Kot_Begemot, я через Lua работаю. Терминал стараюсь не грузить. Луа тоже — забрал данные, освободил поток.
avatar
3Qu, боюсь там проблемы у биржи, а не у моего терминала).
avatar
Kot_Begemot, боюсь, там проблемы у брокера с загруженностью серверов.)
Неск лет назад Квик у финам пробовал. Все подвисало. У моего никаких проблем, но терминал другой.
avatar
3Qu, конкретно в моем случае может быть и брокер, но биржа тоже может пошутить над вами. Вчера, например, вариационную маржу потеряла)
avatar
Kot_Begemot, ну, биржевые сбои, это у всех общее.)
avatar
Kot_Begemot, trans2quik.dll Вас не спас? У меня хорошо с нею сложилось. Робот выставляет заявки бывает что и сотнями, когда набирает и сбрасывает позицию, да еще и по нескольким активам, и довольно стабильно все. Редко возникает ситуация, когда квик не присваивает ордеру свой номер, и он у меня висит неподтвержденным, и это вылечила так: при зависании ордера неподтвержденным через определенный промежуток отзываю неподтвержденные ордера.
avatar
tashik, ну я тоже так лечусь — после каждой заявки блокирую торговлю пока не придёт ответ с сервера. Это сильно тормозит сам процесс, но зато надёжно. 

Номера не отслеживаю, только trns_id — для каждой системы свой блокер. trans2quick.dll не использовал — программирую на Lua.
avatar
Kot_Begemot, если много ордеров в 1 и ту же секунду проходит — привет, trans_id не все приходят в БД. Потеря id  происходит в пакетах по одной цене и с разницей времени в миллисекунды. С этим смирился в свое время.
avatar
kvazar, и как тогда отслеживать, если всё вообще висит? (счета, позиции, заявки и пр.) по номерам?
avatar
Kot_Begemot, нет не висит — не все данные приходят в БД, просто нельзя это поле использовать мне было в своих целях, использую поле комментарий.
avatar
Kot_Begemot, лог ODBC
avatar
3Qu, События — все норм, SQL ODBC не отрабатывает.
avatar
kvazar, а как вы определяете, что события на ODBC вообще пришли?
Кстати, какая БД?
avatar
3Qu, access. по логу, событие в логе есть.
1drv.ms/u/s!AtVVm7syI3VZgssqRbS88BAVUXbAMQ?e=YCdZHG
см. стоп-ордер №140105894, строка 38, событие «FILLED».
Либо лог косячный либо////
конец инструкции косячный - WHERE NumStopOrder140105894
avatar
kvazar, т.е., в логе есть, а в БД этого NumStopOrder=140105894 нет?
Конец инструкции не признал. Скорее Квик проглотил. Хотя и 44-я  и 49-аналогичны, тоже без =. Да, там до фига таких. Все WHERE c Num косячные.
Что за БД то?
avatar
3Qu, sql запрос odbc из лога не отрабатывает, обновления этого стоп-ордера не происходит.
avatar
kvazar, я уже понял, сразу не въехал.
Так, а как они могут отработать, если:
WHERE Num25963084148977 AND KodClass='SPBFUT' Это 33 строка.
Должно быть наверное Num=25963084148977. И это по всем UPDATE.
avatar
3Qu, именно, вопрос это в инструкции ошибка или просто запись в лог кривая. поэтому и спрашиваю, я один попал или нет…
avatar
kvazar, это только впечатление, в порядке бреда, но не 32 битный ли ODBC драйвер стоит.
avatar
3Qu, нет)

avatar
kvazar, Пока можно данные из лога значит выковыривать), раз там пишет, какой именно запрос не удался).
avatar
Replikant_mih, ну это совсем круто)))
avatar
kvazar, А, или как раз неуспешные он не указывает.
avatar
Replikant_mih, есть подозрение что ошибка в sql инструкции odbc 
avatar
А Квик до какой версии обновил? Где то писали, что до 8.5 нужно обновлять. Всякие 8.1., 8.3 глючные якобы в том числе и по ODBC 
avatar
Anest, квик самый последний. позавчера ставил, комп сменил и все остальное.
avatar
kvazar, у разных брокеров «последний квик» — разные версии, надо более точно смотреть 
avatar
Anest, 8.2.1.13
avatar
kvazar, переходите на 8.5.2.11. Скачать с ARQA, и бросить файлы в папку с Квик. Дел на 5 минут. Если нужна ссылка, сейчас гляну.
Версия действительно лучше.
ЗЫ Ссылка  ftp://ftp.quik.ru/public/updates/
avatar
3Qu, спасибо, уже обновил, эту идею не рассматривал(( сейчас потестю
avatar
kvazar, Луа может перестать работать — там версия 5.3. Надо все файлы Луа минимум перекомпилировать, максимум — немного доработать.
avatar
kvazar, вот, про это я и писал, нужно не менее 8.5.хх
avatar
Anest, !)
avatar
У меня не работает ODBC, техподдержка отправила сюда: 
https://support.microsoft.com/en-us/help/2889262/office-365-microsoft-access-database-engine-could-not-find-the-object
Ничего не понял, кто в теме, помогите плиз)
avatar
Glago, есть подробности проблемы?
avatar
kvazar, 


в диспетчере имен вроде как диапазон есть, но драйвер ODBC его как бы не видит. на форумах читал, что такая хрень может возникать на подписочных офисах «нажми и работай», но как её устранить? ARQA направила на ссылку (см. выше), а я там ничего не понял.


avatar
Glago, ODBC работает с СУБД, DDE c Excel. Какую задачу решаете? Вам DDE нужен.
avatar
kvazar, так я выводил и в ацесс

у меня файл ацесс зарегистрирован как пользовательский DSN, файл эксель как системный DSN, вывод невозможен? Чек-бокс рид онли у меня пустой.
Вам DDE нужен
DDE использую по кнопке «вывести сейчас», а если использовать кнопку «начать вывод», хотел сравнить два метода, вдруг ODBC чем-то лучше?
avatar
Glago, ок, я про акцесс. квик какой версии? типы полей выводимых совпадают в источнике и приемнике, все сделано правильно, но выдает ошибку?

avatar
kvazar, квик 8.4.1.6 Поля вроде совпадают и выдает ошибку потому, что клик ту ран офис



avatar
Glago, клик ту ран офис? не встречал. советую именовать поля на инглише и обязательно! без пробелов, поле открытый интерес нужно переименовать.
Источник сделан х64?
Дата и Время не может быть integer — должно быть текстовое поле, знаков 12 длиной
Поля состыкованы? а то не видно…
и еще хэлп к квику читали, приложение 6?
avatar
kvazar, ОК, давайте завтра продолжим, а то спать хотся)
avatar
клик ту ран офис?

kvazar, не обращайте внимание, так майкрософт называет новое семейство офисов, получаемых по подписке и привязанных к учетной записи.
Теперь по-существу. Поскольку х64 драйвер скачивал отсюда https://www.microsoft.com/en-us/download/details.aspx?id=54920
видимо для него критичны кириллические названия. Правильно вы посоветовали убрать пробел в последнем поле, так долго возился, что не заметил этой ошибки.
НО! Возникла интересная ситуация
Если поля таблицы асцесс переписать на английском, а поля Time(время) и Trade_Date(дата) там оставить Integer, всё замечательно выводиться без ошибок, но поля время и дата заполняются нулями. Для времени и даты не находится в списке соответствующих полей.
Если время и дату сделать текстовыми длиной 12, возникает ошибка
Если сделать длину в полях время и дата 255 (по умолчанию) всё выводится без ошибок, то поля время и дата просто остаются пустыми, хотя через выпадающее меню были соотнесены Время и Time.
ИМХО проблема в полях Время и Дата.


avatar
Glago, сделайте тип поля «дата и время» у времени и даты 
avatar
kvazar, Здорово! Теперь всё работает.
avatar
Да, ещё заметил такую хрень, что при запуске ODBC в списке процессов запускается Antimalware Service Executable и сильно (20%) грузит комп, а бывает к нему присоединяется процесс Изоляция Графов Аудиоустройств Windows и вместе они нагружают проц до 65%, вырубаю ODBC нагрузка пропадает, а если не вырубить, тогда может вырубиться квик! Не пойму как какие-то аудиоустройства могут связаны с квиком? Интересно, только у меня эти процессы стартуют после запуска ODBC?
avatar
Glago, не замечал
avatar
kvazar, У меня изоляция графов запускается, если процесс вывода по ODBC вызывает ошибку. Если данные выводятся без ошибок, то грузит только Antimalware Service Executable. Насколько это серьезный процесс, можно ли его отключить?
avatar
Glago, здесь не подскажу… не знаю
avatar

теги блога kvazar

....все тэги



UPDONW
Новый дизайн