Тимофей Мартынов
Тимофей Мартынов личный блог
07 июня 2016, 17:55

нужен технический совет по котировкам Мосбиржи

Привет всем! Нужна помощь техспецов. Хочу на смартлабе сделать вот такую табличку:

http://quote.rbc.ru/exchanges/demo/micex.0/intraday
 

Эта табличка у квоты обновляется автоматом раз в 5 сек.
Насколько я понял по API интерфейсу биржи, собирается она из вот таких запросов: 

http://moex.com/iss/engines/stock/markets/shares/securities.xml?securities=GAZP 

Как это лучше реализовать технически на стороне сервера?

На чем писать серверную часть? Как сделать так, чтобы это минимально грузило сервак и выполняло расчеты параметров по каждой бумаге?

+ я хочу ещё сохранять данные раз в 5-10 минут и делать с таким же интервалом определенные вычисления… результат которых будет в этой же табличке + сделать фильтры, по которым можно будет показывать бумаги

p.s. договор с биржей подписал
нужен технический совет по котировкам Мосбиржи

44 Комментария
  • D.G.
    07 июня 2016, 18:03

    habrahabr.ru/company/dnevnik_ru/blog/167307/

    nodeguide.ru/doc/modules-you-should-know/socketio/

    На сервере делается пулинг данных с биржи, отслеживаются изменения в данных и по веб сокетам или другому транспорту отсылаются изменения клиентам. На клиенте можно использовать angular, backbone или react js. Серверная реализация может быть на .net + signalR или на node.js + socket.io, исходя из возможностей хостинга.

  • togovse
    07 июня 2016, 18:10
    • На чем писать серверную часть?
      на чём угодно, я думаю это можно делать не на сервере, а на клиенте. Желательно чтобы данные с моекс приходили в json формате.
    • Как сделать так, чтобы это минимально грузило сервак и выполняло расчеты параметров по каждой бумаге?
      Минимизировать запросы к серверу моекс, стараться все данные выкачивать одним запросом.  
    • еще, если моекс поддерживает отправку данных по вебсокетам, то вообще хорошо будет.
  • vlad1024
    07 июня 2016, 18:18
    Просто слать запросы параллельно потом агрегировать, на чем слать впринципе все равно, основная проблема это нагрузка на сервер биржи после которой она будет давать отлуп. На чем писать — на чем умеете, из скриптовых(Python, PHP) все равно, они по производительности равнозначны. Надо посчитать нагрузку, если ее придется снижать то писать стоит на Java/Go. Но лучше начать с простого решения — написать на том же языке что и сайт.
  • Игорь Рябушкин
    07 июня 2016, 18:52
    Я бы делал так.

    1. На SQL Server создал таблицу (скорее группу таблиц). 
    2. На SQL Server создал Stored procedure (на t-sql) которая делает нужные вычисления на базе таблиц из п.1
    3. На .NET написал процедуру которая 
    3.1. Запрашивает данные по HTTP в формате XML
    3.2. Парсит XML документ и записывает данные в таблицу из п.1
    3.3. Вызывает процедуру из п.2
    4. Создал задание по расписанию (на сервере) которое регулярно с заданной частотой выполняет процедуру п.3.


    К подобного класса задачам лучше подходить обдуманно. Обдумывать максимально будущую систему в рамках которой будет работать данное решение. Фундаментальный вопрос тут — реляционная модель базы данных. Остальное — вторично. Модель данных — должна проектироваться исходя из модели семантического уровня. Несколько заумно может показаться, но делать лучше так.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн