Блог им. kvazar

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

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

upd! после обновления до 8.5.2 проблема решена, спасибо!!! это мне и в голову не пришло, скачал квик «свежий» с финама называется.
★1
Именно эти таблицы не использую. А что не так работает? Статус изменился, а обновления в базу не пробросились?
avatar

Replikant_mih

Replikant_mih, именно.
avatar

kvazar

kvazar, а если, например, развести по разным таблам ордера с разными статусами? Тогда ордер будет появляться в новой таблице, а не обновляться, хотя я даже не уверен, что по ODBC выгружаются только строки под фильтром, а не все.
avatar

Replikant_mih

Replikant_mih, одна таблица->одна таблица, все ведь работало до перехода. Мне интересно, я один попался или нет. Я видел лог ODBC, есть предположения ошибки. Жду техподдержку.
avatar

kvazar

kvazar, Ну я понимаю, что все работало, а теперь не работает)), накинул вариант как можно попробовать обойти до того как тех поддержка разрулит. Сам эти таблицы не экспортирую, да и в целом эту функцию не часто использую.
avatar

Replikant_mih

Replikant_mih, у меня это стоп-сигнал… без этого никак.
avatar

kvazar

Вообще, Квик существенно подвисает. На глаз это может быть и незаметно, но открываете вы меню — секундная задержка — это оно и есть. Из за этого, в частности, могут быть пропуски событий.
avatar

3Qu

3Qu, во! вам бы тему задать — отслеживание событий в Квик)
avatar

Kot_Begemot

Kot_Begemot, это не та тема. События либо отслеживаются, либо пропускаются. Это тема ARQA.
avatar

3Qu

3Qu, ну так как их отследить-то? 
avatar

Kot_Begemot

Kot_Begemot, никак, если Квик их вовне не отдает, а хоронит внутри себя.
А то, что часть событий он пропускает, даже в документации Квик написано. Правда, немного по другому поводу, но думаю, что у них все примерно в одном ключе сделано.
avatar

3Qu

3Qu, а если вовне отдает, а внутри себя виснет?

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

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

Я прописал некоторые защиты, но… не могу быть точно уверенным.
avatar

Kot_Begemot

Kot_Begemot, 
а если вовне отдает, а внутри себя виснет?
Вовне отдал, далее не его дела. Выстрелил — забыл. Если return не нужен. Но если в основном потоке, будет отдыхать пока летит.)
avatar

3Qu

3Qu, понятно. То есть счёт не отслеживаете совсем?
avatar

Kot_Begemot

Kot_Begemot, в смысле? Я вообще то о Квик.
avatar

3Qu

3Qu, вот и я не понимаю… У вас никогда проблем с зависанием серверов и потерей заявок/позиций/денег/ГО что-ли не было?
avatar

Kot_Begemot

Kot_Begemot, у Альфы не было, но у меня Квик недавно, с год наверное. У нового брокера пока не было.
avatar

3Qu

3Qu, странно.
avatar

Kot_Begemot

Kot_Begemot, я через Lua работаю. Терминал стараюсь не грузить. Луа тоже — забрал данные, освободил поток.
avatar

3Qu

3Qu, боюсь там проблемы у биржи, а не у моего терминала).
avatar

Kot_Begemot

Kot_Begemot, боюсь, там проблемы у брокера с загруженностью серверов.)
Неск лет назад Квик у финам пробовал. Все подвисало. У моего никаких проблем, но терминал другой.
avatar

3Qu

3Qu, конкретно в моем случае может быть и брокер, но биржа тоже может пошутить над вами. Вчера, например, вариационную маржу потеряла)
avatar

Kot_Begemot

Kot_Begemot, ну, биржевые сбои, это у всех общее.)
avatar

3Qu

Kot_Begemot, trans2quik.dll Вас не спас? У меня хорошо с нею сложилось. Робот выставляет заявки бывает что и сотнями, когда набирает и сбрасывает позицию, да еще и по нескольким активам, и довольно стабильно все. Редко возникает ситуация, когда квик не присваивает ордеру свой номер, и он у меня висит неподтвержденным, и это вылечила так: при зависании ордера неподтвержденным через определенный промежуток отзываю неподтвержденные ордера.
avatar

tashik

tashik, ну я тоже так лечусь — после каждой заявки блокирую торговлю пока не придёт ответ с сервера. Это сильно тормозит сам процесс, но зато надёжно. 

Номера не отслеживаю, только trns_id — для каждой системы свой блокер. trans2quick.dll не использовал — программирую на Lua.
avatar

Kot_Begemot

Kot_Begemot, если много ордеров в 1 и ту же секунду проходит — привет, trans_id не все приходят в БД. Потеря id  происходит в пакетах по одной цене и с разницей времени в миллисекунды. С этим смирился в свое время.
avatar

kvazar

kvazar, и как тогда отслеживать, если всё вообще висит? (счета, позиции, заявки и пр.) по номерам?
avatar

Kot_Begemot

Kot_Begemot, нет не висит — не все данные приходят в БД, просто нельзя это поле использовать мне было в своих целях, использую поле комментарий.
avatar

kvazar

Kot_Begemot, лог ODBC
avatar

kvazar

3Qu, События — все норм, SQL ODBC не отрабатывает.
avatar

kvazar

kvazar, а как вы определяете, что события на ODBC вообще пришли?
Кстати, какая БД?
avatar

3Qu

3Qu, access. по логу, событие в логе есть.
1drv.ms/u/s!AtVVm7syI3VZgssqRbS88BAVUXbAMQ?e=YCdZHG
см. стоп-ордер №140105894, строка 38, событие «FILLED».
Либо лог косячный либо////
конец инструкции косячный - WHERE NumStopOrder140105894
avatar

kvazar

kvazar, т.е., в логе есть, а в БД этого NumStopOrder=140105894 нет?
Конец инструкции не признал. Скорее Квик проглотил. Хотя и 44-я  и 49-аналогичны, тоже без =. Да, там до фига таких. Все WHERE c Num косячные.
Что за БД то?
avatar

3Qu

3Qu, sql запрос odbc из лога не отрабатывает, обновления этого стоп-ордера не происходит.
avatar

kvazar

kvazar, я уже понял, сразу не въехал.
Так, а как они могут отработать, если:
WHERE Num25963084148977 AND KodClass='SPBFUT' Это 33 строка.
Должно быть наверное Num=25963084148977. И это по всем UPDATE.
avatar

3Qu

3Qu, именно, вопрос это в инструкции ошибка или просто запись в лог кривая. поэтому и спрашиваю, я один попал или нет…
avatar

kvazar

kvazar, это только впечатление, в порядке бреда, но не 32 битный ли ODBC драйвер стоит.
avatar

3Qu

3Qu, нет)

avatar

kvazar

kvazar, Пока можно данные из лога значит выковыривать), раз там пишет, какой именно запрос не удался).
avatar

Replikant_mih

Replikant_mih, ну это совсем круто)))
avatar

kvazar

kvazar, А, или как раз неуспешные он не указывает.
avatar

Replikant_mih

Replikant_mih, есть подозрение что ошибка в sql инструкции odbc 
avatar

kvazar

А Квик до какой версии обновил? Где то писали, что до 8.5 нужно обновлять. Всякие 8.1., 8.3 глючные якобы в том числе и по ODBC 
avatar

Anest

Anest, квик самый последний. позавчера ставил, комп сменил и все остальное.
avatar

kvazar

kvazar, у разных брокеров «последний квик» — разные версии, надо более точно смотреть 
avatar

Anest

Anest, 8.2.1.13
avatar

kvazar

kvazar, переходите на 8.5.2.11. Скачать с ARQA, и бросить файлы в папку с Квик. Дел на 5 минут. Если нужна ссылка, сейчас гляну.
Версия действительно лучше.
ЗЫ Ссылка  ftp://ftp.quik.ru/public/updates/
avatar

3Qu

3Qu, спасибо, уже обновил, эту идею не рассматривал(( сейчас потестю
avatar

kvazar

kvazar, Луа может перестать работать — там версия 5.3. Надо все файлы Луа минимум перекомпилировать, максимум — немного доработать.
avatar

3Qu

kvazar, вот, про это я и писал, нужно не менее 8.5.хх
avatar

Anest

Anest, !)
avatar

kvazar

У меня не работает ODBC, техподдержка отправила сюда: 
https://support.microsoft.com/en-us/help/2889262/office-365-microsoft-access-database-engine-could-not-find-the-object
Ничего не понял, кто в теме, помогите плиз)
avatar

Glago

Glago, есть подробности проблемы?
avatar

kvazar

kvazar, 


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


avatar

Glago

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

kvazar

kvazar, так я выводил и в ацесс

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

Glago

Glago, ок, я про акцесс. квик какой версии? типы полей выводимых совпадают в источнике и приемнике, все сделано правильно, но выдает ошибку?

avatar

kvazar

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



avatar

Glago

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

kvazar

kvazar, ОК, давайте завтра продолжим, а то спать хотся)
avatar

Glago

клик ту ран офис?

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


avatar

Glago

Glago, сделайте тип поля «дата и время» у времени и даты 
avatar

kvazar

kvazar, Здорово! Теперь всё работает.
avatar

Glago

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

Glago

Glago, не замечал
avatar

kvazar

kvazar, У меня изоляция графов запускается, если процесс вывода по ODBC вызывает ошибку. Если данные выводятся без ошибок, то грузит только Antimalware Service Executable. Насколько это серьезный процесс, можно ли его отключить?
avatar

Glago

Glago, здесь не подскажу… не знаю
avatar

kvazar


теги блога kvazar

....все тэги



2010-2020
UPDONW