ОСНОВНЫЕ ТРЕБОВАНИЯ:
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, проверка статуса перед операциями
РЕЗУЛЬТАТ:
Рабочий модуль с полным функционалом, документация, примеры интеграции, тесты критичных сценариев.
ВАЖНО:
Архитектура должна быть универсальной основная логика не зависит от типа биржи. Адаптеры изолируют специфику. Работа с тестовыми средами перед запуском. Модуль должен легко расширяться.
РЕСУРСЫ:
CCXT:
| ALOR OpenAPI:
| Документация Финам, MOEX ISS API, FIX,