Разработайте простую программу для воспроизведения видео с интерфейсом. В папке находятся 5 видеофайлов, программа должна выводить 0.mp4 на репите. При нажатии кнопок 1-4 видео должно переключаться на соответствующие файлы и возвращаться к 0.mp4. Необходимо избежать моргания при переключении, реализовать на C++ или HTML. Файлы должны работать локально.
Модернизация бота для OKX спот-фьючерс арбитража
Техническое задание: Модернизация бота для 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. Краткий отчет о проведенной работе и тестировании.
---
Примечание для фрилансера: Пожалуйста, ознакомьтесь с исходным кодом и предоставьте оценку по времени и стоимости выполнения как обязательных, так и опциональных задач. Ваше предложение по архитектурным решениям приветствуется.
Заявки фрилансеров
Похожие заказы
- Прикладное ПО1 исполнительЗакрыт7 часов назад
Необходима помощь в развертывании одного или нескольких зеркал основного сервера CS 1.6 с использованием MirrorsX или альтернатив. Задача включает подключение к мастер-серверу Steam, синхронизацию контента и состояния, настройку автозагрузки и защиту от дублирующих банов со стороны Valve.
Прикладное ПОнет заявокОткрыт14 часов назад- $1500
Шукається Full-Stack розробник для створення системи збору та аналізу даних з камер у торгових точках на базі Raspberry Pi 4. Необхідно реалізувати прошивку на Python, налаштувати проміжний сервіс на Node.js або FastAPI, інтегрувати з AWS та розширити Laravel API. Досвід у GDPR буде плюсом. Загальний строк реалізації - близько 10 тижнів.
Прикладное ПО3 заявкиОткрыт4 дня назад - $50
Требуется разработка чекера для проверки e-mail аккаунтов на сайте Ticketmaster. Алгоритм включает вход через логин и регистрацию, проверку наличия почты в БД и вывод результатов в два файла: 'есть в БД' и 'нет в БД'. Исходные данные - список e-mail в формате mail.txt.
Прикладное ПО9 заявокОткрыт5 дней назад Требуется разработка торгового бота, который будет выдавать сигналы по валютным парам на платформе Pocket Option. Бот должен анализировать рынок в реальном времени и генерировать сигналы на основе технического анализа с использованием индикаторов, таких как SuperTrend, RSI и другие. Необходимо учитывать волатильность и время торговых сессий, а также проверять регистрацию трейдеров по реферальной ссылке перед началом работы.
Прикладное ПО4 заявкиОткрыт5 дней назад- $1000
Ищется опытный разработчик C/C++ с минимум 10-летним опытом для модификации синтаксиса компилятора FreeBASIC. Работа может быть разделена на этапы. Оплата возможна авансом или через безопасную сделку. Подробности обсуждаются в личной переписке.
Прикладное ПО3 заявкиОткрыт5 дней назад - $5500
Требуется разработчик Chromium с опытом в JavaScript/TypeScript и C++. Проект включает модификацию Chromium для подмены отпечатков и совместимости с Windows, Linux, macOS. Необходимо создать библиотеку для генерации отпечатков, разрабатывать списки параметров и предоставлять инструкции по компиляции. Обязательны еженедельные отчёты и использование Git.
Прикладное ПО6 заявокОткрыт6 дней назад Требуется адаптация программы Winamp для работы на Windows 11 Pro, установленной на MacBook M1. Необходимо обеспечить поддержку Lyrics. Задача включает переписывание кода для совместимости с архитектурой M1.
Прикладное ПО1 заявкаОткрыт6 дней назадТребуется разработать программное обеспечение для PUBG, которое будет включать множество функций и обеспечивать защиту от блокировок. Важно, чтобы софт работал стабильно и эффективно, не вызывая подозрений у системы безопасности игры.
Прикладное ПОнет заявокОткрыт6 дней назад