Цитата |
---|
Филипп написал: Я хочу в OnInit() вызвать getQuoteLevel2 на все инструменты, на которые у меня оформлена подписка (т. е., на которые реагирует OnQuote()). Как это сделать? Не могу найти, как из lua получить список всех "подписанных" инструментов |
Добрый день.
Заказать стаканы по всем инструментам можно, но если нужны только bid и offer, то лучше заказывать только эти параметры из ТТТ (таблицы текущих торгов)
Последовательность действий для заказа стаканов:
1) getClassesList() - получить все доступные классы
2) getClassSecurities(class_code) - получить для каждого класса список инструментов
3) Subscribe_Level_II_Quotes(class_code, sec_code) - подписаться для нужных инструментов на стакан
4) в OnQuote(class_code, sec_code) отлавливать изменения и получать из через getQuoteLevel2(class_code, sec_code)
- IsSubscribed_Level_II_Quotes() - позволяет проверить есть ли подписка на стакан по инструменту
- Unsubscribe_Level_II_Quotes() - позволяет отписаться от стакана
Максимальное кол-во стаканов у нас по умолчанию 200.
Последовательность действий при заказе только bid и offer:
1) getClassesList() - получить все доступные классы
2) getClassSecurities(class_code) - получить для каждого класса список инструментов
3) для нужных инструментов делаем подписку
ParamRequest(class_code,sec_code, 'BID')
ParamRequest(class_code,sec_code, 'BIDDEPTH')
ParamRequest(class_code,sec_code, 'OFFER')
ParamRequest(class_code,sec_code, 'OFFERDEPTH')
4) в OnParam(class_code, sec_code) отлавливать изменения и получать их через getParamEx() значения
getParamEx(class_code,sec_code, 'BID')
getParamEx(class_code,sec_code, 'BIDDEPTH')
getParamEx(class_code,sec_code, 'OFFER')
getParamEx(class_code,sec_code, 'OFFERDEPTH')
В этом случает придется при каждом вызове OnParam() проверять все интересующие параметры, т.к. у нас нет возможности понять какой из параметров изменился.
Для возможности управлять подписками на параметры должен быть включен "Умный заказ" в настройках терминала.