насколько я знаю у альфа-директа уже есть открытый апи.. Ничего писать не нужно, просто по их же примерам использовать этот апи. У меня работало полтора года назад вполне сносно.
Однако, на мой взгляд создавать мтс на базе альфа-директа - неправильно. Поскольку если что-то случится с альфой или конкретно с альфа-директом - переписывать предется всю систему. С этой точки зрения любой другой более распространенный терминал, разрабатываемый независимо от конкретного брокера - гораздо лучше.
P.S. сам клиент альфы.. не сочтите за антирекламу.
Не совсем с этим согласен. Главное в МТС это идея, а написать ее может программист нанятый за деньги.
В целом Альфе РЕСПЕКТ они первые кто эту тему стал развивать, если не ошибаюсь еще с 2003 года. Жаль что у них это все замерзло на текущий момент.
Еще важный момент, что бы МТС нормально работала нужно или желательно что бы софт сервера брокера поддерживал такую функцию, как запрашивать исторические данные по инструментам (сервер котировок). В самом распространенном в России терминале КВИК этого нет . А все остальные софтины принадлежат конкретным брокерам. Альфа – дирек Альфа брокеру и Смарт Трейд АйТи Инвесту, есть еще Нет Инвестор, но в нем я лично не копался.
Так же еще отмечу, что самым оптимальным вариантом будет не связка терминал программа ТА а связка по СОМ интерфейсу. Для примера выкладываю часть описания COM-интерфейса SmartTrade. До раздела (Запрос исторических интервальных данных производится методом)
Если кому потребуется подробнее , скачивайте у них с сайта. Если не найдете где пишите я дам ссылку
Краткое описание COM-интерфейса SmartTrade (в стиле «у зайца длинные уши»).
Наблюдение за торгами 1
Наблюдение за счетом 3
Выставление приказов 4
Интерфейс позволяет получать в реальном времени информацию о торгах (котировки, очередь заявок, сделки), запрашивать исторические данные по инструментам, наблюдать за состоянием счета и выставлять заявки.
Интерфейс не автономен: взаимодействие с сервером осуществляется программой SmartTrade (Pro), а интерфейсная библиотека (stcln.dll) исполняет роль посредника и работоспособна только при установленном в SmartTrade соединении.
Программно интерфейс представляет собой COM класс StServer реализующий интерфейс IStServer и генерирующий события в диспетчериземый интерфейс _IStClient.
Для выставления и отмены приказов необходимо изменить настройки SmartTrade:
1. В меню Настройки->Основные->Внешний приказы установить переключатель в положение WealthLab Developer
2. При необходимости снять галочку напротив «При постановке внешнего приказа выводить сообщение для подтверждения».
Наблюдение за торгами
Для получения информации по инструменту в реальном времени необходимо «подписаться» на прослушивание вызвав соответствующий метод IStServer:
HRESULT ListenQuotes(
BSTR symbol); -- котировки
HRESULT ListenBidAsks(
BSTR symbol); -- очередь заявок (стакан)
HRESULT ListenTicks(
BSTR symbol); -- сделки
symbol – код ЦБ на бирже
В результате подписки _IStClient начнет получать события:
1. Обновление котировок
HRESULT UpdateQuote(
BSTR symbol,
DATE datetime,
double open,
double high,
double low,
double last,
double volume,
double size,
double bid,
double ask,
double bidsize,
double asksize);
2. Обновление стакана
HRESULT UpdateBidAsk(
BSTR symbol,
long row,
long nrows,
double bid,
double bidsize,
double ask,
double asksize);
Полый «стакан» сортируется и передается построчно за несколько вызовов. Каждая строка содержит цены и объемы предложений или нули, если предложения на покупку или продажу исчерпаны. Лучшие предложения имеют меньший номер строки (row), общее количество строк (nrows) в процессе передачи стакана не меняется.
3. Все сделки
HRESULT AddTick(
BSTR symbol,
DATE datetime,
double price,
double volume);
Отменить подписку можно вызовами
HRESULT CancelQuotes(
BSTR symbol);
HRESULT CancelBidAsks(
BSTR symbol);
HRESULT CancelTicks(
BSTR symbol);
Запрос исторических интервальных данных производится методом
HRESULT GetBars(
BSTR symbol,
StBarInterval interval,
DATE since,
long count);
Если количество запрашиваемых интервалов положительно, сбор идет «назад» по времени в прошлое от указанной даты; если отрицательно – то «вперед». Данные поинтервально возвращаются в событии
HRESULT AddBar(
BSTR symbol,
StBarInterval interval,
DATE datetime,
double open,
double high,
double low,
double close,
double volume);
Отменить запрос истории можно методом
HRESULT CancelBars(
long cookie);