В качестве тестового задания предлагается реализовать прототип сервиса по получению и предпросмотру торговых данных.
Задание состоит из следующих этапов:
- Реализация сервиса по генерации realtime данных.
Сервис должен возвращать раз в секунду цены для 100 искусственных торговых инструментов: ticker_00, ticker_01, …, ticker_99.
В качестве функции изменения цены для каждого инструмента предлагается использовать следующий код:
from random import random
def generate_movement():
movement = -1 if random() < 0.5 else 1
return movement
Код выше моделирует изменение цены за один шаг времени.
Цена каждого инструмента будет складываться кумулятивно из всех изменений.
Цену в начальный момент времени принимаем равной нулю.
- Реализация веб-сервиса по визуализации цены в режиме реального времени.
Необходимо вывести:
a. Селектор инструмента в виде выпадающего списка
b. График цены по выбранному инструменту от начального момента с добавлением данных по мере поступления.
Все промежуточные детали реализации остаются на Ваше усмотрение.
Ограничений по использованию софта и инфраструктуры нет.
Запустить сервис по генерации realtime данных, используется адрес http://127.0.0.1:8000.
cd trade-data-api
pipenv install --dev
pipenv run uvicorn app.main:app --reload
Запустить веб-сервис по визуализации цены в режиме реального времени, просмотр доступен по адресу http://localhost:5173.
cd trade-data-view
npm install
npm run dev