Техническое задание: Разработка торговой аналитической системы
Основная цель
Создание серверного приложения для подключения к API брокерских услуг, агрегации данных, автоматизации торговых операций и хранения всей информации в базе данных с веб-интерфейсом для управления.
Ключевые функциональные требования
1. Управление подключениями к брокерским счетам
- Возможность добавления нескольких брокерских счетов
- Индивидуальная аутентификация (токен) для каждого счета
- Стабильное поддержание соединений
2. Получение и обработка финансовых данных
- Загрузка информации о портфеле и текущих позициях по каждому счету
- Получение списка доступных инструментов (фьючерсы, акции, облигации и др.)
- Получение свечных данных по выбранным инструментам с атрибутами: минимум, максимум, открытие, закрытие, объемы, количество длинных/коротких позиций
3. Торговые операции
- Выставление ордеров на покупку и продажу выбранных инструментов
- Реализация отложенных ордеров: лимитных, стоп-лосс, тейк-профит
- Редактирование открытых позиций: закрытие, изменение уровней тейк-профита и стоп-лосса
4. Работа с историческими данными
- Загрузка архивных данных по инструментам
- Гибкий выбор параметров: инструмент, таймфрейм, количество последних свечей (100, 200, 300 и т.д.)
- Сохранение загруженных данных в базу данных
5. Хранение данных и администрирование
- Все получаемые данные и результаты операций должны записываться в базу данных для последующего анализа
- Реализация админ-панели для управления системой, просмотра состояния счетов и операций
Технические условия
- Серверная часть должна быть развернута на существующем сервере (Ubuntu, ISPmanager)
- Решение должно быть масштабируемым и устойчивым к сбоям соединения
- Обязательно логирование всех значимых событий и операций
Ожидаемый результат
Готовая к эксплуатации система, позволяющая подключать несколько брокерских счетов, автоматически собирать рыночные данные, выполнять торговые операции по заданным алгоритмам и предоставляющая удобный интерфейс для мониторинга и управления через веб-админку.