ru24.pro
«Фрилансим»
Январь
2025
1 2 3 4 5 6 7 8 9 10 11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

Cоздание программы для зеркалирования сделок между брокерскими счетами

0

Основные задачи

Задача 1: Установка защищенного соединения с WebSocket сервером

  • Установить защищенное соединение с WebSocket сервером для получения данных о сделках с первого счета.
  • Подписаться на необходимые потоки данных (создание/отмена ордеров).
  • Реализовать механизм повторного подключения (reconnect) при потере соединения.
  • Обеспечить возможность зеркалирования нескольких пар счетов.

Задача 2: Обработка данных об ордерах и сделках

  • Реализовать логику обработки данных об ордерах, частично исполненных ордерах и сделках.
  • Написать функции для обработки входящих сообщений.

Задача 3: Пропорциональное зеркалирование

  • Реализовать логику пропорционального зеркалирования (с учетом коэффициента) для случаев разных размеров счетов.
  • Определить условия для зеркалирования сделок* (см. список условий ниже).

Задача 4: Отправка торговых приказов

  • Настроить отправку торговых приказов на второй счет.
  • Реализовать повторную отправку приказов в случае сбоя или ошибки от сервера.

Задача 5: Обеспечение стабильности программы

  • Реализовать механизм мониторинга и автоматического восстановления при сбоях.
  • Добавить обработку ошибок при подключении, отправке и получении данных.
  • Внедрить логирование всех действий и ошибок.

Задача 6: Создание отчетности

  • Разработать отчеты для сравнения эффективности работы программы.
  • Включить в отчеты:
    • Расхождения цен покупок на исходном и целевом счете.
    • Информацию о задержках зеркалирования.
    • Статистику по успешным и неуспешным операциям.

Задача 7: Тестирование программы

  • Провести тестирование в песочнице:
    • Проверить корректность зеркалирования сделок между счетами.
    • Обработать случаи с разными балансами и недоступностью инструментов.
    • Протестировать надежность WebSocket соединения и механизм повторного подключения.
    • Проверить обработку ошибок (прерывания сети, ошибки авторизации).
  • Провести стресс-тесты для определения максимального количества пар счетов.
  • Интегрировать автоматизированные тесты в CI/CD для проверки изменений в коде.

Задача 8: Логирование и конфигурация

  • Добавить логирование всех действий и результатов выполнения программы.
  • Реализовать конфигурационные файлы для настройки параметров работы.
  • Настроить ротацию и архивирование лог-файлов для предотвращения их неограниченного роста.

Задача 9: Настройка VDS и развертывание

  • Настроить виртуальный выделенный сервер (VDS) с учетом требований безопасности:
    • Настроить firewall.
    • Обеспечить доступ по SSH с использованием ключей.
  • Развернуть программу на сервере.
  • Настроить автоматический запуск программы при старте сервера.

Дополнительные задачи

  • Модульная архитектура: Обеспечить модульную структуру программы для упрощения дальнейшей разработки и добавления новых функций. Разместить все в github.
  • Документация: Создать подробную документацию для разработчиков и пользователей.
  • Защита данных: Реализовать защиту данных (токены, логины, пароли) с использованием secure storage или шифрования.

* - Условия для зеркалирования сделок

  1. Баланс счетов: Зеркалирование должно осуществляться только при наличии достаточного баланса на обоих счетах.
  2. Доступность инструмента: Инструмент, на который выполняется сделка, должен быть доступен на втором счете.
  3. Права на торговлю: второй счет должен иметь необходимые права для выполнения торговли.
  4. Типы заказов: Определить, какие типы заказов подлежат зеркалированию (например, рыночные или лимитные).
  5. Условия рынка: Зеркалирование может быть ограничено определенными часами торговли или условиями рынка.
  6. Статус заказа: Зеркалировать только исполненные или частично исполненные заказы.
  7. Управление рисками: Не зеркалировать сделки, превышающие установленный порог потерь.
  8. Задержки (latency): Приостанавливать зеркалирование при значительной задержке в получении данных.
  9. Обработка ошибок: Повторять попытку или пропускать зеркалирование при ошибках отправки/получения заказов.
  10. Пользовательские правила: Разрешить пользователям настраивать условия зеркалирования (например, зеркалировать только сделки выше определенной суммы).