Alexander Mukhanchikov Андрей, просьба вначале дать подробности относительно версии Zen-Fire API, под которую пишется.
Если вторая - то как будут обходиться те функции, которые в API ещё не поддерживаются?
Коннектор разрабатывается на данный момент под версию 1 API с абсолютно прозрачным переходом на версию 2. Это решение принято в связи с тем, что на данный момент существуют технические сложности для массового подключения к реалу на 2 версии Zen-Fire.
Позиция технических специалистов Zen-Fire такова - планируется давать доступ к реалу тем пользователям, которые, собственно, доказали, что они с API работают корректно в тестовой среде.
Поэтому, пока ситуация выглядит следующим образом.
Интерфейс (даже внутренний) для обоих версий API будет един.
На данный момент я не вижу надобности в создании примитивов, специфичных для той или иной версии API, которые не могут быть эффективно реализованы на уровне более высоких абстракций.Единственное принципиальное ограничение АПИ версии 1 - это невозможность поддержки нескольких соединений, более того, после запуска определенного соединения, для соединения с другим логином, требуется перезапуск приложения.
Никакими иными средствами пока это обойти не получилось, насколько мне известно.
Впрочем, на западных рынках, с наличием у них счета-контроллера, это не столь уж важная point of view, реально.
Второе существенное ограничение API Zen-Fire - это отказ от поддержки исторических данных в первой редакции API.
Во 2 версии поддерживается несколько клиентских соединений без каких-либо ограничений.
Кроме того, разрабатывается интерфейс для доступа к независимым от провайдера историческим данным.
Тут есть проблема, связанная, с некоторыми ограничениями биржевых США о том, что такая информация может быть только платной, в отличие от реалтайм котировок для реально торгующих клиентов.
Во всем остальном, необходимая функциональность во 2 версии API поддерживается в полном объеме:
- сведения о клиентских счетах, IB, FCM
- подписки на счета и инструменты
- полная внутридневная история, как это транслируется биржами
- в зависимости от соединения, от ограниченных до полных котировок DOM
- все сделки
- информация об изменении позиций и рыночной оценки позиций в реальном времени
- информация об АБСОЛЮТНО ВСЕХ изменениях с ордерами, включая фазы его путешествия с компьютера трейдера до биржевого процессора
- информация о каждом изменении состояния счета (счетов)
- справочная информация
К слову, уровень дискретизации событий - микросекунды.
Ряд нереализованных ядром API, но доступных для самостоятельной реализации, в коннекторе будет реализован. Кроме того, к реализации планируются фичи, которых в нативном API не будет, скорее всего, никогда.
Касательно перехода от 1 к 2 версии API и соответственно коннекторы просто выбираются пользователем и могут быть прозрачно заменены путем простой смены сборок :) И в этом отношении у пользователей Stock# имеется безусловное преимущество :)
Справочно, само API Zen-Fire написано на C++, коннектор разрабатывается в части ядра на C++/CLI, соответственно, с производительностью проблем не ожидается. Разумеется, все функции коннектора будут доступны для всех языков .Net.
Отдельная тема - среда Linux.