Сергей (Автор тем)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Экспорт скрытых строк по ODBC
 

Добрый день!

Разбираясь в очередной раз со скоростью экспорта по ODBC, обнаружил неприятный сюрприз.

В QUIK уже года 2 существует интересный инструмент – «Фильтр» для полей таблиц. Он позволяет отображать в таблицах не все инструменты, а только те, которые удовлетворяют условиям.

Я его использую для сокращения количества рутины при настройках фьючерсов и опционов. Но оказалось, что все не совсем так, как хотелось.

Да, фильтр ограничивает список инструментов, по которым осуществляется экспорт. Но он это делает только при первичной вставке.

При последующих изменениях в данных – QUIK пытается проапдейтить все инструменты, не обращая внимания на фильтры. Но, т.к. при первичной вставке скрытые инструменты в таблицу-получатель не добавлялись, то все последующие апдейты – бессмысленны. И самое неприятное – что пользователь об этом никак не может догадаться, пока не изучит quik_odbc.log.

Пример (показываю на фьючерсах, чтобы данных было поменьше) в версии 9.3.3.3:

1.       Настраиваю таблицу параметров (в списке «Доступные инструменты» вводу в контекстный поиск RI + переношу в «Заголовки строк» всю группу «FORTS: фьючерсы»).

2.       Получаю список из 8-и инструментов за 2 года.

3.       Настраиваю фильтр на поле «До погашения» - менее 120.

4.       У меня остаются только 2 инструмента – RIH2 и RIM2.

5.       Перезахожу в QUIK, создав файл quik_odbc.log.

6.       Сразу после чистки таблицы добавляется записи с инсертом отфильтрованных инструментов (RIH2 и RIM2).

7.       Через минуту осуществляется апдейт, но уже по всем 8-и инструментам.

Файл с картинками и лог загружены по ссылке https://drive.google.com/file/d/1utfcONnZm_XkIV_nOOLIKsbQdHleriJd/view?usp=sharing.

Сначала думал, что какую-то хорошую задумку случайно испортили, но, провернув этот трюк на версиях последних 2-х лет (8.2.1.13 от 18.12.2019, 8.5.2.11 от 30.04.2020, 8.7.1.3 от 02.07.2020, 8.9.0.107 от 05.10.2020, 8.11.0.66 от 11.12.2020, 8.13.0.106 от 22.03.2021, 8.13.1.16 от 16.04.2021, 9.1.3.11 от 18.08.2021, 9.2.3.15 от 11.10.2021, 9.3.1.11 от 12.11.2021, 9.3.3.1 от 08.12.2021) понял, что так было с самого начала, просто, видимо, я не обращал на это внимания, т.к. скорость устраивала.

Сейчас у меня экспортируется ~4000 опционов, и потери в скорости стали ощутимыми. Экспорт начинает отставать от реальных данных и при интервале обновления «30 секунд» в течение дня накапливается отставание 1-2 часа. Проблему, конечно, решает, увеличение частоты его до 50 или 60 секунд, но меня это не устраивает.

Свою проблему я решил временным ограничением – выбираю в настройках только нужные серии (а не все 30000 опционов, как раньше). Дополнительно оптимизировал работу сервера БД и своего приложения в части работы с потоками, доведя частоту апдейта без каких-либо отставаний до 3 сек. Мне в целом хватает и 5 сек., но настраивать отдельные серии все равно не хочется.

Прошу исправить ошибку. И здесь есть два пути:

а) если так и было задумано (фильтр не должен ограничивать экспорт), то тогда необходимо и первичный INSERT пустить и по всем скрытым строкам. В таком случае будет, что апдейтить в дальнейшем. И пользователь с удовольствием увидит результаты своих горе-настроек в виде «распухших» таблиц с экспортируемыми без учета фильтров данными. И обязательно задокументировать это в HELP’е. Сейчас о влиянии фильтров на экспорт ни слова нет (или я плохо искал).

б) если это баг, то надо исправлять логику апдейта – не надо ходить по этим строкам, перегружать терминал и снижать тем самым скорость экспорта.

                                         

Я, конечно, голосую за вариант B.

Пожелания по доработкам (настройки таблиц, фильтры, Trans2Quik.dll)
 

Добрый день!

Прошу рассмотреть предложения по доработкам.

1. Более гибкая настройка таблицы параметров. Сейчас нельзя добавить целый класс и забыть про настройки навсегда. Физически добавляются сами инструменты, в него входящие. Поэтому при появлении новых серий необходимо заново настраивать таблицы – удалять все опционы из «заголовков строк» и добавлять весь класс повторно. Нужен фильтр по базовым активам базовых активов-фьючерсов (т.е. RTS, Si, SBRF и т.д.), количеству страйков, срокам (в днях) и количеству ближайших серий (например, 1, 2, 5…), шагом страйка. Вы же сделали что-то похожее в таблице «Доска опционов», но только надо с выбором базового актива фьючерса опциона. И, конечно, это должно быть реализовано универсально – чтобы в одной таблице можно было выбирать как опционы, фьючерсы, акции, так и все остальные классы.

2. Фильтр инструментов (блок «Доступные инструменты») в настройке таблицы «Текущая таблица параметров» всегда работает как контекстный (%маска%), невозможно отфильтровать все инструменты начинающиеся, например, на BR (фьючерсы и опционы на Brent, в таком случае фильтруются и все опционы других базовых активов серии …BR2 (июнь 2022).

3. Необходим экспорт по ODBC из окон «Доска опционов». Уже много лет об этом все говорят.

4. В фильтрах необходимо условие фильтра типа «между». Оно нужно в случаях, когда одновременно требуется поставить условия со связкой по «или»: «не задано» + пара условий («больше 15» и «меньше 90»). В текущей реализации это невозможно сделать, манипулируя условиями только в одном поле – приходится выкручивать, добавляя условия на другие поля.

5. Необходима возможность остановки экспорта и отключения от БД через метод в библиотеке TRANS2QUIK.dll. Это требуется для проведения технологических операций в БД, в неторговое время, в автоматическом режиме, без закрытия Quik’а.

6. В таблицах «Клиентский портфель», «Ограничения по клиентским счетам», «Таблица лимитов по бумагам», «Позиции по клиентским счетам» неактивен чекбокс «Вывод после создания» и кнопка «Начать вывод данных». Но если остановить экспорт и закрыть таблицу, то чекбокс снимается.

Ошибка проверки сертификата после обновления на версию 9.2.3.15
 
Добрый день!

Возможно, кому-то пригодится.

После обновления QUIK на версию 9.2.3.15 рабочее место при запуске выдает ошибку:

Ошибка проверки файлов программы:
Ошибка проверки файла ...\info.exe.
Код ошибки: 0x800b010a
Текст ошибки: Не удается построить цепочку сертификатов для доверенного корневого центра.

ОС - Microsoft Windows Server 2012 R2 Standart.
Брокер - БКС.

После аналогичного обновления QUIK на ноутбуке под Windows 10 подобной ошибки не выводится. QUIK работает корректно.

На форуме ничего подобного не нашел.
На ftp://ftp.quik.ru/public/updates/9.2 нашел сертификат ARQA_ca_certs.pfx.
Установить не удалось, потребовался пароль (странно, что на ftp его не выложили).
Погуглив, нашел статью https://broker.vtb.ru/login/quik/distr/, в которой есть ссылка на инструкцию, где пароль указан.

Установил, QUIK заработал.
Проблемы с фильтром в окне "Таблица текущих торгов", Не работает некоторые условия в фильтре поля "Дата исполнения"
 

Добрый день!

После обновления версии с 8.13.1.16 до 9.1.3.11 возникли проблемы с фильтрами.

В таблице текущих торгов перестали работать математические условия сравнения в фильтре по полю «Дата исполнения».

Например, «больше либо равно» = «сегодня» .

При этом:

1.       Условие «не задано» отрабатывается корректно;

2.       Подобные условия по полю «Погашение» (дата) и «Дата торгов» в этом же окне отрабатываются корректно.

3.       Подобные условия с полями типа «Дата» в окнах заявок и сделок отрабатывают корректно.

4.       Пересоздание таблицы торгов и перенастройка фильтров проблему не исправляет.

5.       Проверено на разных машинах, по Windows 10 и под Windows Server 2012 R2. Брокер - БКС.

P.S. В целом, я переключился на поле «Погашение» (различия – некритичны), но проблему все же надо исправить.

P.P.S. Инструмент фильтрации – очень удобный. Чтобы не выбирать опционы, многие годы настраиваю условия для кодов инструментов, например «начинается с» = «Si», «RI». Добавляю условие по срокам. И в таком случае, не надо руками выбирать определенные серии, а достаточно выбрать все опционы (все 18000+), а потом исключаю лишние фильтрами таблицы. На скорость экспорта не влияет. Но есть пожелания:

1. Добавьте по возможности условие типа «между». Оно необходимо в случаях, когда одновременно надо поставить условия со связкой по «или»: «не задано» + пара условий («больше 15» и «меньше 90»). В текущей реализации это невозможно сделать, манипулируя условиями только в одном поле. Именно поэтому использую связку условий дата + дни до погашения.

2. Поменяйте принцип реализации набора инструментов в окно. Сейчас нельзя добавить целый класс и забыть про настройки навсегда. Физически добавляются сами инструменты, в него входящие. Поэтому при появлении новой серии необходимо заново настраивать таблицы – удалять все опционы из «заголовков строк» и добавлять весь класс повторно.

Некорректный ответ Trans2Quik.dll при включенном терминале (TRANS2QUIK_DLL_NOT_CONNECTED)
 
Добрый день!
На сервере, на 64-разрядной версии Windows 2012 R2, версия 1.2 Trans2Quik работает исправно.
На локальной машине, после перехода с 32-й на 64-ю пропал коннект.
Функция TRANS2QUIK_CONNECT теперь при включенном терминале возвращает TRANS2QUIK_DLL_NOT_CONNECTED, как при запуске в режиме отладки, так и при запуске exe-файла.
При подключении dll версии 1.3 приложение на Delphi выдает критическую ошибку – «Ошибка при запуске приложения…».
В чем может быть проблема?

ОС – Windows 10 Pro x64
QUIK – 7.14.1.7, брокер – БКС. Обработка внешних транзакций включена.
Trans2Quik.dll – 1.2.
Заявка на вывод денег через API, Не получается создать заявку на вывод денег через API
 
Добрый день!

Уважаемые разработчики, проясните, можно ли создать транзакцию на вывод денег через API?

Пробовал и так:

CLIENT_CODE=ХХХХХ; ACCOUNT=ХХХ-ХХХХХХХХ; ACTION=NEW_ORDER; TRANS_ID=123456; CLASSCODE=TRANOUT; SECCODE=RURFORTS; QUANTITY=10000

и так:

CLIENT_CODE=ХХХХХ; ACCOUNT=ХХХ-ХХХХХХХХ; ACTION=NEW_ORDER; TRANS_ID=123456; CLASSCODE=TRANOUT; SECCODE=RURFORTS; PRICE=10000

Вместо ХХХХХ и ХХХ-ХХХХХХХХ - конечно, реальные код клиента и счет.

Терминал выдает ошибку, некорректные параметры. Но что именно неправильно, неясно. В хелпе ничего про такую возможность не сказано.

Руками (из терминала) созданная транзакция тоже не помогла: в таблице транзакций она отображена не полностью - ни в одном из столбцов нет значения суммы. И какой ACTION должен быть - тоже загадка.


С уважением,
Сергей.
Некорректная отработка экспорта через ODBC
 
Добрый день!

В разделе "Использование ODBC для экспорта информации" справки QUIK в описании параметров написано:
  • «Чистить таблицу перед выводом» - если флажок установлен, то перед началом экспорта, при смене сессии, сервера или пользователя старые данные из таблицы будут удалены; если флажок снят, то новые данные будут замещать старые по мере поступления.
Но, в действительности, режим "обновления", в принципе, не работает. Если снять галку, то строки добавляются повторно. Причем не только измененные, а все.

Проверял на разных таблицах. Везде все одинаково. Индексов уникальности в таблицах нет.

Приходится использовать режим полного чистки перед записью. В таком случае размер базы растет очень быстро.

Прошу пояснить, в чем смысл такого режима обновления. Если это все-таки ошибка (причем - ей уже много лет), то сообщите, когда она будет исправлена.

С уважением,
Сергей.
Медленный экспорт в Firebird через ODBC
 
Добрый день!

Экспорт из QUIK в FireBird через ODBC осуществляется с задержками.
К вечеру достигает опоздания 1-2 часа (!!!).

Экспорт осуществляется из 9 таблиц, самая большие - таблица параметров в 2 версиях:
1. Колонки: Код бумаги Бумага Бумага сокр. Баз.актив Код класса Класс Тип опциона Лот Точность Шаг цены Страйк Дата исп. Валюта Марж.
2. Колонки:  Код бумаги Спрос Предл. Теор. цена Цена послед. Волатильность БГОНП БГОП ГО покупателя ГО продавца Статус
Обычно по 300-700 строк. Опционы.
Экспорт одной таблицы в 700 строк осуществляется в течение 1-2 минут.

Проверялось с таблицам FB как с индексами, так и без них.

QUIK 6.17.1.17. Проблема была также и в предыдущих версиях (6.16.1.15, 6.16.0.42, 6.15.2.9, 6.15.1.17).
FireBird 2.5.3.26778.
FireBird ODBC Driver 2.0.3.154 (http://www.firebirdsql.org/en/odbc-driver), также проверял на 2.0.2.153, как на Windows xp, так и на Windows Server 2008 R2 Standard.

При этом, в той же сессии одновременно с FB экспорт осуществляется и в базу MS Access. Так же через ODBC. Мгновенно (700 строк за 1-2 сек), объемы данных - точно такие же.

Нашел на форуме подобную проблему в ветке http://forum-archive.quik.ru/forum/iwr/77235/
Но там проблема была решена обновлением версии QUIK'а.

Здесь, думаю, проблема в чем-то другом. Прошу помочь.

С уважением,
Сергей.
Страницы: 1
Наверх