Mikhail Sukhov
|
Дата: 16.01.2011
skuvv А есть ли смысл менять названия полей? Поидее по документам plaza будет легче сопостовлять поля если они будут с оригинальными совпадать...
Названия я предлагаю не менять, а дописывать до полного... В любом случае, будет много, что не как в стандартном АПИ. Но нужно одновременно сделать удобным и работу с документацией Plaza, и дальнейшей работой с роботом. Мне кажется, что документация по Плазе нужна только в первое время. В дальнейшем видеть в коде названия ordid sessid и т.д. не очень приятно. Но это только мое мнение.
|
|
Спасибо:
|
|
|
|
|
aspirant
|
Дата: 16.01.2011
|
|
|
|
Mikhail Sukhov PlazaHeartBeatColumns
- Неправильный тип таблицы у ServerTime.
- Это единственная таблица с системными данными? Если нет, то название System не подходит.
- Конструкторы у классов с метаданными лучше делать internal.
исправил Mikhail Sukhov Насчет общего стиля именования. Предлагаю, писать полностью имена, тоесть:
OrdId -> OrderId SessId -> SessionId Dir -> Direction
Название ISIN можно писать как ISIN, Isin, но никак не IsIn. Аббревиатуры (в данном случае International Securities Identification Number) так не пишутся.
Изначально при именовании переменных я хотел сохранить близость к оригиналу, на случай если кому-то придется работать с документацией самой Плазы. Сейчас понимаю, что читаемость кода, пожалуй, важнее. Тем более что я сам себе противоречил, обозвав классы полными именами, например, PlazaOptionSessionContentsColumns, а не PlazaOptSessContentsColumns. Насчет IsIn'а я ступил. Предлагаю Isin, потому что, во-первых, кроме Isin'а еще будет переменная IsinId, а во-вторых, это в духе .Net'а, см. System.Xml. Mikhail Sukhov Предлагаю не писать тип данных в комментариях к поля (i) (t) и т.д.. Добавляет лишнюю смысловую нагрузку, которая по сути вряд ли будет использоваться из вне.
Пожалуй, это действительно был перебор, сейчас исправлю
|
|
Спасибо:
|
|
|
|
|
aspirant
|
Дата: 16.01.2011
Все исправил. Не знаю только, как правильно именовать:
/// <summary> /// Базовое ГО под одну покрытую позицию подписчика (руб) /// </summary> public readonly PlazaColumn bgo_c = new PlazaColumn(PlazaTableTypes.Option, "bgo_c", typeof(decimal), true);
/// <summary> /// Базовое ГО под одну непокрытую позицию подписчика (руб) /// </summary> public readonly PlazaColumn bgo_nc = new PlazaColumn(PlazaTableTypes.Option, "bgo_nc", typeof(decimal), true);
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 17.01.2011
aspirant Все исправил. Не знаю только, как правильно именовать:
/// <summary> /// Базовое ГО под одну покрытую позицию подписчика (руб) /// </summary> public readonly PlazaColumn bgo_c = new PlazaColumn(PlazaTableTypes.Option, "bgo_c", typeof(decimal), true);
/// <summary> /// Базовое ГО под одну непокрытую позицию подписчика (руб) /// </summary> public readonly PlazaColumn bgo_nc = new PlazaColumn(PlazaTableTypes.Option, "bgo_nc", typeof(decimal), true); Главное, не с маленькой буквы, и_убрать_подчеркивания. BgoC, BgoNc. Вполне сойдет.
|
|
Спасибо:
|
|
|
|
|
aspirant
|
Дата: 17.01.2011
Еще вопрос. Что делать с этими переменными?
/// <summary> /// Дата окончания обращения инструмента /// </summary> public readonly PlazaColumn DPG = new PlazaColumn(PlazaTableTypes.Option, "d_pg", typeof(DateTime), true);
/// <summary> /// Дата начала экспирации инструмента /// </summary> public readonly PlazaColumn D_Exec_Beg = new PlazaColumn(PlazaTableTypes.Option, "d_exec_beg", typeof(DateTime), true);
/// <summary> /// Дата окончания экспирации инструмента /// </summary> public readonly PlazaColumn D_Exec_End = new PlazaColumn(PlazaTableTypes.Option, "d_exec_end", typeof(DateTime), true);
Решарпить плазовские названия? Или писать что-то типа:
d_pg: ExerciseDate d_exec_beg: ExpirationStartDate d_exec_end: ExpirationEndDate
Если мы за читаемость, я все-таки предлагаю второй вариант
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 17.01.2011
aspirant d_pg d_exec_beg d_exec_end
Как они сами в таком ужасе разбираются? aspirant Если мы за читаемость, я все-таки предлагаю второй вариант
Согласен.
|
|
Спасибо:
|
|
|
|
|
aspirant
|
Дата: 17.01.2011
Mikhail Sukhov aspirant d_pg d_exec_beg d_exec_end
Как они сами в таком ужасе разбираются? aspirant Если мы за читаемость, я все-таки предлагаю второй вариант
Согласен. Готово
|
|
Спасибо:
|
|
|
|
|
lkor
|
Дата: 17.01.2011
|
|
|
|
Mikhail Sukhov PlazaFutCommonColumns:
- Наследования от базового класса PlazaColumns отсутствует.
- Cо статических полей переделать на обычные (иначе наследование работать не будет), и записать свою таблицу в PlazaColumns как статическое поле.
- Придерживаться .NET стиля. Тоесть, не Sess_id, а SessId, не status а Status.
- Если таблица одинаковая для опцов и фьючей, то и называть класс нужно Derivative, а не Futute. Как плюс, задел на будущее, что РТС расширит поля в одной из таблиц, и тогда они перестанут быть эквивалентными. Тогда можно будет сделать Derivative абстрактным и сделать два специфичных наследника.
- Таблицы FORTS_FUTCOMMON_REPL и FORTS_OPTCOMMON_REPL не одинаковы. Это значит что уже сейчас надо выносить в базовый класс общие поля и производить наследование. Особенно, обратить внимание на передачу типа таблицы в базовый класс. Как пример, PlazaDerivativeColumns и PlazaOptionColumns.
PlazaFutTradeDealColumns, PlazaFutTradeMultilegDealColumns, PlazaFutTradeMultiLegOrdersLogColumns, PlazaFutTradeOrdersLogColumns:
- Тоже самое, что и PlazaFutCommonColumns, кроме наследования от PlazaColumns.
- Везде указывается тип таблицы Trade. Так ли это?
1. привёл все поля к .NET стилю 2. со статических переделал на обычные 3. убрал из комментариев тип поля в Плазе ( (с7), (i4) и т.д. ) 4. для Plaza*OrdersLogColumns изменил тип таблицы на Order 5. переимевал PlazaFutTradeDealColumns в PlazaDerivativeTradeDealColumns, PlazaFutTradeOrdersLogColumns в PlazaDerivativeTradeOrdersLogColumns 6. добавил соответсвующие поля в PlazaColumns для таблиц из FORTS_FUTTRADE_REPL. для таблиц из FORTS_OPTTRADE_REPL поля добавил и закоментировал, ибо не мой это поток. не надо - удалим. вроде всё.
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 17.01.2011
Я так понимаю, задачу 1 не только выполнили, но и перевыполнили? Тогда корректируем задачи в зависимости от силы исполнения. Те, кто хочет остаться на метаданных, пусть дописывает оставшиеся. Только перед этим надо написать здесь, какие именно таблицы хочется дописать, чтобы не получилось дублирования работы. Далее, задачи с 2 по 5. Задачи 2 и 3 мне кажется схожи. Поэтому, предлагаю стаканы отложить до тех пор, пока не будет закончена задача 2. Если так окажется, что желающих больше чем задач (вряд ли, но все же), то предлагаю спуститься к задачам из третьестепенной группы (второстепенные задачи слишком тесно связаны с первостепенными). Схема стандартная - пишем кто-что хочет делать и делаем.
|
|
Спасибо:
|
|
|
|
|
aspirant
|
Дата: 17.01.2011
В принципе по опционам за исключением стаканов описал все. Хотел бы перейти к п. 2
|
|
Спасибо:
|
|
|
|