Рекомендуем в начале настроить ежедневную выгрузку скриптом export_alltrades.lua После этого включить ODBC драйвер. Комбинация обоих механизмов позволяет практически исключить пробелы в истории сделок.
Практическое применение - backtesting, оптимизация алгоритов в части выставления заявок.
Использование СУБД бесплатное. Будем признательны за обратную связь. На хорошие вопросы постараюсь отвечать в течение дня.
12 марта 2021 произошел интересный момент, когда в 13.34:16 МСК цена TRMK превысила верхнее значение ценового диапазона, установленного в предыдущий день. Проверка лимитов в НКК подтвердила внеочередное обновление риск-параметров в течение торгового дня, за минуту до превышения порога.
Автоматизировал ежедневную загрузку порогов из НКЦ. За вычетом режимов РПС получается 2734 инструмента (акции, облигации, фонды).
Теперь могу их надежно использовать в Квике, производя сверку порогов Квика с НКЦ, и исправляя нули при необходимости. Единственный момент - это риск изменения порогов со стороны НКЦ в течение торгового дня. Но при этом также неизвестно, будет ли своевременно обновлен сам Квик. Если интересен путь к ежедневным csv файлами порогами (фонд + валюта) на веб сервере, пишите в личку.
Ответ на запрос в ЦБ касательно опубликования параметров биржей - отрицательный, но полезный! ЦБ помог со ссылкой.
Цитата
Департамент инфраструктуры финансового рынка рассмотрел Ваше обращение No ОЭ-10978 от 26.01.2021 и сообщает следующее. Требования к составу, порядку и срокам раскрытия (предоставления) информации организаторами торговли установлены Положением Банка России от 17.10.2014 No 437-П «О деятельности по проведению организованных торгов» (далее – Положение). Перечень информации, подлежащей раскрытию на сайте, предоставлению в Банк России и участникам торгов, а также сроки ее предоставления и раскрытия определены в Приложении 4 к Положению. В соответствии с п. 1.2 Приложения 4 к Положению организатор торговли обязан предоставить текущую информацию о договорах, заключенных на торгах у организатора торговли в течение данного торгового дня, в том числе: наименование, вид, категорию (тип) и иные релевантные параметры торгуемого инструмента; общее количество договоров; общий объем договоров; общее количество торгуемых инструментов, являющихся предметом договоров; наибольшую цену торгуемого инструмента; наименьшую цену торгуемого инструмента. Кроме того, согласно п.7 Приложения 4 к Положению организатор торговли обязан раскрывать на сайте следующую биржевую информацию: по ценным бумагам - цену закрытия, признаваемую котировку, рыночную цену, текущую цену, средневзвешенную цену, наибольшую и наименьшую цены одной ценной бумаги по заключенным договорам. Таким образом, Положением не установлено требование по раскрытию на сайте ПАО Московская Биржа информации о ценовых границах ценных бумаг. ПАО Московская Биржа вправе в рамках своей оперативной деятельности самостоятельно принять решение о раскрытии данной информации на своем сайте, в Информационно-статистическом сервере или в иных каналах передачи информации. Банк России в соответствии со статьей 76.1 Федерального закона от 10.07.2002 No 86-ФЗ «О Центральном банке Российской Федерации (Банке России)» не вмешивается в оперативную деятельность некредитных финансовых организаций. В то же время обращаем Ваше внимание на то, что риск-параметры фондового рынка ПАО Московская Биржа рассчитываются центральным контрагентом НКО НКЦ (АО) в соответствии с Методикой определения НКОНКЦ (АО) риск-параметров фондового рынка и рынка депозитов ПАО Московская Биржа и раскрываются на сайте НКО НКЦ (АО)1.
При этом несоответствие наблюдается для отдельных инструментов и разброс в отдельных случаях весьма существенный. С дататипами переменных и округлением не связано.
Как оказалось, waprice акций который раньше воспринимался как тот же дневной vwap данного класса, оказался гораздо хитрее. А именно, выяснилось, что при расчете waprice биржа "cмешивает" сделки не только из класса TQBR но и из других классов, в частности из РПС (с ЦК и без) и неполные лоты. Объем в режиме неполных лотов малый, до 500 тысяч рублей в день, а РПС - это 2 млрд рублей в день, что достаточно для точечного вредительства алгоритмам.
Подробности в расследовании по ссылке, но краткий вывод такой - используйте valtoday/voltoday.
waprice лежит в основе marketprice2, marketpricetoday, prevwaprice, priceminusprevwa - соответственно эти параметры также затронуты.
Я кстати, при повторных ситуациях такого типа, и в случае отказа от биржи или брокера, готовлю обоснование на 2-3 страницы и отправляю регулятору через Интернет-приемную ЦБ. Ответы приходят, хотя и не быстро. Если объективно представить информацию, сделав акцент на важность проблемы для всех участников торгов, то ответ зачастую положительный с применением мер надзорного характера.
По вопросу отсутствия значений по минимально и максимально возможной цене также две недели назад отправил обращение о необходимости со стороны биржи производить ежедневное опубликование ценовых ограничений по всем интерфейсам, а не только в шлюзе ASTS, в частности в FAST (там этих данных нет), в ISS - где любой может их закролить перед началом торгов, как запасной вариант, и на странице инструмента. Также на странице Мониторига (https://www.moex.com/s1192) выводить список инструментов по которым последняя цена достигла ценового ограничения. Как отправить предложение в ЦБ:
Описанная выше проблема с диапазонами вечерней сессии не подтверждается. Ошибка, которую возвращает шлюз, происходит при отправке заявки с PRICEMIN во время аукциона закрытия регулярной сессии в 18:40 - 18:45. Это происходит, так как во время аукциона применяются дополнительные ценовые ограничения (более узкий диапазон), рассчитанные исходя из цены закрытия.
Обнаружил еще одну проблему с этими параметрами для инструментов на ФР. Они не обновляются до корректных значений в вечернюю сессию, на инструментах допущенных к торгам. При попытке выставить заявку с ценой равной PRICEMIN после 19:05 возвращается ошибка о нарушении диапазона. Хотелось бы узнать у поддержки - как исправляется данное поведение?
У меня сегодня воспроизводится проблема только в Сбербанке, причем в терминалах как 7-ой так и 8-ой версии. В Финаме на 8-ой версии терминала данные корректны.
Во время аукциона открытия вечерней сессии статус проходит через те же значения, что и утром:
19:00:00 - 3 - аукцион начался, можно подавать заявки 19:04:[31-59] - 0 - аукцион закончился в случайную секунду, подача новых заявок и замена запрещена. Время окончания случайно в диапазоне по каждому инструменту в отдельности. 19:05:00 - 1 - началась вечерная сессия
Очень надеюсь на скорейшее исправление. Я использую данные параметры повсеместно при валидации, думаю и другие участники торгов также на них полагаются при выставлении заявок. Ситуация усугубляется тем, что получить данные параметры альтернативным способом невозможно, по крайней мере я их не нашел на ISS сервисах биржи или даже в ежедневных dbf файлах например https://www.moex.com/a778 .
Коллеги, вопрос актуален для тех, кто имеет доступ терминалов к боевым серверам. Видны ли вам актуальные значения PRICEMIN / PRICEMAX по состоянию на 22.06? У меня в Финаме и Сбербанке эти параметры стали равны нулю. Проверил на 8 и 7 версиях, что подсказывает, что проблема на сервере. Опасаюсь, что это сюрприз под запуск вечерней сессии.
Впрочем, параметров AUCTVOLUME, MARKETVOLB, MARKETVOLS в документе нет. Возможно и другие параметры отсутствуют. Не вселяет уверенности, что документ актуален.
Я бы рад, но у меня нет Excel, терминал Квика работает в ВМ (разработка) и в дата-центре (торговля) без установленного Excel. Плюс интерфейс только на русском. может посодействуете с экспортом списка с именами параметров на англ. языке?
Спасибо, проверил на утреннем аукционе. AUCTVOLUME отображает корректное значение. Нет ли у Вас возможности опуликовать актуальный список всех поддерживаемых параметров?
В каком параметре транслируется ожидаемый объем в ходе аукциона (фаза сбора заявок, открытие)? Согласно документации, это должен быть VOLUME, но он постоянно nil. При этом AUCTPRICE возвращает корректное значение.
После окончания фазы сбора заявок (случайно в 09:59:30+) на аукционе открытия наблюдаю, что TRADINGSTATUS остается на 3 (открыта) и при этом ENDTIME (время окончания фазы) иногда проставлено иногда нет.Существует ли надежный способ узнать, можно ли выставлять заявку во время аукциона открытия?
Уважаемая Аркатех, прошу добавить MOVEORDER для ФР Мосбиржи в следующих версиях Квик.
Данный тип транзакции идентичен NEW_ORDER / KILL_ORDER в плане полей и обработки и не требует существенных затрат. Он позволит значительно упростить клиентский код, поскольку не нужно будет поддерживать синхронизацию для cancel+open.
Есть ли возможность отправить на биржу транзакцию, которая произведет замену заявки (изменение цены)? Сейчас использую NEW_ORDER и KILL_ORDER в sendTransaction для замены.
Из документа биржи:
Код
Сообщение Order Cancel/Replace Request (G) используется для изменения параметров заявки. Обработка приказа Order Cancel/Replace Request (G) – атомарная операция, то есть другие приказы не могут обрабатываться между снятием исходной заявки и регистрацией новой. Время обработки сообщения (время ожидания ответа) Order Cancel Replace превышает время ожидания ответа при регистрации новой заявки, но меньше суммарного времени обработки пары приказов Order Cancel Request + New order single. Среднее время доставки приказа Order Cancel Replace от клиента во входную очередь ядра торговой системы не отличается от времени доставки приказов других типов (New Order Single или Order Cancel Request).
С отправкой в универсальном формате знаком, сейчас так и далею. Но вопрос был про поле в специальном формате. Получается такого поля нет, для отправки в аукцион поддерживается только универсальный формат?
В объекте Order этот тип (limit on close) указывается числом 8 в поле exec_type. Хотелось бы иметь возможность отправить транзакцию аналогичным образом:
Обработка лимитной заявки с типом "По одной цене" предполагает несколько сценариев. Один из таких сценариев - это дефицит количества во встречных заявках по наилучшей цене.
Допустим, что есть встречные заявки на продажу:
- 261.10 x 10 - 260.00 x 5
Отправляем заявку на покупку "По одной цене": + 262.00 x 20
Данная заявка на покупку приведет к сделке на 5 бумаг по 260.00, при этом остаток будет поставлен в очередь в книге заявок по цене первой сделки 260.00. Состояние книги после частичного исполнения:
- 261.10 x 10 + 260.00 x 15
После отправки транзакции с этим признаком
Код
transaction['Тип по цене'] = 'По одной цене'
transaction['Цена'] = '262.0'
в терминал Квик приходит событие OnOrder, в котором цена указана 260.00, при этом заявка является частично исполненной. 1) Сохраняется ли в таблице Order информация об исходной лимитной цене (262), или эта информация утрачивается? 2) В какой момент (сервер Quik, терминал Quik, биржа) происходит данное "уточнение" цены заявки. 3) Для каких стратегий может быть полезен данный тип заявки?
Николай, странно, что я сразу не спросил, подскажите как снять айсберг-заявку. Стандартный KILL_ORDER возвращается с ошибкой 5 "Вы не можете снять данную заявку".
Спасибо, не сразу увидел Языковые настройки, так как в терминале моего брокера они отключены.
В регламенте биржи по поводу айсбергов указывается следующее:
Цитата
Для айсберг-заявки возможна подача в Систему торгов заявки с указанием следующих дополнительных признаков, уточняющих особенности заключения сделок по типу исполнения заявки:
по остатку: - «Поставить в очередь»;
по цене: - «По одной цене»; - «По разным ценам».
В интерфейсе Quik условие по цене отключено, но отправить айсберг программно получается.
Код
transaction['Тип по цене'] = 'По одной цене'
Получается, что программно можно отправлять заявки, которые в интерфейсе недоступны?
Вместе с тем, условие по остатку в интерфейсе Quik содержит неподдерживаемые значения.
При отправке айсберга с признаком "Полностью или отклонить" возвращается ошибка с кодом 159 "Указанный тип заявки не разрешен для этого финансового инструмента и режима торгов". Насколько я понимаю - это ошибка пришла от биржи?
Подскажите, как можно переключиться на англ. язык интерфейса? Не вижу такой опции в настройках клиентского места.
Правильно я понимаю, что sendTransaction позволяет отправлять в терминал транзакции нескольких типов - заявки типа NEW_ORDER, NEW_STOP_ORDER, KILL_ORDER, и т.д. Данные типы транзакций от настроек интерфейса не зависят. Затем есть тип записей, которые в интерфейсе так и называются Транзакции, и этот тип требует указания полей в формате tri-файла. В связи с этим вопрос - почему именно айсберги нужно отправлять в tri формате?
Язык интерфейса - русский, но весь код на Lua написан на английском языке, в частности валидация и обработка заявок, транзакций и пр. Отсюда желание использовать поля именно на английском языке.
Если заменить поле в Вашем примере, то даже сообщение об ошибки ссылается на необходимое поле на английском языке.
Установил последнюю 32-битовую версию Quik Junior на англ. языке, чтобы вывести поля на англ. языке. Айсберг-заявки отсутствуют в списке возможных транзакций и похоже не поддерживаются в принице. [img]data:image/png;base64,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[/img]
В скрипте используются имена полей на английском языке. Терминал на русском языке. При выводе в tri вижу следующее:
Код
TRANS_ID=1;CLASSCODE=TQBR;ACTION=Ввод айсберг заявки;Торговый счет=NNNN;К/П=Купля;Тип=Лимитная;
Тип по цене=По разным ценам;Тип по остатку=Поставить в очередь;Тип ввода значения цены=По цене;Назначение заявки=По умолчанию;
Тип события активации заявки=Обычная заявка;Режим=TQBR;Инструмент=AFLT;Цена=99.90;Лоты=110;Примечание=;Объем заявки=0.00;
Код внешнего пользователя=;Время активации=;Доп. инфо=;Фирма торгового счета=;Видимое количество=100;
После просмотра своих заявок в full order log на МосБирже подтвердилось, что gate_reply_time - это время получения заявки торговой системой биржи. Именно gate_reply_time используется в исторических данных биржи как время заявки. Соответственно, поле datetime в таблице trades - это время исполнения сделки, также присваивается биржей. Эти поля совпадают если заявка сразу исполняется.
Получается этого параметра нет в биржевом дата фиде, который рассылает ежедневную информацию об инструментах (те же лоты, min/max по цене и пр.)? Если так, то это действительно недоработка со стороны биржи. Что странно, так как за айсберги биржа получает дополнительную комиссию.