rodionos (Все сообщения пользователя)

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

Страницы: 1 2 След.
Ежедневный экспорт таблицы обезличенных сделок в СУБД
 
Коллеги, приглашаем воспользоваться новой интеграцией СУБД Axibase с терминалом QUIK для архивирования таблицы обезличенных сделок.

https://axibase.com/docs/atsd/finance/ru/quik.html
Интеграция проверена эксплуатацией с QUIK 8.2+ в течение 1 года с сохранением 35-40 млн сделок в день.

Для справки, количество сделок во всех режимах на МосБирже 22.03.2021 составило 4024356.

Если возникнут вопросы - пишите в теме или в ЛС.
Экспорт alltrades (обезличенных сделок) в нереляционную СУБД с SQL
 
Коллеги, приглашаем к использованию новой интеграции СУБД Axibase с терминалом QUIK.

Интеграция проверена эксплуатацией в течение 1 года с сохранением 35-40 млн сделок в день. QUIK 8.2+

https://axibase.com/docs/atsd/finance/ru/quik.html

Рекомендуем в начале настроить ежедневную выгрузку скриптом export_alltrades.lua
После этого включить ODBC драйвер.  Комбинация обоих механизмов позволяет практически исключить пробелы в истории сделок.

Практическое применение - backtesting, оптимизация алгоритов в части выставления заявок.

Использование СУБД бесплатное. Будем признательны за обратную связь. На хорошие вопросы постараюсь отвечать в течение дня.
Нулевые значения PRICEMIN и PRICEMAX
 
12 марта 2021 произошел интересный момент, когда в 13.34:16 МСК цена TRMK превысила верхнее значение ценового диапазона, установленного в предыдущий день.
Проверка лимитов в НКК подтвердила внеочередное обновление риск-параметров в течение торгового дня, за минуту до превышения порога.

https://www.nationalclearingcentre.com/iss/fondPriceRanges/?pageNumber=1&xls=false&t...

Нужно учитывать возможность внутридневного сдвига порогов в торговых стратегиях.

Код
symbol,asset_2,class,settlement_date,price_max,price_min,change_date,price_trade_date
RU000A0JW6P7,SUR,TQCB,15.03.2021,130.81,105.64,12.03.2021 13:12:33,20210312
TRMK,SUR,TQBR,16.03.2021,85.06,46.18,12.03.2021 13:33:08,20210312
Нулевые значения PRICEMIN и PRICEMAX
 
Автоматизировал ежедневную загрузку порогов из НКЦ. За вычетом режимов РПС получается 2734 инструмента (акции, облигации, фонды).

Теперь могу их надежно использовать в Квике, производя сверку порогов Квика  с НКЦ, и исправляя нули при необходимости.
Единственный момент - это риск изменения порогов со стороны НКЦ в течение торгового дня. Но при этом также неизвестно, будет ли своевременно обновлен сам Квик.
Если интересен путь к ежедневным csv файлами порогами (фонд + валюта) на веб сервере, пишите в личку.
Нулевые значения PRICEMIN и PRICEMAX
 
Crawler на Java для ценовых ограничений на ФР: https://gist.github.com/rodionos/3671d6add049669e0a90e2d619c94330
Всего 51800 строк. Возможно имеет смысл поставить в крон и выкладывать на сервер, чтобы НЦЦ не забанил.
Код
# request date 18.02.2021 : current time 18.02.2021 21:49:34 MSK
security,asset_1,asset_2,board,settlementDate,maxPrice,minPrice,changeDate
AAL-RM,AAL-RM,SUR,FQBR,20.02.2021,1850,792,17.02.2021 19:41:54ююю
ZVEZ,ZVEZ,SUR,PTEQ,01.03.2021,6.175,2.65,17.02.2021 19:41:54
ZVEZ,ZVEZ,SUR,SMAL,20.02.2021,6.175,2.65,17.02.2021 19:41:54
ZVEZ,ZVEZ,SUR,TQBR,20.02.2021,6.175,2.65,17.02.2021 19:41:54
Нулевые значения PRICEMIN и PRICEMAX
 
Ответ на запрос в ЦБ касательно опубликования параметров биржей - отрицательный, но полезный! ЦБ помог со ссылкой.

Цитата
Департамент инфраструктуры финансового рынка рассмотрел Ваше обращение No ОЭ-10978 от 26.01.2021 и сообщает следующее.
Требования  к составу, порядку и срокам раскрытия (предоставления) информации  организаторами торговли установлены Положением Банка России от  17.10.2014 No 437-П «О деятельности по проведению организованных торгов»  (далее – Положение).
Перечень информации, подлежащей раскрытию на  сайте, предоставлению в Банк России и участникам торгов, а также сроки  ее предоставления и раскрытия определены в Приложении 4 к Положению.
В  соответствии с п. 1.2 Приложения 4 к Положению организатор торговли  обязан предоставить текущую информацию о договорах, заключенных на  торгах у организатора торговли в течение данного торгового дня, в том  числе: наименование, вид, категорию (тип) и иные релевантные параметры  торгуемого инструмента; общее количество договоров; общий объем  договоров; общее количество торгуемых инструментов, являющихся предметом  договоров; наибольшую цену торгуемого инструмента; наименьшую цену  торгуемого инструмента.
Кроме того, согласно п.7 Приложения 4 к Положению организатор
торговли  обязан раскрывать на сайте следующую биржевую информацию: по ценным  бумагам - цену закрытия, признаваемую котировку, рыночную цену, текущую  цену, средневзвешенную цену, наибольшую и наименьшую цены одной ценной  бумаги по заключенным договорам.
Таким образом, Положением не  установлено требование по раскрытию на сайте ПАО Московская Биржа  информации о ценовых границах ценных бумаг. ПАО Московская Биржа вправе в  рамках своей оперативной деятельности самостоятельно принять решение о  раскрытии данной информации на своем сайте, в  Информационно-статистическом сервере или в иных каналах передачи  информации. Банк России в соответствии со статьей 76.1 Федерального  закона от 10.07.2002 No 86-ФЗ «О Центральном банке Российской  Федерации (Банке России)» не вмешивается в оперативную деятельность  некредитных финансовых организаций.
В то же время обращаем Ваше  внимание на то, что риск-параметры фондового рынка ПАО Московская Биржа  рассчитываются центральным контрагентом НКО НКЦ (АО) в соответствии с  Методикой определения НКОНКЦ (АО) риск-параметров фондового рынка и  рынка депозитов ПАО Московская Биржа и раскрываются на сайте НКО НКЦ  (АО)1.

И вот она сслыка (1) на параметры:  

https://www.nationalclearingcentre.ru/iss/fondPriceRanges/?pageNumber=1&xls=false&am...

Почему в стратегии на ФР нельзя использовать параметры waprice (а также marketprice2, marketpricetoday, prevwaprice, priceminusprevwa)
 
При разработке новых тестов на получаемые по итогам дня статистики обнаружился такой факт:

Код
waprice ~= ROUND(valtoday/voltoday/sec_price_step,0)*sec_price_step

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

Как оказалось, waprice акций который раньше воспринимался как тот же дневной vwap данного класса, оказался гораздо хитрее. А именно, выяснилось, что при расчете waprice биржа "cмешивает" сделки не только из класса TQBR но и из других классов, в частности из РПС (с ЦК и без) и неполные лоты. Объем в режиме неполных лотов малый, до 500 тысяч рублей в день, а РПС - это 2 млрд рублей в день, что достаточно для точечного вредительства алгоритмам.

Подробности в расследовании по ссылке, но краткий вывод такой - используйте valtoday/voltoday.

waprice лежит в основе marketprice2, marketpricetoday, prevwaprice, priceminusprevwa - соответственно эти параметры также затронуты.
Нулевые значения PRICEMIN и PRICEMAX
 
Я кстати, при повторных ситуациях такого типа, и в случае отказа от биржи или брокера, готовлю обоснование на 2-3 страницы и отправляю регулятору через Интернет-приемную ЦБ. Ответы приходят, хотя и не быстро. Если объективно представить информацию, сделав акцент на важность проблемы для всех участников торгов, то  ответ зачастую положительный с применением мер надзорного характера.

По вопросу отсутствия значений по минимально и максимально возможной цене также две недели назад отправил обращение о необходимости со стороны биржи производить ежедневное опубликование ценовых ограничений по всем интерфейсам, а не только в шлюзе ASTS, в частности в FAST (там этих данных нет), в ISS - где любой может их закролить перед началом торгов, как запасной вариант, и на странице инструмента. Также на странице Мониторига (https://www.moex.com/s1192) выводить список инструментов по которым последняя цена достигла ценового ограничения.
Как отправить предложение в ЦБ:

1. https://cbr.ru/Reception/Message/Register?messageType=Proposal
2. Выбрать "Участники рынка ценных бумаг и товарного рынка".
3. Приложить письмо.
4. Обрадоваться при получении ответа через 3 месяца.
Нулевые значения PRICEMIN и PRICEMAX
 
Описанная выше проблема с диапазонами вечерней сессии не подтверждается. Ошибка, которую возвращает шлюз, происходит при отправке заявки с PRICEMIN во время аукциона закрытия регулярной сессии в 18:40 - 18:45.  Это происходит, так как во время аукциона применяются дополнительные ценовые ограничения (более узкий диапазон), рассчитанные исходя из цены закрытия.
Нулевые значения PRICEMIN и PRICEMAX
 
Обнаружил еще одну проблему с этими параметрами для инструментов на ФР. Они не обновляются до корректных значений в вечернюю сессию, на инструментах допущенных к торгам. При попытке выставить заявку с ценой равной PRICEMIN после 19:05 возвращается ошибка о нарушении диапазона. Хотелось бы узнать у поддержки - как исправляется данное поведение?
Нулевые значения PRICEMIN и PRICEMAX
 
У меня сегодня воспроизводится проблема только в Сбербанке, причем в терминалах как 7-ой так и 8-ой версии. В Финаме на 8-ой версии терминала данные корректны.
Нулевые значения PRICEMIN и PRICEMAX
 
Повтор проблемы был утром 07.07.2020 но связано не с Квиком. Сегодня был сбой на аукционе открытия ФР. Проблемы с данным были и у FAST Multicast.
Параметр STARTTIME, ENDTIME, Вечерняя сессия на фондовой секции
 
Во время аукциона открытия вечерней сессии статус проходит через те же значения, что и утром:

19:00:00 - 3 - аукцион начался, можно подавать заявки
19:04:[31-59] - 0 - аукцион закончился в случайную секунду, подача новых заявок и замена запрещена. Время окончания случайно в диапазоне по каждому инструменту в отдельности.  
19:05:00 - 1 - началась вечерная сессия

По моему все логично.
Нулевые значения PRICEMIN и PRICEMAX
 
25.06 проблему исправили о обоих брокеров. Спасибо поддержке.
Нулевые значения PRICEMIN и PRICEMAX
 
Станислав, спасибо!


Очень надеюсь на скорейшее исправление. Я использую данные параметры повсеместно при валидации, думаю и другие участники торгов также на них полагаются при выставлении заявок. Ситуация усугубляется тем, что получить данные параметры альтернативным способом невозможно, по крайней мере я их не нашел на ISS сервисах биржи или даже в ежедневных dbf файлах например https://www.moex.com/a778 .
Нулевые значения PRICEMIN и PRICEMAX
 
Коллеги, вопрос актуален для тех, кто имеет доступ терминалов к боевым серверам. Видны ли вам актуальные значения PRICEMIN / PRICEMAX по состоянию на 22.06? У меня в Финаме и Сбербанке эти параметры стали равны нулю. Проверил на 8 и 7 версиях, что подсказывает, что проблема на сервере. Опасаюсь, что это сюрприз под запуск вечерней сессии.
Нулевые значения PRICEMIN и PRICEMAX
 
Кстати, пример выше для TQBR LKOH.
Нулевые значения PRICEMIN и PRICEMAX
 
Получается у вас тоже эти параметры обнулились? Обходные варианты имеют смысл, если дефект подтвержден, и его не планируют исправлять.
Нулевые значения PRICEMIN и PRICEMAX
 

22.06 параметры PRICEMIN и PRICEMAX равны нулю.

Возможно это связано с тем, что сегодня состоится доп. сессия на фондовом рынке и произошло обновление Квик-серверов у брокеров (Финам, Сбербанк).

Как рекомендуется решать задачу получения диапазона допустимых значений для инструментов, например класса TQBR:

Код
2020-06-22 10:59:03.067028,INFO: p PRICEMAX : {param_image=0.0, param_type=1, param_value=0.000000, result=1}
2020-06-22 10:59:03.067028,INFO: p PRICEMIN : {param_image=0.0, param_type=1, param_value=0.000000, result=1}
Параметр VOLUME из AUCTSTATS - ожидаемый объем в ходе аукциона
 
Код
ID   GAZP   SU26228RMFS5   EUR_RUB__TOD   ID
CURRENTVALUE            Знач.
LAST   232.42   112.9   68.83   Цена послед.
LASTCHANGE   -0.48   0.27   -0.41   % измен.закр.
BID   232.43   112.803   0   Спрос
OFFER   232.47   112.9   0   Предл.
HIGH   235.4   113   68.965   Макс. цена
LOW   230.91   112.3   68.6375   Мин. цена
VALTODAY   7474066739   693233355   13710644015   Оборот
OPEN   233.79   112.401   68.9025   Откр.
LOTSIZE   10   1   1000   Лот
SHORTNAME   ГАЗПРОМ ао   ОФЗ 26228   EURRUB_TOD   Бумага сокр.
SECTYPE   ао   РФ   вал   Тип
STATUS   торгуется   торгуется   торгуется   Статус
BIDDEPTH   442   5   0   Кол. спрос
BIDDEPTHT   544328   240386   0   Общ. спрос
NUMBIDS   6259   46   0   Заявки куп.
OFFERDEPTH   148   26   0   Кол. предл.
OFFERDEPTHT   526889   408032   0   Общ. предл.
NUMOFFERS   4329   11   0   Заявки прод.
CHANGE   -1.13   0.3   -0.285   Измен. к закр.
QTY   45   73   100   Кол-во послед.
TIME   18:21:23   18:06:15   14:59:37   Время послед.
VOLTODAY   32111450   614207   199275000   Общее кол-во
TRADINGSTATUS   открыта   открыта   закрыта   Сессия
VALUE   104589   82417   6883000   Оборот посл.
WAPRICE   233.35   112.867   68.8026   Ср. взв. цена
HIGHBID   254   113.25   69.1375   Лучш. спрос
LOWOFFER   221.55   112.3   68   Лучш. пред
NUMTRADES   46659   39   4380   Кол-во сделок
PREVPRICE   233.55   112.6   69.115   Цена закр.
PREVWAPRICE   235.54   112.418   69.2124   Пред. оц.
CLOSEPRICE   0   0   0   Закр.
MARKETPRICE   235.19   112.549      Вч.рын.цена
MARKETPRICETODAY   0   0      Рын.цена
MARKETPRICE2   0   0      Рын.цена2
ADMITTEDQUOTE   0   0      Призн.котир.
ISSUESIZE   23673512900   450000000      Объем обр.
PREVDATE   13.02.2020   13.02.2020      Дата посл.торг.
LCURRENTPRICE   232.29   112.817      Оф.тек.цена
LCLOSEPRICE   0   0      Оф.цена закр.
QUOTEBASIS   Цена   % от ном.      Тип цены
PREVADMITTEDQUOT   233.55   112.601      Призн.кот.пред.
LASTBID   232.43   112.803      Спрос сессии
LASTOFFER   232.47   112.9      Предл.сессии
PREVLEGALCLOSEPR   233.55   112.601      Пред.цена закр.
OPENPERIODPRICE   233.79   0      Цена предторг.
MIN_CURR_LAST   232.29   112.817      Мин.тек.цена
LONGNAME   "Газпром" (ПАО) ао   ОФЗ-ПД 26228 10/04/30   EURRUB_TOD - EUR/РУБ   Бумага
CODE   GAZP   SU26228RMFS5   EUR_RUB__TOD   Код бумаги
ISINCODE   RU0007661625   RU000A100A82      ISIN
REGNUMBER   1-02-00028-A   26228RMFS      Рег.номер
CFI_CODE            CFI
STOCKCODE            StockCode
SEDOL            SEDOL
RIC            RIC
CUSIP            CUSIP
STOCKNAME            StockName
BSID            Bloomberg ID
QTY_SCALE   0   0   0   Точн. кол-ва
LOT   1   1   1   Кратность лота
CLASSNAME   МБ ФР: Т+ Акции и ДР   МБ ФР: Т+ Облигации   МБ Валюта: ЕТС   Класс
CLASS_CODE   TQBR   TQOB   CETS   Код класса
TRADE_DATE_CODE   14.02.2020   14.02.2020   14.02.2020   Дата торгов
SEC_FACE_VALUE   5   1000   1   Номинал
SEC_FACE_UNIT   SUR   SUR   SUR   Валюта
SEC_SCALE   2   4   4   Точность
SEC_PRICE_STEP   0.01   0.001   0.0025   Шаг цены
DISCOUNT1   17   8      Дисконт1
DISCOUNT2   21   9      Дисконт2
DISCOUNT3   28   10      Дисконт3
SEC_COMMENT            Комментарий
AGENT_ID            Агент по размещ.
SECTYPESTATIC   Ценные бумаги   Облигации   Валюта   Тип инстр-та
SECSUBTYPESTATIC   Акция обыкновенная   Облигационный федеральный займ      Подтип инстр-та
MAX_ACT_QTYSCALE   0   0   0   Макс.акт.точ.кол
CURRENCYID   SUR   SUR      Сопр.валюта
LISTLEVEL   1   1      Листинг
PRIMARYDIST   Нет   Нет      Размещение
QUALIFIED   Не предназначена   Не предназначена      Квалиф. инвестор
ASSURED   Разрешены   Разрешены   Разрешены   Необесп. торги
ANONTRADE   Разрешена   Разрешена   Разрешена   Анон. торг.
ACCRUEDINT      24.53      НКД
YIELD      6.03      Доходность
COUPONVALUE      38.15      Размер купона
YIELDATWAPRICE      6.03      Доход.оц.
NEXTCOUPON      22.04.2020      Дата выпл. куп.
MAT_DATE      10.04.2030      Погашение
DAYS_TO_MAT_DATE      3708      До погашения
COUPONPERIOD      182      Длит.куп.
YIELDATPREVWAPR      6.09      Доход.пред.оц.
BUYBACKDATE            Дата расч.доход
BUYBACKPRICE      0      Оферта
OBLPERCENT      Процентная      Тип цены обл.
FULLCOVEREDFLAG   Нет   Нет      Запр.необ.торгов
YIELDATPREVWAPRI      6.09      Доход.пред.оц.
PRICEMINUSPREVWA      0.482   -0.3824   Изм. к пред.оц.
DURATION      2658      Дюрация
SETTLECODE   Y2   Y1   T0   Код расч.
ISSUESIZEPLACED      194536263      Объем в обр.
SETTLEDATE   18.02.2020   17.02.2020   14.02.2020   Дата расч.
PRICEMAX   254.28   117.338   71.1125   Макс.возм.цен.
PRICEMIN   213.36   107.703   66.575   Мин.возм.цен.
TRADINGPHASE         Недоступно   Бирж.Сессия
AUCTPRICE   233.79         Цена аукц.
AUCTVALUE   3418009.8         Объем аукц.
AUCTVOLUME   14620         Кол-во аукц.
AUCTNUMTRADES   57         Кол-во сд.аукц.
MIN_CURR_LAST_TI   18:21:00         Вр. изм.м.т.ц.
PLANNEDTIME   9:50:00         Начало аук.план
STARTTIME   9:50:00         Начало.аук.
ENDTIME   9:59:47         Окончание.аук.
MARKETVOLB   0         Рын.пок.
MARKETVOLS   0         Рын.прод.
DIVIDENDVALUE   0         Дивиденды
DIVIDENDDATE            Дата з.р.
FIRST_CUR         EUR   Базовая валюта
SECOND_CUR         RUB   Котир.валюта
BASEPRICE         0   Баз.курс
RTH         0   Верх.гран.
RTL         0   Нижн.гран.
K_H         0   К.верх.гран.
K_L         0   К.нижн.гран.
SETTLEDATE1            Дата расч.1

Параметр VOLUME из AUCTSTATS - ожидаемый объем в ходе аукциона
 

ID

GAZP

SU26228RMFS5

EUR_RUB__TOD

ID

CURRENTVALUE

Знач.

LAST

232.42

112.9

68.83

Цена послед.

LASTCHANGE

-0.48

0.27

-0.41

% измен.закр.

BID

232.43

112.803

0

Спрос

OFFER

232.47

112.9

0

Предл.

HIGH

235.4

113

68.965

Макс. цена

LOW

230.91

112.3

68.6375

Мин. цена

VALTODAY

7474066739

693233355

13710644015

Оборот

OPEN

233.79

112.401

68.9025

Откр.

LOTSIZE

10

1

1000

Лот

SHORTNAME

ГАЗПРОМ ао

ОФЗ 26228

EURRUB_TOD

Бумага сокр.

SECTYPE

ао

РФ

вал

Тип

STATUS

торгуется

торгуется

торгуется

Статус

BIDDEPTH

442

5

0

Кол. спрос

BIDDEPTHT

544328

240386

0

Общ. спрос

NUMBIDS

6259

46

0

Заявки куп.

OFFERDEPTH

148

26

0

Кол. предл.

OFFERDEPTHT

526889

408032

0

Общ. предл.

NUMOFFERS

4329

11

0

Заявки прод.

CHANGE

-1.13

0.3

-0.285

Измен. к закр.

QTY

45

73

100

Кол-во послед.

TIME

18:21:23

18:06:15

14:59:37

Время послед.

VOLTODAY

32111450

614207

199275000

Общее кол-во

TRADINGSTATUS

открыта

открыта

закрыта

Сессия

VALUE

104589

82417

6883000

Оборот посл.

WAPRICE

233.35

112.867

68.8026

Ср. взв. цена

HIGHBID

254

113.25

69.1375

Лучш. спрос

LOWOFFER

221.55

112.3

68

Лучш. пред

NUMTRADES

46659

39

4380

Кол-во сделок

PREVPRICE

233.55

112.6

69.115

Цена закр.

PREVWAPRICE

235.54

112.418

69.2124

Пред. оц.

CLOSEPRICE

0

0

0

Закр.

MARKETPRICE

235.19

112.549

Вч.рын.цена

MARKETPRICETODAY

0

0

Рын.цена

MARKETPRICE2

0

0

Рын.цена2

ADMITTEDQUOTE

0

0

Призн.котир.

ISSUESIZE

23673512900

450000000

Объем обр.

PREVDATE

13.02.2020

13.02.2020

Дата посл.торг.

LCURRENTPRICE

232.29

112.817

Оф.тек.цена

LCLOSEPRICE

0

0

Оф.цена закр.

QUOTEBASIS

Цена

% от ном.

Тип цены

PREVADMITTEDQUOT

233.55

112.601

Призн.кот.пред.

LASTBID

232.43

112.803

Спрос сессии

LASTOFFER

232.47

112.9

Предл.сессии

PREVLEGALCLOSEPR

233.55

112.601

Пред.цена закр.

OPENPERIODPRICE

233.79

0

Цена предторг.

MIN_CURR_LAST

232.29

112.817

Мин.тек.цена

LONGNAME

"Газпром" (ПАО) ао

ОФЗ-ПД 26228 10/04/30

EURRUB_TOD - EUR/РУБ

Бумага

CODE

GAZP

SU26228RMFS5

EUR_RUB__TOD

Код бумаги

ISINCODE

RU0007661625

RU000A100A82

ISIN

REGNUMBER

1-02-00028-A

26228RMFS

Рег.номер

CFI_CODE

CFI

STOCKCODE

StockCode

SEDOL

SEDOL

RIC

RIC

CUSIP

CUSIP

STOCKNAME

StockName

BSID

Bloomberg ID

QTY_SCALE

0

0

0

Точн. кол-ва

LOT

1

1

1

Кратность лота

CLASSNAME

МБ ФР: Т+ Акции и ДР

МБ ФР: Т+ Облигации

МБ Валюта: ЕТС

Класс

CLASS_CODE

TQBR

TQOB

CETS

Код класса

TRADE_DATE_CODE

14.02.2020

14.02.2020

14.02.2020

Дата торгов

SEC_FACE_VALUE

5

1000

1

Номинал

SEC_FACE_UNIT

SUR

SUR

SUR

Валюта

SEC_SCALE

2

4

4

Точность

SEC_PRICE_STEP

0.01

0.001

0.0025

Шаг цены

DISCOUNT1

17

8

Дисконт1

DISCOUNT2

21

9

Дисконт2

DISCOUNT3

28

10

Дисконт3

SEC_COMMENT

Комментарий

AGENT_ID

Агент по размещ.

SECTYPESTATIC

Ценные бумаги

Облигации

Валюта

Тип инстр-та

SECSUBTYPESTATIC

Акция обыкновенная

Облигационный федеральный займ

Подтип инстр-та

MAX_ACT_QTYSCALE

0

0

0

Макс.акт.точ.кол

CURRENCYID

SUR

SUR

Сопр.валюта

LISTLEVEL

1

1

Листинг

PRIMARYDIST

Нет

Нет

Размещение

QUALIFIED

Не предназначена

Не предназначена

Квалиф. инвестор

ASSURED

Разрешены

Разрешены

Разрешены

Необесп. торги

ANONTRADE

Разрешена

Разрешена

Разрешена

Анон. торг.

ACCRUEDINT

24.53

НКД

YIELD

6.03

Доходность

COUPONVALUE

38.15

Размер купона

YIELDATWAPRICE

6.03

Доход.оц.

NEXTCOUPON

22.04.2020

Дата выпл. куп.

MAT_DATE

10.04.2030

Погашение

DAYS_TO_MAT_DATE

3708

До погашения

COUPONPERIOD

182

Длит.куп.

YIELDATPREVWAPR

6.09

Доход.пред.оц.

BUYBACKDATE

Дата расч.доход

BUYBACKPRICE

0

Оферта

OBLPERCENT

Процентная

Тип цены обл.

FULLCOVEREDFLAG

Нет

Нет

Запр.необ.торгов

YIELDATPREVWAPRI

6.09

Доход.пред.оц.

PRICEMINUSPREVWA

0.482

-0.3824

Изм. к пред.оц.

DURATION

2658

Дюрация

SETTLECODE

Y2

Y1

T0

Код расч.

ISSUESIZEPLACED

194536263

Объем в обр.

SETTLEDATE

18.02.2020

17.02.2020

14.02.2020

Дата расч.

PRICEMAX

254.28

117.338

71.1125

Макс.возм.цен.

PRICEMIN

213.36

107.703

66.575

Мин.возм.цен.

TRADINGPHASE

Недоступно

Бирж.Сессия

AUCTPRICE

233.79

Цена аукц.

AUCTVALUE

3418009.8

Объем аукц.

AUCTVOLUME

14620

Кол-во аукц.

AUCTNUMTRADES

57

Кол-во сд.аукц.

MIN_CURR_LAST_TI

18:21:00

Вр. изм.м.т.ц.

PLANNEDTIME

9:50:00

Начало аук.план

STARTTIME

9:50:00

Начало.аук.

ENDTIME

9:59:47

Окончание.аук.

MARKETVOLB

0

Рын.пок.

MARKETVOLS

0

Рын.прод.

DIVIDENDVALUE

0

Дивиденды

DIVIDENDDATE

Дата з.р.

FIRST_CUR

EUR

Базовая валюта

SECOND_CUR

RUB

Котир.валюта

BASEPRICE

0

Баз.курс

RTH

0

Верх.гран.

RTL

0

Нижн.гран.

K_H

0

К.верх.гран.

K_L

0

К.нижн.гран.

SETTLEDATE1

Дата расч.1

Параметр VOLUME из AUCTSTATS - ожидаемый объем в ходе аукциона
 
Впрочем, параметров AUCTVOLUME, MARKETVOLB, MARKETVOLS в документе нет. Возможно и другие параметры отсутствуют. Не вселяет уверенности, что документ актуален.
Параметр VOLUME из AUCTSTATS - ожидаемый объем в ходе аукциона
 
Спасибо, нашел параметры в разделе   8.12.3
Определение текущего режима торгов на аукионе открытия
 
Проверил, пока (во время регулярной сессии) значение этого параметра равно nil.
Параметр VOLUME из AUCTSTATS - ожидаемый объем в ходе аукциона
 
Я бы рад, но у меня нет Excel, терминал Квика работает в ВМ (разработка) и в дата-центре (торговля) без установленного Excel.
Плюс интерфейс только на русском. может посодействуете с экспортом списка с именами параметров на англ. языке?
Параметр VOLUME из AUCTSTATS - ожидаемый объем в ходе аукциона
 
Спасибо, проверил на утреннем аукционе. AUCTVOLUME отображает корректное значение.
Нет ли у Вас возможности опуликовать актуальный список всех поддерживаемых параметров?
Параметр VOLUME из AUCTSTATS - ожидаемый объем в ходе аукциона
 
Цитата
Egor Zaytsev написал:
AUCTVOLUME
Добрый день!

Спасибо попробую AUCTVOLUME сегодня.

Я получаю значения этих параметров через функцию getParamEx(class_code, sec_code, param_name)
Параметр VOLUME из AUCTSTATS - ожидаемый объем в ходе аукциона
 
В каком параметре транслируется ожидаемый объем в ходе аукциона (фаза сбора заявок, открытие)?
Согласно документации, это должен быть VOLUME, но он постоянно nil.
При этом AUCTPRICE возвращает корректное значение.

http://ftp.moex.com/pub/ClientsAPI/ASTS/Bridge_Interfaces/MarketData/Equitie­s35_Info_Russian.htm#t0_1
Определение текущего режима торгов на аукионе открытия
 
Уже проверил. STATUS остается неизменным, он не реагирует на стадии аукциона.
Определение текущего режима торгов на аукионе открытия
 
После окончания фазы сбора заявок (случайно в 09:59:30+) на аукционе открытия наблюдаю, что TRADINGSTATUS остается на 3 (открыта) и при этом ENDTIME (время окончания фазы) иногда проставлено иногда нет.Существует ли надежный способ узнать, можно ли выставлять заявку во время аукциона открытия?
Замена заявки на ФР при помощи Order Cancel/Replace Request (G)
 
Уважаемая Аркатех, прошу добавить MOVEORDER для ФР Мосбиржи в следующих версиях Квик.

Данный тип транзакции идентичен NEW_ORDER / KILL_ORDER в плане полей и обработки и не требует существенных затрат.
Он позволит значительно упростить клиентский код, поскольку не нужно будет поддерживать синхронизацию для cancel+open.
Замена заявки на ФР при помощи Order Cancel/Replace Request (G)
 
Есть ли возможность отправить на биржу транзакцию, которая произведет замену заявки (изменение цены)?
Сейчас использую 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). 
Имя поля 'Тип события активации заявки' в специальном формате
 
С отправкой в универсальном формате знаком, сейчас так и далею. Но вопрос был про поле в специальном формате. Получается такого поля нет, для отправки в аукцион поддерживается только универсальный формат?
Имя поля 'Тип события активации заявки' в специальном формате
 
При отправке предложенного Вами варианта транзакции терминал возвращает ошибку.

Языковые настройки терминала - на русском языке.

Код
tr.account = 'L01*****'
tr.action = 'NEW_ORDER'
tr.broker_ref = 'abc'
tr.classcode = 'TQBR'
tr.client_code = 'abc'
tr.execution_condition = 'Заявка в аукцион закрытия'
tr.operation = 'B'
tr.price = '104.58'
tr.quantity = '15'
tr.seccode = 'AFLT'
tr.trans_id = '11385001'
tr.type = 'L'

Код
-  Неправильно указан тип: "Заявка в аукцион закрытия"
Имя поля 'Тип события активации заявки' в специальном формате
 
В объекте Order этот тип (limit on close) указывается числом 8 в поле exec_type.
Хотелось бы иметь возможность отправить транзакцию аналогичным образом:
Код
exec_type='8' 
Имя поля 'Тип события активации заявки' в специальном формате
 
Для указания типа по остатку в специальном формате можно использовать поле execution_condition:
Код
  local transaction = {
    trans_id    = '123',
    account     = '******',
    action      = 'NEW_ORDER',
    classcode   = 'TQBR',
    seccode     = 'GAZP',
    operation   = 'B',
    quantity    = '2',
    price       = '245.00',
    type        = 'L',
    execution_condition='FILL_OR_KILL'  
}

Есть ли соответствующее поле для подачи заявки в аукцион?

В универсальном формате tri это указывается как:

Код
transaction['Тип события активации заявки'] = 'Заявка в аукцион закрытия'
Механизм исполнения заявки с типом "По одной цене"
 
Обработка лимитной заявки с типом "По одной цене" предполагает несколько сценариев.
Один из таких сценариев - это дефицит количества во встречных заявках по наилучшей цене.

Допустим, что есть встречные заявки на продажу:

- 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 "Вы не можете снять данную заявку".
Код
action=KILL_ORDER
classcode=TQBR
order_key=18869000000
seccode=AFLT
trans_id=601393001
Заявка в аукцион закрытия
 
Код
transaction['Тип события активации заявки'] = 'Заявка в аукцион закрытия'
Отправка заявки айсберг с использованием полей на англ. языке
 
 Да, в стандартной форме вижу все поля (хоть и не красавица). Для записи в карман всех полей подходит хорошо.
Отправка заявки айсберг с использованием полей на англ. языке
 
Спасибо, не сразу увидел Языковые настройки, так как в терминале моего брокера они отключены.

В регламенте биржи по поводу айсбергов указывается следующее:
 

Цитата

Для айсберг-заявки возможна подача в Систему торгов заявки с указанием следующих дополнительных признаков, уточняющих особенности заключения сделок по типу исполнения заявки:

по остатку:
- «Поставить в очередь»;

по цене:
- «По одной цене»;
- «По разным ценам».

В интерфейсе Quik условие по цене отключено, но отправить айсберг программно получается.

Код
transaction['Тип по цене'] = 'По одной цене'
Получается, что программно можно отправлять заявки, которые в интерфейсе недоступны?

Вместе с тем, условие по остатку в интерфейсе Quik содержит неподдерживаемые значения.

При отправке айсберга с признаком "Полностью или отклонить" возвращается ошибка с кодом 159 "Указанный тип заявки не разрешен для этого финансового инструмента и режима торгов". Насколько я понимаю - это ошибка пришла от биржи?

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

Правильно я понимаю, что sendTransaction позволяет отправлять в терминал транзакции нескольких типов - заявки типа NEW_ORDER, NEW_STOP_ORDER, KILL_ORDER, и т.д. Данные типы транзакций от настроек интерфейса не зависят. Затем есть тип записей, которые в интерфейсе так и называются Транзакции, и этот тип требует указания полей в формате tri-файла. В связи с этим вопрос - почему именно айсберги нужно отправлять в tri формате?
Отправка заявки айсберг с использованием полей на англ. языке
 
Еще одна проблема обнаружилась:

Файлы исходных кодов сохраняются в кодировке UTF-8. Подача айсберг заявки в данном случае не проходит. Нужно, чтобы кодировка файлf была Windows 1251.
Отправка заявки айсберг с использованием полей на англ. языке
 
Николай, спасибо, Ваш пример работает.

Язык интерфейса - русский, но весь код на Lua написан на английском языке, в частности валидация и обработка заявок, транзакций и пр.
Отсюда желание использовать поля именно на английском языке.

Если заменить поле в Вашем примере, то даже сообщение об ошибки ссылается на необходимое поле на английском языке.

Код
  transaction.operation = 'B'
  --transaction['К/П'] = 'Купля'

Код
- Не найдено поле "operation" для транзакции "Ввод айсберг заявки" по классу "МБ ФР: Т+ Акции и ДР"

Конечно, если англ. поля не поддерживаются, то ничего не сделаешь, придется как-то выкручиваться, но это заслуживает исправления в Квике.
Отправка заявки айсберг с использованием полей на англ. языке
 
Похоже форум не поддерживает inline картинки (я сделал скриншот junior).
Отправка заявки айсберг с использованием полей на англ. языке
 
Установил последнюю 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;

При отправке транзакции получаю ошибку:

   -  Не указано значение поля "Лоты"

https://forum.quik.ru/messages/forum10/message39864/topic3902/#message39864

Код
local transaction = {}transaction['TRANS_ID'] = '400001'
transaction['ACTION'] = 'NEW_ORDER'
transaction['CLASSCODE'] = 'TQBR'
transaction['SECCODE'] = 'AFLT'
transaction['ACCOUNT'] = 'NNNNNN'
transaction['OPERATION'] = 'B'
transaction['PRICE'] = '99.90'
transaction['TYPE'] = 'L'
transaction['Lots'] = '110'
transaction['Visible quantity'] = '100'

Есть ли варианты решения проблемы?
Скорость обработки заявок при помощи OnTransReply gate_reply_time
 
После просмотра своих заявок в full order log на МосБирже подтвердилось, что gate_reply_time - это время получения заявки торговой системой биржи. Именно gate_reply_time используется в исторических данных биржи как время заявки. Соответственно, поле datetime в таблице trades - это время исполнения сделки, также присваивается биржей. Эти поля совпадают если заявка сразу исполняется.
Минимальный размер видимой части у айсберга
 
Получается этого параметра нет в биржевом дата фиде, который рассылает ежедневную информацию об инструментах (те же лоты, min/max по цене и пр.)?
Если так, то это действительно недоработка со стороны биржи. Что странно, так как за айсберги биржа получает дополнительную комиссию.
Страницы: 1 2 След.
Наверх