kvazar
kvazar личный блог
26 мая 2020, 21:00

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

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

upd! после обновления до 8.5.2 проблема решена, спасибо!!! это мне и в голову не пришло, скачал квик «свежий» с финама называется.
69 Комментариев
  • Replikant_mih
    26 мая 2020, 21:07
    Именно эти таблицы не использую. А что не так работает? Статус изменился, а обновления в базу не пробросились?
      • Replikant_mih
        26 мая 2020, 21:19
        kvazar, а если, например, развести по разным таблам ордера с разными статусами? Тогда ордер будет появляться в новой таблице, а не обновляться, хотя я даже не уверен, что по ODBC выгружаются только строки под фильтром, а не все.
          • Replikant_mih
            26 мая 2020, 21:25
            kvazar, Ну я понимаю, что все работало, а теперь не работает)), накинул вариант как можно попробовать обойти до того как тех поддержка разрулит. Сам эти таблицы не экспортирую, да и в целом эту функцию не часто использую.
  • 3Qu
    26 мая 2020, 21:14
    Вообще, Квик существенно подвисает. На глаз это может быть и незаметно, но открываете вы меню — секундная задержка — это оно и есть. Из за этого, в частности, могут быть пропуски событий.
    • Kot_Begemot
      26 мая 2020, 21:18
      3Qu, во! вам бы тему задать — отслеживание событий в Квик)
      • 3Qu
        26 мая 2020, 21:21
        Kot_Begemot, это не та тема. События либо отслеживаются, либо пропускаются. Это тема ARQA.
        • Kot_Begemot
          26 мая 2020, 21:23
          3Qu, ну так как их отследить-то? 
          • 3Qu
            26 мая 2020, 21:25
            Kot_Begemot, никак, если Квик их вовне не отдает, а хоронит внутри себя.
            А то, что часть событий он пропускает, даже в документации Квик написано. Правда, немного по другому поводу, но думаю, что у них все примерно в одном ключе сделано.
            • Kot_Begemot
              26 мая 2020, 21:41
              3Qu, а если вовне отдает, а внутри себя виснет?

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

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

              Я прописал некоторые защиты, но… не могу быть точно уверенным.
              • 3Qu
                26 мая 2020, 21:47
                Kot_Begemot, 
                а если вовне отдает, а внутри себя виснет?
                Вовне отдал, далее не его дела. Выстрелил — забыл. Если return не нужен. Но если в основном потоке, будет отдыхать пока летит.)
                • Kot_Begemot
                  26 мая 2020, 21:57
                  3Qu, понятно. То есть счёт не отслеживаете совсем?
                  • 3Qu
                    26 мая 2020, 22:02
                    Kot_Begemot, в смысле? Я вообще то о Квик.
                    • Kot_Begemot
                      26 мая 2020, 22:25
                      3Qu, вот и я не понимаю… У вас никогда проблем с зависанием серверов и потерей заявок/позиций/денег/ГО что-ли не было?
                      • 3Qu
                        26 мая 2020, 22:27
                        Kot_Begemot, у Альфы не было, но у меня Квик недавно, с год наверное. У нового брокера пока не было.
                        • Kot_Begemot
                          26 мая 2020, 22:32
                          3Qu, странно.
                          • 3Qu
                            26 мая 2020, 22:40
                            Kot_Begemot, я через Lua работаю. Терминал стараюсь не грузить. Луа тоже — забрал данные, освободил поток.
                            • Kot_Begemot
                              26 мая 2020, 22:44
                              3Qu, боюсь там проблемы у биржи, а не у моего терминала).
                              • 3Qu
                                26 мая 2020, 22:50
                                Kot_Begemot, боюсь, там проблемы у брокера с загруженностью серверов.)
                                Неск лет назад Квик у финам пробовал. Все подвисало. У моего никаких проблем, но терминал другой.
                                • Kot_Begemot
                                  26 мая 2020, 22:53
                                  3Qu, конкретно в моем случае может быть и брокер, но биржа тоже может пошутить над вами. Вчера, например, вариационную маржу потеряла)
                                  • 3Qu
                                    26 мая 2020, 22:57
                                    Kot_Begemot, ну, биржевые сбои, это у всех общее.)
              • tashik
                26 мая 2020, 22:03
                Kot_Begemot, trans2quik.dll Вас не спас? У меня хорошо с нею сложилось. Робот выставляет заявки бывает что и сотнями, когда набирает и сбрасывает позицию, да еще и по нескольким активам, и довольно стабильно все. Редко возникает ситуация, когда квик не присваивает ордеру свой номер, и он у меня висит неподтвержденным, и это вылечила так: при зависании ордера неподтвержденным через определенный промежуток отзываю неподтвержденные ордера.
                • Kot_Begemot
                  26 мая 2020, 22:22
                  tashik, ну я тоже так лечусь — после каждой заявки блокирую торговлю пока не придёт ответ с сервера. Это сильно тормозит сам процесс, но зато надёжно. 

                  Номера не отслеживаю, только trns_id — для каждой системы свой блокер. trans2quick.dll не использовал — программирую на Lua.
                    • Kot_Begemot
                      26 мая 2020, 22:34
                      kvazar, и как тогда отслеживать, если всё вообще висит? (счета, позиции, заявки и пр.) по номерам?
          • 3Qu
            26 мая 2020, 21:28
            kvazar, а как вы определяете, что события на ODBC вообще пришли?
            Кстати, какая БД?
              • 3Qu
                26 мая 2020, 21:39
                kvazar, т.е., в логе есть, а в БД этого NumStopOrder=140105894 нет?
                Конец инструкции не признал. Скорее Квик проглотил. Хотя и 44-я  и 49-аналогичны, тоже без =. Да, там до фига таких. Все WHERE c Num косячные.
                Что за БД то?
                  • 3Qu
                    26 мая 2020, 22:17
                    kvazar, я уже понял, сразу не въехал.
                    Так, а как они могут отработать, если:
                    WHERE Num25963084148977 AND KodClass='SPBFUT' Это 33 строка.
                    Должно быть наверное Num=25963084148977. И это по всем UPDATE.
                      • 3Qu
                        26 мая 2020, 22:37
                        kvazar, это только впечатление, в порядке бреда, но не 32 битный ли ODBC драйвер стоит.
              • Replikant_mih
                26 мая 2020, 21:40
                kvazar, Пока можно данные из лога значит выковыривать), раз там пишет, какой именно запрос не удался).
              • Replikant_mih
                26 мая 2020, 21:41
                kvazar, А, или как раз неуспешные он не указывает.
  • Anest
    26 мая 2020, 21:56
    А Квик до какой версии обновил? Где то писали, что до 8.5 нужно обновлять. Всякие 8.1., 8.3 глючные якобы в том числе и по ODBC 
      • Anest
        26 мая 2020, 22:33
        kvazar, у разных брокеров «последний квик» — разные версии, надо более точно смотреть 
          • 3Qu
            26 мая 2020, 22:43
            kvazar, переходите на 8.5.2.11. Скачать с ARQA, и бросить файлы в папку с Квик. Дел на 5 минут. Если нужна ссылка, сейчас гляну.
            Версия действительно лучше.
            ЗЫ Ссылка  ftp://ftp.quik.ru/public/updates/
              • 3Qu
                26 мая 2020, 22:54
                kvazar, Луа может перестать работать — там версия 5.3. Надо все файлы Луа минимум перекомпилировать, максимум — немного доработать.
          • Anest
            26 мая 2020, 22:49
            kvazar, вот, про это я и писал, нужно не менее 8.5.хх
  • Glago
    27 мая 2020, 14:09
    У меня не работает ODBC, техподдержка отправила сюда: 
    https://support.microsoft.com/en-us/help/2889262/office-365-microsoft-access-database-engine-could-not-find-the-object
    Ничего не понял, кто в теме, помогите плиз)
      • Glago
        27 мая 2020, 20:10
        kvazar, 


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


          • Glago
            27 мая 2020, 20:55
            kvazar, так я выводил и в ацесс

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



                  • Glago
                    27 мая 2020, 22:49
                    kvazar, ОК, давайте завтра продолжим, а то спать хотся)
                  • Glago
                    28 мая 2020, 10:27
                    клик ту ран офис?

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


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

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн