Предлагаю написать что-то типа Sample или SampleSmart, чтобы можно было визуально тыкать и смотреть результаты. + отправлять заявки и ждать по ним сделки. Видеть стаканы. Кто займется?
К сожалению, не смогу пока приступить к этой задаче, т.к. изменились планы на ближайшие две недели, о чем я сообщил Михаилу.
Так что, если кто-то еще желает за нее взяться, милости прошу.
lkor:
2011-03-09 22:49:03.609;p2mq-cli;;Socket connected;conn 0x589995C;host '127.0.0.1';port 4001
Если у вас тестовое подключение к плазе, порт должен быть 3001. Это нужно править в конфигах и после этого рестартить роутер.
Хотя последняя строчка в логе говорит, что MQ уже подсоединена🤨
lkor:
Может не в тему, но спрошу тут.
Клиент запускается но при попытке соединения выдаёт ошибку "Couldn't connect to MQ".
Такая же ситуация. aspirant, а у тебя работает?
Для полноты картины. Плаза тестовая, роутер версии 1.10.8. ( P2_ClientGate1.10.8_TEST.exe )
Михаил, aspirant предлагаю в таких случаях указывать номер версии используемого стороннего ПО.
задал вопрос на форума РТС, посмотрим что ответят.
Mikhail Sukhov:
Разобрался. aspirant Connect засунул в конструктор. И затем еще раз вызывается принудительно Connect. На лицо ошибка в дизайне.
Я писал, что Connect нужно вызывать перед var srvAddress = _connection.ResolveService("FORTS_SRV"); Иначе будет исключение. Я воткнул Connect наспех и специально выделил это участок.
Только что скачал P2_ClientGate1.10.8_BATTLE.exe и установил MTA-версию. У меня работает: только что подключался к двум потокам.
Mikhail Sukhov:
Разобрался. aspirant Connect засунул в конструктор. И затем еще раз вызывается принудительно Connect. На лицо ошибка в дизайне.
Я писал, что Connect нужно вызывать перед var srvAddress = _connection.ResolveService("FORTS_SRV"); Иначе будет исключение. Я воткнул Connect наспех и специально выделил это участок.
Только что скачал P2_ClientGate1.10.8_BATTLE.exe и установил MTA-версию. У меня работает: только что подключался к двум потокам.
Теперь я понял о чем был тот комментарий.🙂
Я так и не понял, на каком этапе закончилось с конфигами и схемами? Они создаются на лету? Можно сейчас получить через NewSecurities новые инструменты?
Mikhail Sukhov:
Я так и не понял, на каком этапе закончилось с конфигами и схемами? Они создаются на лету?
Схемы (ini файлы для подключения к потокам репликации) да, конфиги (ini файлы настроек роутера) нет.
Mikhail Sukhov:
Можно сейчас получить через NewSecurities новые инструменты?
Сейчас как раз думаю, как таблицы инструментов привинтить к PlazaTrader.
Mikhail Sukhov:
Я так и не понял, на каком этапе закончилось с конфигами и схемами? Они создаются на лету?
Схемы (ini файлы для подключения к потокам репликации) да, конфиги (ini файлы настроек роутера) нет.
Последнее я сделал. Насчет создания схем. А что нужно сделать с PlazaTrader, чтобы ini со схемами создались в рабочей директории?
Mikhail Sukhov:
А что нужно сделать с PlazaTrader, чтобы ini со схемами создались в рабочей директории?
Через Reflection перебрать всех наследников PlazaColumns (наши метаданные) и для каждого вызвать по образцу:
var plazaTable1 = new PlazaTable(PlazaTableTypes.Option, PlazaColumns.Options);
new PlazaTableSerializer().Serialize(plazaTable, _configFileName);
Вопрос: только зачем это? PlazaTrader'у это не нужно: он будет это делать на лету (см. для примера код метода PlazaStreamManager.AddStream). Мы же для этого описывали все метаданные. А пользователя я бы не стал подпускать к ini файлам.
Mikhail Sukhov:
Таблицы инструментов - это что?
opt_vcb для опционов, fut_vcb - для фьючерсов. Это то, что мы на днях обсуждали.
aspirant:
Вопрос: только зачем это? PlazaTrader'у это не нужно: он будет это делать на лету (см. для примера код метода PlazaStreamManager.AddStream). Мы же для этого описывали все метаданные. А пользователя я бы не стал подпускать к ini файлам.
Ок, неправильно выразился. У меня пока ini файлы не создаются. В какой момент они начинают создаваться? В момент соединение, старта экспорта или еще когда?
Mikhail Sukhov:
У меня пока ini файлы не создаются. В какой момент они начинают создаваться? В момент соединение, старта экспорта или еще когда?
Посмотри мой последний коммит: я добавил подключение к opt_vcb в конструктор PlazaTrader. Данные идут: только что проверял.
private void OnNewDataFromOptVcb(PlazaRecord[] data) - пока только заглушка. Завтра доделаю.
Какие потоки/таблицы/информацию добавить еще в PlazaTrader из стримов?
aspirant:
Какие потоки/таблицы/информацию добавить еще в PlazaTrader из стримов?
Все: инструменты, заявки, сделки, тики, поза. Кастомные потоки пока не так интересны. Нужен минимум, чтобы с заявками протестить и убедиться насчет минимального функционала.
Mikhail Sukhov:
Все: инструменты, заявки, сделки, тики, поза. Кастомные потоки пока не так интересны. Нужен минимум, чтобы с заявками протестить и убедиться насчет минимального функционала.
Я сейчас вынес это в отдельный метод:
public void StartListeners()
{
// вот здесь как раз и заполняются метаданные для всех потоков плазы
// opt_vcb - Справочник торгуемых активов (опционов)
_plazaStreamManager.AddStream(new PlazaColumnSet(PlazaTableRegistry.OptVcb), TRequestType.RT_COMBINED_DYNAMIC);
// Запускаем _plazaStreamManager, данные из потоков приходят в plazaStreamManager_NewData
_plazaStreamManager.Start();
}
Вопрос: подключаться ко всем потокам или дать возможность клиенту выбирать, что ему нужно. Для этого я создал перечисление PlazaMarketData. Тогда метод будет выглядеть вот так:
public void StartListeners(PlazaMarketData marketData)
{
// вот здесь как раз и заполняются метаданные для всех потоков плазы
if ((marketData & PlazaMarketData.Options) > 0)
{
// opt_vcb - Справочник торгуемых активов (опционов)
_plazaStreamManager.AddStream(new PlazaColumnSet(PlazaTableRegistry.OptVcb), TRequestType.RT_COMBINED_DYNAMIC);
}
// Запускаем _plazaStreamManager, данные из потоков приходят в plazaStreamManager_NewData
_plazaStreamManager.Start();
}
aspirant:
Вопрос: подключаться ко всем потокам или дать возможность клиенту выбирать, что ему нужно. Для этого я создал перечисление PlazaMarketData. Тогда метод будет выглядеть вот так:
public void StartListeners(PlazaMarketData marketData)
{
// вот здесь как раз и заполняются метаданные для всех потоков плазы
if ((marketData & PlazaMarketData.Options) > 0)
{
// opt_vcb - Справочник торгуемых активов (опционов)
_plazaStreamManager.AddStream(new PlazaColumnSet(PlazaTableRegistry.OptVcb), TRequestType.RT_COMBINED_DYNAMIC);
}
// Запускаем _plazaStreamManager, данные из потоков приходят в plazaStreamManager_NewData
_plazaStreamManager.Start();
}
Я бы сделал так:
public void StartListeners(params PlazaTable[] tables)
{
foreach (var table in tables)
_plazaStreamManager.Add(table, TRequestType.RT_COMBINED_DYNAMIC);
// Запускаем _plazaStreamManager, данные из потоков приходят в plazaStreamManager_NewData
_plazaStreamManager.Start();
Мы же используем роутер!
Локальный порт 4001 (127.0.0.1)
Удаленный порт 3001 (beta-forts.rts.ru)
запись в конфиге роутера (client_router.ini) одна
default=beta-forts.rts.ru:3001
другого там нет.
И ещё мне не совсем понятно зачем логин и пароль. Мы к роутеру цепляемся к локальному, логин и пароль есть на роутере (в его конфигах).
lkor:
Мы же используем роутер!
Локальный порт 4001 (127.0.0.1)
Удаленный порт 3001 (beta-forts.rts.ru)
запись в конфиге роутера (client_router.ini) одна
default=beta-forts.rts.ru:3001
другого там нет.
Пиши в поддержку РТС вместе с логами подключения. Вчера с ними общался весь день. Реагируют быстро.
Кстати, TCP-порт, на котором слушает роутер, должен быть 3001. Вот кусок моего конфига client_router.ini.
[P2MQRouter]
; TCP-порт, на котором слушает роутер
;port=4001
port=3001
lkor:
И ещё мне не совсем понятно зачем логин и пароль. Мы к роутеру цепляемся к локальному, логин и пароль есть на роутере (в его конфигах).
Логин и пароль действительно указываются в client_router.ini. Если верить документации, их также можно указывать в коде. Я правда не пробовал, как это будет работать. У меня все забито в конфиге.
Mikhail Sukhov:
А как давно устанавливал шлюз?
Устанавливал перед Новым годом. Последний раз успешно подключался вчера.
4001 - это рабочий порт. Соответственно, адрес плазовского сервера тоже должен быть рабочим.
Вообще непонятно: зачем отдельно указывать номер порта? Ведь адрес плазовского сервера тоже нужно указывать с номером порта:
[ROUTEINFO]
; настройка соединений роутера с вышестоящими серверами.
; формат строки: {default|direct} = {ip-адрес | имя FQDN}:{номер порта}
; Должно быть одно дефолтное соединение и может быть от нуля до нескольких директных.
; Об адресах, на котрорые можно и нужно устанавливать дефолтные и директные соединения, проконсультируйтесь
; со службой тех. поддержки!!! В дистрибутиве указана рекомендуемая настройка для соединения с пулом серверов РТС.
;default=p2forts.rts.ru:4001
default=beta-forts.rts.ru:3001
Командой port ты указываешь порт роутера, где он слушать будет (в данном случае на твоей машине), а строкой default=beta-forts.rts.ru:3001 или через direct ты указваешь куда уже роутер цепляться будет (т.е комбинация адрес-порт, по которой доступен сервер РТС с плазой).
Вообще схема подключения такая: приложение -- роутер -- Сервер РТС , причем это всё могут быть разные машины. У нас ща всё упрощено, и прилоржение и роутер крутятся на одной тачке, поэтому и цепляемся мы к 127.0.0.1, а в бою как я понимаю схему РТС машина с роутером (кстати наша!) находится ваще под управлением РТС, и мы только цеплятся по сети к ней можем.
Утром вспомнил, почему решил подключаться к потокам через перечисление PlazaMarketData. Хочу предложить два варианта подключения через PlazaTrader:
Подключение к стандартным стримам, данные которых будут перегоняться в стандартные объекты. Здесь используется метод с моей сигнатурой, чтобы контроллировать, какие потоки запрашиваются с сервера.
Подключение к любым потокам с настраиваемым набором колонок. Здесь используется твоя сигнатура. Данные будут выдаваться клиенту в "сыром формате".
aspirant:
Утром вспомнил, почему решил подключаться к потокам через перечисление PlazaMarketData. Хочу предложить два варианта подключения через PlazaTrader:
Подключение к стандартным стримам, данные которых будут перегоняться в стандартные объекты. Здесь используется метод с моей сигнатурой, чтобы контроллировать, какие потоки запрашиваются с сервера.
Подключение к любым потокам с настраиваемым набором колонок. Здесь используется твоя сигнатура. Данные будут выдаваться клиенту в "сыром формате".
Хм, а почему PlazaTable не использовать и для того, и для другого?
Mikhail Sukhov:
Хм, а почему PlazaTable не использовать и для того, и для другого?
С помощью PlazaTable я собираюсь описать все таблицы в потоках плазы папки (см. содержимое C:\Program Files (x86)\P2FORTSGate\Scheme ). Мы ведь не собираемся перегонять в стандартные объекты все таблицы? А если использовать только твою сигнатуру, клиент сможет запрашивать данные не только из основных таблиц (opt_vcb и т.д.), но и всякую эзотерику. Кроме того таблицы стаканов - тоже будут описаны при помощи PlazaTable.
Кстати, твой метод правильнее будет объявляться вот так:
public void StartListeners(params PlazaColumnList[] tables)
PlazaTable знает только название таблицы в потоке, название схемы и название самого потока. С помощью PlazaColumnList я буду создавать схемы (ini-файлы). Вчера я хотел это делать с помощью PlazaColumnSet.
Mikhail Sukhov:
А как же PlazaTable.Columns?
Мне кажется правильнее или удобнее будет, если один класс (PlazaTable) отвечает за описание метаданных, а другой (PlazaColumnList) - за создание наборов колоннок/полей для получения данных из потоков. Посмотри: я только что залил обновленный PlazaTableRegistry, а также всех наследников PlazaColumns, отвечающих за опционы.
Mikhail Sukhov:
А как же PlazaTable.Columns?
Мне кажется правильнее или удобнее будет, если один класс (PlazaTable) отвечает за описание метаданных, а другой (PlazaColumnList) - за создание наборов колоннок/полей для получения данных из потоков.
aspirant:opt_vcb - Справочник торгуемых активов
Однозначно 2-ое. Но интересно, что такое первое.
Таблица 39. Поля таблицы opt_vcb
Поле Тип Описание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
code_vcb c25 Код базового актива
name c75 Наименование
exec_type c1 Тип исполнения
curr c3 Валюта платежа
exch_pay d16.2 Биржевой сбор за 1 контракт в рублях
exch_pay_scalped i1 Признак скальпирования биржевого сбора
clear_pay d16.2 Клиринговый сбор за 1 контракт в рублях
clear_pay_scalped i1 Признак скальпирования клирингового сбора
sell_fee d7.3 Комиссия с продавца. Не используется
buy_fee d7.3 Комиссия с покупателя. Не используется
trade_scheme c1 Форма торгов
coeff_out d7.3 Коэффициент приближенности 'внелимитных' опционов
is_spec i1 1-по этому контракту шлюз (и его фирма) является
специалистом по запросам на котировку
spec_spread d16.5 Спред специалиста
min_vol i4 Минимальный объем в котировках специалиста
client_code c7 Код клиента
Таблица opt_sess_contents: Cправочник торгуемых инструментов
Таблица содержит справочник инструментов, назначенных к торгам в сессию.
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
sess_id i4 Идентификатор торговой сессии
isin_id i4 Уникальный числовой идентификатор инструмента
isin c25 Символьный код инструмента
short_isin c25 Описатель инструмента
name c75 Наименование инструмента
code_vcb c25 Код базового актива
fut_isin_id i4 Код фьючерсного инструмента
is_limited i1 Признак наличия лимитов в торгах
limit_up d16.5 Верхний лимит премии
limit_down d16.5 Нижний лимит премии
old_kotir d16.5 Котировка (Теоретическая цена опциона) предыдущей сессии
bgo_c d16.2 Базовое ГО под одну покрытую позицию подписчика (руб)
bgo_nc d16.2 Базовое ГО под одну непокрытую позицию подписчика(руб)
europe i1 Разновидность опциона. 0 - американский опцион, 1 - европейский опцион
put i1 Тип опциона. 0 - Call опцион,1 - Put опцион
strike d16.5 Цена страйк
roundto i4 Количество знаков после запятой в цене
min_step d16.5 Минимальный шаг премии
lot_volume i4 К-во единиц базового актива в инструменте
step_price d16.5 Стоимость шага премии
d_pg t Дата окончания обращения инструмента
d_exec_beg t Дата начала экспирации инструмента
d_exec_end t Дата окончания экспирации инструмента
signs i4 Поле признаков
last_cl_quote d16.5 Расчетная Цена (Теоретическая цена опциона) после последнего клиринга
bgo_buy d16.2 Базовое ГО под покупку маржируемого опциона
base_isin_id i4 Числовой идентификатор базового инструмента
コメント (43)
ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください
Я могу попробовать
Я доступ давал?
К сожалению, не смогу пока приступить к этой задаче, т.к. изменились планы на ближайшие две недели, о чем я сообщил Михаилу. Так что, если кто-то еще желает за нее взяться, милости прошу.
Возьму эту задачу. Уже сделал простенькую форму.
Все по плану? ГУИ клиента увидим?
Да, занимаюсь им. Если все будет по плану, выложу до конца недели.
Поднимаю тему.
Гуи клиент сделал сам.
Может не в тему, но спрошу тут. Клиент запускается но при попытке соединения выдаёт ошибку "Couldn't connect to MQ". в логах следующее:
Установлена STA-версия библиотеки, сервис роутера запущен и работает. В чем могут быть грабли?
Хотя последняя строчка в логе говорит, что MQ уже подсоединена🤨
Такая же ситуация. aspirant, а у тебя работает?
Для полноты картины. Плаза тестовая, роутер версии 1.10.8. ( P2_ClientGate1.10.8_TEST.exe ) Михаил, aspirant предлагаю в таких случаях указывать номер версии используемого стороннего ПО.
задал вопрос на форума РТС, посмотрим что ответят.
По какому пути он находится?
на фтп сервере? ftp.rts.ru/pub/FORTS/test/Plaza2/P2_ClientGate1.10.8_TEST.exe
Я последнее скачивал 1.10.4_test
Разобрался. aspirant Connect засунул в конструктор. И затем еще раз вызывается принудительно Connect. На лицо ошибка в дизайне.
Я писал, что Connect нужно вызывать перед var srvAddress = _connection.ResolveService("FORTS_SRV"); Иначе будет исключение. Я воткнул Connect наспех и специально выделил это участок.
Только что скачал P2_ClientGate1.10.8_BATTLE.exe и установил MTA-версию. У меня работает: только что подключался к двум потокам.
Теперь я понял о чем был тот комментарий.🙂
Я так и не понял, на каком этапе закончилось с конфигами и схемами? Они создаются на лету? Можно сейчас получить через NewSecurities новые инструменты?
Последнее я сделал. Насчет создания схем. А что нужно сделать с PlazaTrader, чтобы ini со схемами создались в рабочей директории?
Таблицы инструментов - это что?
Через Reflection перебрать всех наследников PlazaColumns (наши метаданные) и для каждого вызвать по образцу:
Вопрос: только зачем это? PlazaTrader'у это не нужно: он будет это делать на лету (см. для примера код метода PlazaStreamManager.AddStream). Мы же для этого описывали все метаданные. А пользователя я бы не стал подпускать к ini файлам.
Ок, неправильно выразился. У меня пока ini файлы не создаются. В какой момент они начинают создаваться? В момент соединение, старта экспорта или еще когда?
private void OnNewDataFromOptVcb(PlazaRecord[] data) - пока только заглушка. Завтра доделаю.
Какие потоки/таблицы/информацию добавить еще в PlazaTrader из стримов?
Все: инструменты, заявки, сделки, тики, поза. Кастомные потоки пока не так интересны. Нужен минимум, чтобы с заявками протестить и убедиться насчет минимального функционала.
Вопрос: подключаться ко всем потокам или дать возможность клиенту выбирать, что ему нужно. Для этого я создал перечисление PlazaMarketData. Тогда метод будет выглядеть вот так:
public void StartListeners(PlazaMarketData marketData) { // вот здесь как раз и заполняются метаданные для всех потоков плазы
}
public void StartListeners(params PlazaTable[] tables) { foreach (var table in tables) _plazaStreamManager.Add(table, TRequestType.RT_COMBINED_DYNAMIC);
}
public void StartListeners(params PlazaTable[] tables) { foreach (var table in tables) _plazaStreamManager.Add(table, TRequestType.RT_COMBINED_DYNAMIC);
}
Мы же используем роутер! Локальный порт 4001 (127.0.0.1) Удаленный порт 3001 (beta-forts.rts.ru) запись в конфиге роутера (client_router.ini) одна default=beta-forts.rts.ru:3001 другого там нет.
И ещё мне не совсем понятно зачем логин и пароль. Мы к роутеру цепляемся к локальному, логин и пароль есть на роутере (в его конфигах).
Кстати, TCP-порт, на котором слушает роутер, должен быть 3001. Вот кусок моего конфига client_router.ini.
Логин и пароль действительно указываются в client_router.ini. Если верить документации, их также можно указывать в коде. Я правда не пробовал, как это будет работать. У меня все забито в конфиге.
[P2MQRouter]
; TCP-порт, на котором слушает роутер ;port=4001 port=3001
4001 - это рабочий порт. Соответственно, адрес плазовского сервера тоже должен быть рабочим.
Вообще непонятно: зачем отдельно указывать номер порта? Ведь адрес плазовского сервера тоже нужно указывать с номером порта:
Командой port ты указываешь порт роутера, где он слушать будет (в данном случае на твоей машине), а строкой default=beta-forts.rts.ru:3001 или через direct ты указваешь куда уже роутер цепляться будет (т.е комбинация адрес-порт, по которой доступен сервер РТС с плазой). Вообще схема подключения такая: приложение -- роутер -- Сервер РТС , причем это всё могут быть разные машины. У нас ща всё упрощено, и прилоржение и роутер крутятся на одной тачке, поэтому и цепляемся мы к 127.0.0.1, а в бою как я понимаю схему РТС машина с роутером (кстати наша!) находится ваще под управлением РТС, и мы только цеплятся по сети к ней можем.
Вообще нужен конструктор, который принимает логин + пароль? Может упразднить эти понятия?
Утром вспомнил, почему решил подключаться к потокам через перечисление PlazaMarketData. Хочу предложить два варианта подключения через PlazaTrader:
Хм, а почему PlazaTable не использовать и для того, и для другого?
С помощью PlazaTable я собираюсь описать все таблицы в потоках плазы папки (см. содержимое C:\Program Files (x86)\P2FORTSGate\Scheme ). Мы ведь не собираемся перегонять в стандартные объекты все таблицы? А если использовать только твою сигнатуру, клиент сможет запрашивать данные не только из основных таблиц (opt_vcb и т.д.), но и всякую эзотерику. Кроме того таблицы стаканов - тоже будут описаны при помощи PlazaTable.
Кстати, твой метод правильнее будет объявляться вот так:
PlazaTable знает только название таблицы в потоке, название схемы и название самого потока. С помощью PlazaColumnList я буду создавать схемы (ini-файлы). Вчера я хотел это делать с помощью PlazaColumnSet.
public void StartListeners(params PlazaColumnList[] tables)
Для меня выделенное - синонимы. В чем разница?
Сегодня вечером постараюсь ответить. Пока другой вопрос: инструменты на примере опционов - это
opt_vcb - Справочник торгуемых активов
или
opt_sess_contents - Cправочник торгуемых инструментов🤨
Однозначно 2-ое. Но интересно, что такое первое.
Таблица 39. Поля таблицы opt_vcb Поле Тип Описание replID i8 Служебное поле подсистемы репликации replRev i8 Служебное поле подсистемы репликации replAct i8 Служебное поле подсистемы репликации code_vcb c25 Код базового актива name c75 Наименование exec_type c1 Тип исполнения curr c3 Валюта платежа exch_pay d16.2 Биржевой сбор за 1 контракт в рублях exch_pay_scalped i1 Признак скальпирования биржевого сбора clear_pay d16.2 Клиринговый сбор за 1 контракт в рублях clear_pay_scalped i1 Признак скальпирования клирингового сбора sell_fee d7.3 Комиссия с продавца. Не используется buy_fee d7.3 Комиссия с покупателя. Не используется trade_scheme c1 Форма торгов coeff_out d7.3 Коэффициент приближенности 'внелимитных' опционов is_spec i1 1-по этому контракту шлюз (и его фирма) является специалистом по запросам на котировку spec_spread d16.5 Спред специалиста min_vol i4 Минимальный объем в котировках специалиста client_code c7 Код клиента
Не то днем указал. Вот первое:
Таблица opt_sess_contents: Cправочник торгуемых инструментов Таблица содержит справочник инструментов, назначенных к торгам в сессию.
replID i8 Служебное поле подсистемы репликации replRev i8 Служебное поле подсистемы репликации replAct i8 Служебное поле подсистемы репликации sess_id i4 Идентификатор торговой сессии isin_id i4 Уникальный числовой идентификатор инструмента isin c25 Символьный код инструмента short_isin c25 Описатель инструмента name c75 Наименование инструмента code_vcb c25 Код базового актива fut_isin_id i4 Код фьючерсного инструмента is_limited i1 Признак наличия лимитов в торгах limit_up d16.5 Верхний лимит премии limit_down d16.5 Нижний лимит премии old_kotir d16.5 Котировка (Теоретическая цена опциона) предыдущей сессии bgo_c d16.2 Базовое ГО под одну покрытую позицию подписчика (руб) bgo_nc d16.2 Базовое ГО под одну непокрытую позицию подписчика(руб) europe i1 Разновидность опциона. 0 - американский опцион, 1 - европейский опцион put i1 Тип опциона. 0 - Call опцион,1 - Put опцион strike d16.5 Цена страйк roundto i4 Количество знаков после запятой в цене min_step d16.5 Минимальный шаг премии lot_volume i4 К-во единиц базового актива в инструменте step_price d16.5 Стоимость шага премии d_pg t Дата окончания обращения инструмента d_exec_beg t Дата начала экспирации инструмента d_exec_end t Дата окончания экспирации инструмента signs i4 Поле признаков last_cl_quote d16.5 Расчетная Цена (Теоретическая цена опциона) после последнего клиринга bgo_buy d16.2 Базовое ГО под покупку маржируемого опциона base_isin_id i4 Числовой идентификатор базового инструмента