Список задач
Atom Ответить
29.12.2010


И так, предлагаю подытожить то, что нужно сделать и в каком порядке.

Задачи сгруппировал по группам (копировал из соседней ветки https://stocksharp.ru/forum/1275/&p=2). Первая группа - самая приоритетная. Без нее делать задачи из следующей бессмысленно. Сами задачи внутри этой группы так же выстроены по очередности.

Базовая группа:

  1. Описать основные метаданные, как это сделано для Квика (DdeSecurityColumns, DdeTradeColumns и т.д.). Я это уже показал на примере класса PlazaFutureColumns, но там колонки не реальные. Предлагаю прямо разобрать по названию таблиц потоков, кто за какие будет отвечать (описывать в коде). Таблицы только основные: инструменты, заявки, сделки и т.д.
  2. Подписываться на произвольные потоки + отписываться.
  3. Получать стаканы. Производная от предыдущей задача. Выделил ее отдельно.
  4. Заявки (регистрация, снятие и перемещение). Я уже сделал через класс Message заполнение полей для отправки транзакций. Это дело надо доделать.
  5. Парсинг ответа от транзакций (внимание! всех транзакций, а не только, что в предыдущем пункте). Я не знаю, в каком виде они приходят, но могу сказать, какой результат должен быть. Это должно быть PlazaException с кодом ошибки (чтобы не мучится сравнение строчек в коде). И код не ввиде числа (что не так уж лучше строчки), а нормального перечисления (enum).


Первую задачу предлагаю сделать сообща. Остальные - разбираем по тем признакам, кто какие таблицы описывал (например, кто описал стакан, тот занимается задачей 3, кто инструменты - задачей 2, кто заявки - задачей 4).

Второстепенная группа:

  1. Дописать все остальные метаданные (позиции, счета, волатильность, маржа, клиринг, доп информация о деривативах, индексы).
  2. Фильтрация потоков. Так как Плаза не дает фильтр (камрад skuvv написал об этом), но в клиентском коде прописывать фильтры дело не благодарное, предлагаю это симулировать через RegisterXXX + UnRegisterXXX.
  3. Возможность задавать глубину стакана (как я понял, это влияет на то, к какому потоку необходимо цепляться).
  4. Поддержка агрегированного стакана и обычного. Для этого можно использовать GroupedQuote (внутри себя он будет содержать не агрегированные котировки).


Третьестепенная группа:

  1. С помощью метаданных научиться строить конфиги ini. Как вариант, через PlazaTable (куда собственно и будут добавляться колонки из пункта 1 пред группы). Сейчас ini файлы программно редактировать нельзя. И если роботу нужны спец колонки нужно менять формат ini схем. Я предлагаю до загрузки этих схем давать возможность менять из программно (парсить и менять ini файлы на лету). + как фича автоматически сканировать директорию при старте и создавать с правильным набором колонок сами PlazaTable. Возможно, здесь поможет TableSet.
  2. Время биржи.
  3. Все остальные транзакции (FutChangeClientMoney, OptChangeExpiration и т.д.).
  4. Составные инструменты.
  5. На форуме доступна x64 версия. Нужна прозрачная поддержка (без перекомпиляции) x86 и x64.
  6. Обертка над роутером (чтобы так же, не ручками править конфиги, а программно).
  7. Документация (как xml, так и обычная). Если нужно сделать как у S#, то необходимо использовать Sandcastle.


Особенности в работе.

Старайтесь писать так, как это принято в .NET и в частности C# коде.
Публичные методы классы и т.д. описывайте xml комментариями (лучше не сочинять, а копировать из документации Плазы, чтобы быть не с планеты Юпитер, а ближе к тем, кто будет это использовать и вторым глазом подглядывать в документацию).
Предлагаю использовать R# как средство для контроля качества кода.
Пишите юнит тесты (заведите отдельный проект в sln).

Теги:


Спасибо:




78 Ответов
1 2 3  > >>
nlrf

Фотография
Дата: 30.12.2010
Ответить


А где посмотреть PlazaFutureColumns?
Всех с Новым Годом!
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 30.12.2010
Ответить


nlrf
А где посмотреть PlazaFutureColumns?
Всех с Новым Годом!


Приехали. Я же доступ дал к ТФС и Вы написали, что успешно подключились. Там лежит то, что я начинал по Плазе. В том числе и данный класс.
Автор топика
Спасибо:

nlrf

Фотография
Дата: 31.12.2010
Ответить


Михаил, на эту тему у нас уже была переписка.
Я: "Но тут новая проблемка нарисовалась. В студии командный проект (папка 1.0) пустым выглядит. Встроен ли Teamprise Explorer в студию 2010, или его надо отдельно скачать и инсталлировать? Если первое, то как он называется в русскоязычной версии? Если же это и есть командный обозреватель в новой версии безо всяких рычагов, то в нём-то и пусто".
Вы: "Не туда смотрите. Исходники в другом месте".
В итоге я смотрю: 1) не так; 2) не там; или 3) не то?
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 31.12.2010
Ответить


nlrf
Михаил, на эту тему у нас уже была переписка.
Я: "Но тут новая проблемка нарисовалась. В студии командный проект (папка 1.0) пустым выглядит. Встроен ли Teamprise Explorer в студию 2010, или его надо отдельно скачать и инсталлировать? Если первое, то как он называется в русскоязычной версии? Если же это и есть командный обозреватель в новой версии безо всяких рычагов, то в нём-то и пусто".
Вы: "Не туда смотрите. Исходники в другом месте".
В итоге я смотрю: 1) не так; 2) не там; или 3) не то?


Я в инструкции давал ссылку на доку по TFS. Прочтите, там не много, лишним не будет.
Автор топика
Спасибо:

aspirant

Фотография
Дата: 02.01.2011
Ответить


Как будем сообщать о загрузке файлов, выполнении задач? Только что загрузил три файла, связанные с настройкой конфиг-файла роутера.
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 03.01.2011
Ответить


aspirant
Как будем сообщать о загрузке файлов, выполнении задач? Только что загрузил три файла, связанные с настройкой конфиг-файла роутера.


Комменты в самом TFS + отпишите на форум.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 11.01.2011
Ответить


И так, праздники прошли, логинов роздано с двух десятков, задачи есть, план по задачам есть (по крайней мере никто не высказывался против, впрочем как и за). Предлагаю разбирать задачи. Как я уже написал, первую задачу можно сделать сообща. Это будет своеобразной пионерской задачей и сразу покажем, как нужно координировать действия.

Трублю всеобщий сбор.
Автор топика
Спасибо:

aspirant

Фотография
Дата: 11.01.2011
Ответить


Предлагаю взять
Поток FORTS_OPTTRADE_REPL - Опционы: заявки и сделки

Таблицы:
• orders_log - Журнал заявок
• deal - Журнал сделок
• heartbeat - Служебная таблица cерверных часов
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 12.01.2011
Ответить


Я сделал несколько чекинов, чтобы структурировать первоначальное (+ сделать компилируюемым).
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 12.01.2011
Ответить


aspirant Перейти
Предлагаю взять
Поток FORTS_OPTTRADE_REPL - Опционы: заявки и сделки

Таблицы:
• orders_log - Журнал заявок
• deal - Журнал сделок
• heartbeat - Служебная таблица cерверных часов



Я беру FORTS_FUTINFO_REPL - Фьючерсы: справочная и сессионная информация. Только то, что относиться к инструментам и сессиям:

  • fut_vcb
  • session
  • fut_sess_contents
  • fut_instruments
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 12.01.2011
Ответить


Так, а что с остальными? Нужно как в школе называть всех по списку?
Автор топика
Спасибо:

lkor

Фотография
Дата: 12.01.2011
Ответить


если всё свободно то
FORTS_FUTTRADE_REPL - Фьючерсы: заявки и сделки

Таблицы:
orders_log - Журнал заявок
deal - Журнал сделок
multileg_orders_log - Журнал заявок по связкам
multileg_deal - Журнал сделок по связкам
heartbeat - Служебная таблица cерверных часов

я так понимаю orders_log, deal и heartbeat первоочередные, остальные могут потерпеть.
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 12.01.2011
Ответить


lkor Перейти
если всё свободно то
FORTS_FUTTRADE_REPL - Фьючерсы: заявки и сделки

Таблицы:
orders_log - Журнал заявок
deal - Журнал сделок
multileg_orders_log - Журнал заявок по связкам
multileg_deal - Журнал сделок по связкам
heartbeat - Служебная таблица cерверных часов

я так понимаю orders_log, deal и heartbeat первоочередные, остальные могут потерпеть.


По мне так и multi может подождать. Но если есть желание все сделать сразу, почему бы нет.
Автор топика
Спасибо:

aspirant

Фотография
Дата: 12.01.2011
Ответить


Михаил,

Прочитав ваше сообщение, понял, что мне нужно начать с

Поток FORTS_OPTINFO_REPL - Опционы: справочная и
сессионная информация
Схема данных
Таблицы:
• opt_exp_orders - Заявки на экспирацию
• opt_vcb - Справочник торгуемых активов
• opt_sess_contents - Cправочник торгуемых инструментов
• opt_sess_settl - Результаты клиринга: волатильность и теоретические цены
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 12.01.2011
Ответить


aspirant Перейти
Михаил,

Прочитав ваше сообщение, понял, что мне нужно начать с

Поток FORTS_OPTINFO_REPL - Опционы: справочная и


Ок, тогда буду смотреть на ваши чекины, так как у нас могут метаданные пересекаться. Например, вряд ли опционная сессия чем-то отличается от фьючерсной. Давайте сделаем так. Все, что вы думаете относиться к деривативам вообще (фьючи опшины) - выносите не в класс PlazaOptionЧтотоТам, а в PlazaDerivativeЧтотоТам (если его еще нет, то надо создать).
Автор топика
Спасибо:

aspirant

Фотография
Дата: 13.01.2011
Ответить


Михаил,

Создал класс PlazaDerivativeColumns, который будет использоваться для справочников базовых контрактов для инструментов (fut_vcb, opt_vcb).

Вопрос по реализации: сейчас в классе PlazaFutureColumns колонки - это открытые статические переменные для чтения, а, например, в классе DdeSecurityColumns колонки - открытые статические свойства только для чтения. Прописываем колонки, как переменные? Интереса ради, с чем связано такое изменение?
Спасибо:

aspirant

Фотография
Дата: 13.01.2011
Ответить


Добавил класс PlazaDerivativeColumns

Описывает колонки справочники базовых контрактов для инструментов
Поток FORTS_FUTINFO_REPL - таблица fut_vcb
Поток FORTS_OPTINFO_REPL - таблица opt_vcb
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 13.01.2011
Ответить


aspirant Перейти
Добавил класс PlazaDerivativeColumns

Описывает колонки справочники базовых контрактов для инструментов
Поток FORTS_FUTINFO_REPL - таблица fut_vcb
Поток FORTS_OPTINFO_REPL - таблица opt_vcb


Просьба указывать комментарий при чекине. Есть такое поле вверху в окне Checkin changed.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 13.01.2011
Ответить


Mikhail Sukhov Перейти
aspirant Перейти
Добавил класс PlazaDerivativeColumns

Описывает колонки справочники базовых контрактов для инструментов
Поток FORTS_FUTINFO_REPL - таблица fut_vcb
Поток FORTS_OPTINFO_REPL - таблица opt_vcb


Просьба указывать комментарий при чекине. Есть такое поле вверху в окне Checkin changed.


Дополнительно, замените в студии пробелы на табы. Навигация по коду стрелками усложняется.

Сделал разъединение PlazaDerivativeColumns на PlazaFutureColumns и PlazaOptionColumns. PlazaDerivativeColumns теперь абстрактный, и статические поля убраны. Тоесть, вместо написания myTable.Columns.Add(PlazaDerivativeColumns.ClientCode) теперь будет myTable.Columns.Add(PlazaColumns.Futures.ClientCode).

Вопрос. А почему классы в проектный файл csproj не добавляете?
Автор топика
Спасибо:

skuvv

Фотография
Дата: 13.01.2011
Ответить


добавил таблицу Common для FORTS_FUTCOMMON_REPL
ps таблица совпадает с таблицей их потока FORTS_OPTCOMMON_REPL
+ беру FORTS_POS_REPL,FORTS_PART_REPL,RTS_INDEX_REPL,FORTS_VM_REPL
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 13.01.2011
Ответить


skuvv Перейти
добавил таблицу Common для FORTS_FUTCOMMON_REPL
ps таблица совпадает с таблицей их потока FORTS_OPTCOMMON_REPL
+ беру FORTS_POS_REPL,FORTS_PART_REPL,RTS_INDEX_REPL,FORTS_VM_REPL


Ок. Такие же просьбы как и к аспиранту. Плюс, посмотрите как я переделал PlazaPosColumns (вынес общие поля в базовый класс + сделал поля не статичными).
Автор топика
Спасибо:

aspirant

Фотография
Дата: 15.01.2011
Ответить


Понял, приму к сведению.
Спасибо:

lkor

Фотография
Дата: 15.01.2011
Ответить


добавил таблицу orders_log из FORTS_FUTTRADE_REPL. наследовал от PlazaColumns

PS Таблица совпадает с orders_log из FORTS_OPTTRADE_REPL (отличие в том что для опционов поле status может принимать ещё 2 дополнительных значения)

PPS Первый опыт работы в команде и с TFS - ногами не бить.RollEyes

PPPS как изменить платформу с 4.0 на 3.5? Найти в VS2010 у меня не получилось. Confused
Спасибо:

aspirant

Фотография
Дата: 15.01.2011
Ответить


lkor Перейти
PPPS как изменить платформу с 4.0 на 3.5? Найти в VS2010 у меня не получилось. Confused


В свойствах проекта на закладе Приложение / Application
Спасибо:

lkor

Фотография
Дата: 15.01.2011
Ответить


aspirant Перейти
lkor Перейти
PPPS как изменить платформу с 4.0 на 3.5? Найти в VS2010 у меня не получилось. Confused


В свойствах проекта на закладе Приложение / Application


Спасибо!
Спасибо:
1 2 3  > >>

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy