1. Универсальная архитектура с адаптерами: - Модульная архитектура с абстрактным интерфейсом для работы с биржами - Адаптеры/драйверы для разных типов бирж: MOEX через брокеров (Алор OpenAPI, Финам API), FIX протокол, - Единый интерфейс для работы со всеми типами бирж, легкое добавление новых адаптеров
2. Поддержка типов заявок: - Рыночные, лимитные, стоп-заявки (где поддерживается), условные заявки - Агрессивные лимитные заявки с автоматическим движением цены ближе к рынку - Гибридные стратегии (лимитная с таймаутом и переключением на рыночную)
3. Критически важная защита: - Защита от дублирования заявок (проверка активных перед отправкой) - Идемпотентность операций (уникальные ID), блокировка параллельных запросов - Управление состоянием заявок (отслеживание всех статусов) - Синхронизация с биржей для выявления расхождений, обработка частичного исполнения
4. Валидация: - Проверка баланса, лимитов биржи (объемы, шаг цены), актуальности цены - Проверка доступности торговли, лимитов на количество заявок - Адаптация валидации под специфику каждой биржи через адаптеры
5. Обработка ошибок: - Классификация (временные vs постоянные), умные повторы только для временных ошибок - Детальное логирование
6. Стратегии быстрого исполнения (критично для арбитража): - Агрессивные лимитные заявки на лучшей цене с авто-движением - Гибридная стратегия с таймаутом, адаптивный выбор типа заявки - Защита от race conditions
7. Работа с различными протоколами: - REST API, WebSocket для real-time данных, FIX протокол, - Унифицированная обработка таймаутов, соблюдение rate limits - Обработка реконнектов, абстракция над различиями в API
8. Восстановление после сбоя: - Сохранение и восстановление состояния, сверка с биржей при старте - Обработка "висящих" заявок
ТРЕБУЕМЫЕ НАВЫКИ:
Обязательно: - Python (asyncio), опыт проектирования универсальных архитектур с адаптерами - Понимание паттернов: Adapter, Strategy, Factory, State Machine, Lock-based Concurrency, Idempotency - Опыт работы хотя бы с одним типом бирж: MOEX (Алор/Финам) FIX - WebSocket, REST API, Redis для блокировок, обработка race conditions - Понимание работы биржевых заявок
Желательно: - CCXT, StockSharp/TSLab, FIX протокол, SQLAlchemy - Опыт разработки торговых роботов, понимание риск-менеджмента
КРИТИЧНО: Модуль должен быть максимально надежным - ошибки приводят к убыткам: - Недопустимо дублирование заявок, отправка без проверки баланса, потеря состояния при сбоях - Обязательна защита от race conditions, проверка статуса перед операциями
РЕЗУЛЬТАТ: Рабочий модуль с полным функционалом, документация, примеры интеграции, тесты критичных сценариев.
ВАЖНО: Архитектура должна быть универсальной - основная логика не зависит от типа биржи. Адаптеры изолируют специфику. Работа с тестовыми средами перед запуском. Модуль должен легко расширяться.