Техническое задание: Модернизация бота для OKX спот-фьючерс арбитража

1. Название проекта: Разработка и модернизация асинхронного бота для мониторинга и исполнения кэрри-трейда (спот-фьючерс арбитража) на бирже OKX.

2. Исходные материалы:

* Предоставленный код (см. выше) является рабочей основой. Он реализует мониторинг спреда между спот- и фьючерсными ценами в реальном времени с помощью ccxt.pro и отображает информацию через интерфейс rich.

3. Цель задачи: Не просто исправить код, а значительно улучшить его, превратив из инструмента для тестирования идей в полноценного торгового бота с расширенной функциональностью, улучшенной надежностью и управлением рисками.

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

Задача 1: Рефакторинг и улучшение архитектуры (Обязательно)

* Разделить монолитный код на логические модули (например:

arbitrage_bot

│── main.py # точка входа

│── exchanges.py # работа с API биржи OKX

│── arbitrage.py # логика поиска арбитража

│── trader.py # открытие/закрытие сделок

│── utils.py # вспомогательные функции (цвета, форматирование и т.д.)

│── config.py # ключи, настройки

│── ui.py # красивый вывод интерфейса

* Вынести все константы OKX_FEE, ENTRY_SPREAD_THRESHOLD и т.д.) в отдельный файл конфигурации config.py).

* Добавить подробное логирование всех критических действий (подключение, отключение, ошибки, вход в сделку, выход из сделки) в файл и в консоль с разными уровнями DEBUG, INFO, ERROR).

Задача 2: Реализация механизма исполнения сделок (Обязательно)

* Текущий код только симулирует PnL. Необходимо интегрировать реальные вызовы API OKX для создания ордеров.

* Добавить модуль okx_trader.py с функциями:

* create_order(symbol, market, side, amount: Размещение рыночного ордерa.

* get_balance(currency): Получение актуального баланса по валюте.

* get_open_orders(symbol): Проверка активных ордеров.

* cancel_order(symbol, order_id): Отмена ордера.

* Логика входа в сделку: При достижении ENTRY_SPREAD_THRESHOLD бот должен выставлять пару ордеров:

1. Лимитный ордер на покупку спота BTC/USDT).

2. Лимитный ордер на продажу фьючерса BTC-USDT-SWAP).

* Логика выхода из сделки: При достижении EXIT_SPREAD_THRESHOLD бот должен выставить ордера на закрытие позиции (продать спот, купить фьючерс).

Задача 3: Внедрение системы управления рисками (Обязательно)

  • Реализовать механизм "проверки связи" (heartbeat) для WebSocket. При длительном отсутствии обновлений перезапускать подключение и перепроверять актуальность всех открытых позиций.

  • Проверка наличия ордеров на бирже при запуске, "подтягивание" уже существующих ордеров на бирже

  • При закрытии бота автоматическое закрытие всех ордеров / ожидание закрытия сделок и закрытие после этого

Задача 4: Улучшение пользовательского интерфейса и отчетности

* Реализовать вывод итоговой статистики за сессию: количество сделок, Win Rate, общий PnL, макс. просадка.

* Добавить интерактивные элементы управления (например, "Пауза", "Экстренная остановка и закрытие всех позиций" с помощью горячих клавиш, "Подождать закрытия сделок и после этого закрыть бота").

Задача 5: Дополнительные улучшения (Опционально, по согласованию)

* Бэктестинг: Создать скрипт для тестирования стратегии на исторических данных.

* Уведомления: Интеграция с Telegram Bot API для отправки оповещений о входе/выходе из сделок и критических ошибках.

* Динамическое управление размером позиции: Размер позиции должен вычисляться от текущего общего баланса, а не от начального.

* Мультибиржевой арбитраж: Добавить поддержку других бирж (например, Binance, Bybit) для межбиржевого арбитража.

5. Требования к технологии:

* Язык: Python 3.10+

* Библиотеки: ccxt.pro, rich, aiohttp, asyncio, pydantic (для валидации конфигурации).

* Стиль кода: Код должен соответствовать PEP8. Использовать аннотации типов (type hints). Настроить black и isort для автоматического форматирования.

6. Критерии приемки:

1. Работоспособность: Бот запускается без ошибок, успешно подключается к OKX и подписывается на тикеры, и выполнять описанный в ТЗ алгоритм.

2. Исполнение ордеров: Бот может размещать и отменять реальные ордера на тестовой сети OKX (Demo Trading), а также уметь переключаться на реальное API и работать "в боевом режиме" с реальными деньгами на реальной среде).

3. Управление рисками: Oбработка ошибок/задержек API.

4. Логирование: Все ключевые события записываются в файл лога.

5. Кодкачество: Код хорошо структурирован, прокомментирован и готов к дальнейшему развитию.

7. Что предоставить по завершению:

1. Исходный код в репозитории Git (GitHub/GitLab).

2. README.md с инструкцией по установке зависимостей, настройке и запуску.

3. requirements.txt или pyproject.toml со всеми зависимостями.

4. Пример файла конфигурации .env.example или config.example.toml).

5. Краткий отчет о проведенной работе и тестировании.

---

Примечание для фрилансера: Пожалуйста, ознакомьтесь с исходным кодом и предоставьте оценку по времени и стоимости выполнения как обязательных, так и опциональных задач. Ваше предложение по архитектурным решениям приветствуется.

9 часов назад
Андрей
 
42 года
7 лет в сервисе
Был
9 часов назад

Заявки фрилансеров

Назар
 
33 года
3 года в сервисе
Был
5 часов назад
4 отзыва(-1)
9 часов назад
  • Похожие заказы

  • Разработайте простую программу для воспроизведения видео с интерфейсом. В папке находятся 5 видеофайлов, программа должна выводить 0.mp4 на репите. При нажатии кнопок 1-4 видео должно переключаться на соответствующие файлы и возвращаться к 0.mp4. Необходимо избежать моргания при переключении, реализовать на C++ или HTML. Файлы должны работать локально.

    Прикладное ПО1 исполнитель
    Закрыт
    7 часов назад
  • Необходима помощь в развертывании одного или нескольких зеркал основного сервера CS 1.6 с использованием MirrorsX или альтернатив. Задача включает подключение к мастер-серверу Steam, синхронизацию контента и состояния, настройку автозагрузки и защиту от дублирующих банов со стороны Valve.

    Прикладное ПОнет заявок
    Открыт
    14 часов назад
  • $1500

    Шукається Full-Stack розробник для створення системи збору та аналізу даних з камер у торгових точках на базі Raspberry Pi 4. Необхідно реалізувати прошивку на Python, налаштувати проміжний сервіс на Node.js або FastAPI, інтегрувати з AWS та розширити Laravel API. Досвід у GDPR буде плюсом. Загальний строк реалізації - близько 10 тижнів.

    Открыт
    4 дня назад
  • $50

    Требуется разработка чекера для проверки e-mail аккаунтов на сайте Ticketmaster. Алгоритм включает вход через логин и регистрацию, проверку наличия почты в БД и вывод результатов в два файла: 'есть в БД' и 'нет в БД'. Исходные данные - список e-mail в формате mail.txt.

    Открыт
    5 дней назад
  • Требуется разработка торгового бота, который будет выдавать сигналы по валютным парам на платформе Pocket Option. Бот должен анализировать рынок в реальном времени и генерировать сигналы на основе технического анализа с использованием индикаторов, таких как SuperTrend, RSI и другие. Необходимо учитывать волатильность и время торговых сессий, а также проверять регистрацию трейдеров по реферальной ссылке перед началом работы.

    Открыт
    5 дней назад
  • $1000

    Ищется опытный разработчик C/C++ с минимум 10-летним опытом для модификации синтаксиса компилятора FreeBASIC. Работа может быть разделена на этапы. Оплата возможна авансом или через безопасную сделку. Подробности обсуждаются в личной переписке.

    Открыт
    5 дней назад
  • $5500

    Требуется разработчик Chromium с опытом в JavaScript/TypeScript и C++. Проект включает модификацию Chromium для подмены отпечатков и совместимости с Windows, Linux, macOS. Необходимо создать библиотеку для генерации отпечатков, разрабатывать списки параметров и предоставлять инструкции по компиляции. Обязательны еженедельные отчёты и использование Git.

    Открыт
    6 дней назад
  • Требуется адаптация программы Winamp для работы на Windows 11 Pro, установленной на MacBook M1. Необходимо обеспечить поддержку Lyrics. Задача включает переписывание кода для совместимости с архитектурой M1.

    Открыт
    6 дней назад
  • Требуется разработать программное обеспечение для PUBG, которое будет включать множество функций и обеспечивать защиту от блокировок. Важно, чтобы софт работал стабильно и эффективно, не вызывая подозрений у системы безопасности игры.

    Прикладное ПОнет заявок
    Открыт
    6 дней назад