frontman
|
Date: 12/20/2011
Александр это в мой огород камень? Я вот например понятия не имею что и как у вас там в BaseTrader. И тем более почему стаканы, заявки и т.д. ставятся в соответствие с инструментом по isin_id. Просто ссылкой на объект Security это сделать нельзя было?
|
|
Thanks:
|
|
|
|
|
Alexander
|
Date: 12/20/2011
frontman Александр это в мой огород камень? Я вот например понятия не имею что и как у вас там в BaseTrader. И тем более почему стаканы, заявки и т.д. ставятся в соответствие с инструментом по isin_id. Просто ссылкой на объект Security это сделать нельзя было? Не в ваш. Цель того чтоб это починить - не чтобы закрыть таск. А чтоб действительно работало как нужно. На биржу вы что передаёте? Security? Везде - в стаканах, сделках, заявках используется isin_id. Именно поэтому и нужен маппинг в PlazaTrader. Биржа о Stock# и Security знать не знает. Ей важен лишь номер инструмента, что вы передали. Именно по нему идёт сделка на бирже.
|
|
Thanks:
|
|
|
|
|
frontman
|
Date: 12/20/2011
Ну да. Это я понимаю. Ну т.к. у нас в Stock# есть Security - класс общий для всех торговых систем, на него и надо ссылаться. А при отправки запросов бирже использовать те поля этого класса которые нужны биржи. В случае плазы можно наследоваться от BaseSecurity и расширить этот класс isin_id и еще если тем что нужно. А можно сделать маппинг и исп в качестве колюча объект Security а в качестве значения тот же isin_id ... Но в любом случае ссылаться везде на Security.
Это мой взгляд на устройства такой системы. Если вы его считаете неверным, то просто ваше видение расскажите... Это нормальная практика проектирования: сначала обсудить и подумать, а лишь потом кодить...
|
|
Thanks:
|
|
|
|
|
Alexander
|
Date: 12/20/2011
|
|
|
|
frontman Ну да. Это я понимаю. Ну т.к. у нас в Stock# есть Security - класс общий для всех торговых систем, на него и надо ссылаться. А при отправки запросов бирже использовать те поля этого класса которые нужны биржи. В случае плазы можно наследоваться от BaseSecurity и расширить этот класс isin_id и еще если тем что нужно. А можно сделать маппинг и исп в качестве колюча объект Security а в качестве значения тот же isin_id ... Но в любом случае ссылаться везде на Security.
Это мой взгляд на устройства такой системы. Если вы его считаете неверным, то просто ваше видение расскажите... Это нормальная практика проектирования: сначала обсудить и подумать, а лишь потом кодить... Мы вроде это обсуждаем и мусолим уже 2 месяца. У нас есть класс Security, при работе со стаканами и т.д. и т.п. мы на него и ссылаемся. Что такое BaseSecurity я не знаю, в Security добавлять новое поле смысла нет, т.к. его никто кроме плазы использовать не будет. Поэтому и предлагается сделать маппинг внутри PlazaTrader. P.S. Михаил как раз об этом вчера и писал
|
|
Thanks:
|
|
|
|
|
frontman
|
Date: 12/20/2011
BaseSecurity - это базовый класс всех инструментов. О нем Михаил упоминал ранее. От него можно наследоваться и создать например PlazaSecurity. Просто маппинг как то не очень похож на решение из ООП... А если необходимо будет добавить еще какое нибудь поле которого нет в BaseSecurity? Еще одно соответствие лепить?((
|
|
Thanks:
|
|
|
|
|
frontman
|
Date: 12/20/2011
Alexander Mukhanchikov ...На биржу вы что передаёте? Security? Везде - в стаканах, сделках, заявках используется isin_id... Alexander Mukhanchikov ...У нас есть класс Security, при работе со стаканами и т.д. и т.п. мы на него и ссылаемся... Я окончательно запутан...
|
|
Thanks:
|
|
|
|
|
Alexander
|
Date: 12/20/2011
frontman BaseSecurity - это базовый класс всех инструментов. О нем Михаил упоминал ранее. От него можно наследоваться и создать например PlazaSecurity. Просто маппинг как то не очень похож на решение из ООП... А если необходимо будет добавить еще какое нибудь поле которого нет в BaseSecurity? Еще одно соответствие лепить?(( Базовый класс - Security, другого класса инструментов нет (ну кроме BasketSecurity). Например, какое поле вам может ещё потребоваться для реализации шлюза Плаза2? Лепить для каждого шлюза свой инструмент - как раз не самый лучший вариант, ибо надо будет везде приводить, проверять на тип. А это скорость. Зачем такое городить, если решение с маппингом - вполне очевидное и быстро работающее? К тому же реализация занимает малое время.
|
|
Thanks:
|
|
|
|
|
Alexander
|
Date: 12/20/2011
frontman Alexander Mukhanchikov ...На биржу вы что передаёте? Security? Везде - в стаканах, сделках, заявках используется isin_id... Alexander Mukhanchikov ...У нас есть класс Security, при работе со стаканами и т.д. и т.п. мы на него и ссылаемся... Я окончательно запутан... Так. Давайте в очередной раз попробую объяснить. Внутри S# мы работаем с понятием Security - оно используется при регистрации заявки (RegisterOrder), оно используется в стакане (MarketDepth). Везде где вы в S# работаете с инструментом - вы работаете с Security. Биржа о Security ничего не знает, она знает лишь о isin_id и sess_id. Именно поэтому для того чтобы подавать заявки на биржу, идентифицировать инструменты в заявках, пришедших с биржи, строить стаканы по инструменту, прешедшему с биржи, нам надо взаимно однозначно сопоставлять isin_id и sess_id с Security. Для этого и должен быть сделан простейший маппинг.
|
|
Thanks:
|
|
|
|
|
frontman
|
Date: 12/20/2011
Например поле ShortIsin. Т.к. оно не меняется при смене сессий. Именно по нему можно обновлять инструмент. Т.е. получаеться у нас есть уже 2 поля которые есть только у плазы isin_id и ShortIsin
|
|
Thanks:
|
|
|
|
|
Alexander
|
Date: 12/20/2011
frontman Например поле ShortIsin. Т.к. оно не меняется при смене сессий. Именно по нему можно обновлять инструмент. Т.е. получаеться у нас есть уже 2 поля которые есть только у плазы isin_id и ShortIsin ShortIsin используется где-то при подаче заявок и т.д. и т.п.? Это просто secCode, который мы проставляем в Security.Code Ещё попытка? :)
|
|
Thanks:
|
|
|
|