1. Внимание! Большая часть работы готова, нужно только все собрать вместе!


    Существует готовый Python-код бота, который умеет:

    • Выполнять логику торговли (DCA, ReBuy, SL, Trailing и т.д.), написан с использованием библиотеки ccxt.

    • Работает «вживую» с реальными ордерами.

  2. Нужно развернуть многопользовательскую систему, где каждый пользователь в своём кабинете может:

    • Зарегистрировать/авторизоваться (логин и пароль).

    • Добавить/отредактировать свои API-ключи (Binance, KuCoin и т.д.).

    • Запустить «несколько экземпляров бота» (каждый с настройками: торговая пара, параметры SL/TP/DCA и пр.).

    • Отслеживать состояние бота(ботов): логи, статистику, открытые/закрытые сделки.

  3. Есть сервер на Ubuntu, где всё должно работать:

    • Планируется использовать Python (Django или другой веб-фреймворк на Python) для Личного кабинета.

    • Бэкэнд (бот) нужно интегрировать с веб-приложением (запуск/остановка/мониторинг).

    • Запуск «множества экземпляров» бота под одним сервером (или несколькими, если будет масштабирование).

  4. Требуется:

    • ТЗ для Python-бэкенд-разработчика, который доработает код бота, обеспечит возможность запускать несколько экземпляров, хранить их настройки, логику взаимодействия с базой.

    • ТЗ для веб-разработчика (Django + Frontend), который создаст личный кабинет, авторизацию и привяжет к боту (через REST API, Celery, системные процессы или иные механизмы).


2. Техническое задание (черновой вариант)

2.1. Python-бэкенд-разработчик

Задачи:

  1. Доработать код существующего бота:

    • Разделить «бэктестовую» часть и «онлайн-часть» (реальные ордера).

    • Уточнить, где и как хранить конфигурацию торговых параметров (SL/TP/Trailing, период ожидания и т.п.).

    • Добавить (или адаптировать) функционал для работы с различными API-ключами — чтобы бот мог обращаться к разным аккаунтам на биржах (Binance, KuCoin и пр.).

    • Оптимизировать работу с ccxt (Rate Limit, повторные попытки при ошибках и т.д.).

  2. Сделать архитектуру, позволяющую запускать несколько экземпляров бота:

    • Проработать, как именно будет запускаться бот:

      • как отдельный процесс/сервис (например, через Celery, systemd или Supervisor),

      • или многопоточность/мультипроцессность в рамках одного приложения Python.

    • Обеспечить независимость параметров (API-ключи, настройки) для каждого экземпляра.

    • Прописать методы (или API) для запуска, остановки и мониторинга каждого экземпляра.

  3. Интеграция с базой данных:

    • Определить структуру таблиц в СУБД (например, PostgreSQL):

      • users (пользователи),

      • bots (экземпляры бота с полями: пользователь, настройки, статус, PID/идентификатор и т.д.),

      • bot_logs (логи или результаты/сделки).

    • Предусмотреть хранение в таблицах основных метрик/статусов: время запуска, текущий баланс, торговая пара и т.д.

    • При необходимости обеспечивать сохранение логов в текстовые файлы + сохранение ссылок на них в БД или S3.

  4. API или сервисный модуль (для веб-приложения):

    • Создать методы/функции, которые позволят Django-приложению «вызывать» действия бота: start_bot(...), stop_bot(...), get_bot_status(...) и т.п.

    • Возвращать информацию о текущих сделках, ордерах, ошибках.

    • Формат взаимодействия: REST (JSON), gRPC или вызов Python-функций напрямую (зависит от архитектуры).

  5. Безопасность и обработка ошибок:

    • Аутентификация/авторизация (каждый бот привязан к конкретному пользователю).

    • Обработка ошибок при подключении к бирже (например, неверные API-ключи).

    • Логи (в том числе исключений/ошибок) + документация, где смотреть эти логи.


2.2. Веб-разработчик (Django + Frontend)

Задачи:

  1. Создать личные кабинеты:

    • Регистрация/авторизация пользователей (e-mail + пароль или другое).

    • Раздел «профиль» (добавление/редактирование API-ключей).

    • Технически, Django предоставляет встроенную систему auth, можно расширить её модель User.

  2. Интерфейс управления ботами:

    • Страница «Мои боты»: список всех экземпляров (название, статус, торговая пара).

    • Кнопка «Создать бота» (открывается форма ввода параметров: торговая пара, SL, TP, DCA и т.д.).

    • Кнопка «Запустить» / «Остановить» и ручные действия (пр. «Закрыть все позиции»), если это предусмотрено логикой бота.

    • Отображение логов и статистики по конкретному боту (PNL, дата запуска, время последнего действия).

  3. Интеграция с бэкендом (ботом):

    • Вызывать методы API (или Python-функции), предоставленные Python-бэкенд-разработчиком:

      • POST /api/bots/start — запуск

      • POST /api/bots/stop — остановка

      • GET /api/bots/<bot_id>/status — получение статуса

      • и т.д.

    • Принимать ответы (JSON) и обновлять интерфейс (через Ajax, fetch, axios, или штатные средства Django).

    • Обрабатывать возможные ошибки (неправильные ключи, нет ответа от биржи).

  4. Frontend-часть:

    • Сделать адаптивный дизайн (под десктоп и мобайл) — хотя бы базовый.

    • Использовать Django Templates или «современный» фреймворк (React/Vue) в связке с Django Rest Framework — по согласованию.

    • Если нужно графически отображать результаты, удобнее использовать готовые JS-библиотеки для графиков (Chart.js, Highcharts и т.д.).

  5. Безопасность и хранение ключей:

    • Веб-приложение должно передавать и хранить API-ключи безопасно. Как минимум — шифровать пароли в базе, не хранить ключи в виде открытого текста.

    • Настроить HTTPS (SSL-сертификат).

    • Возможно, 2FA (двухфакторная аутентификация) в будущем, если требуется повышенная безопасность.

  6. Структура БД:

    • Модель User (возможно, расширенная).

    • Модель BotInstance (поля: owner (User), status, параметры, дата запуска, PID и т.д.).

    • Модель BotLog или хранение логов в файлах (по согласованию).

  7. Развёртывание:

    • Запуск Django-приложения под gunicorn / uwsgi.

    • Настройка Nginx в качестве reverse proxy.

    • Подготовить документацию, как развернуть на Ubuntu.

      Внимание! Большая часть работы готова, нужно только все собрать вместе!

3 месяца назад
defendermd
47 лет
11 лет в сервисе
Был
3 месяца назад

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

Макар
 
15 лет
3 месяца в сервисе
Был
2 месяца назад
3 месяца назад
Назарій
 
20 лет
год в сервисе
Был
21 день назад
2 отзыва
3 месяца назад
Марк
 
39 лет
2 года в сервисе
Был
день назад
3 месяца назад
Андрей
 
22 года
3 года в сервисе
Был
месяц назад
2 отзыва
3 месяца назад
Максим
 
35 лет
9 месяцев в сервисе
Был
13 часов назад
1 отзыв
3 месяца назад
Сергей
 
40 лет
5 лет в сервисе
Был
21 час назад
1 отзыв
3 месяца назад
Адиль
 
25 лет
3 месяца в сервисе
Был
20 часов назад
3 месяца назад
Андрей
 
39 лет
19 лет в сервисе
Был
7 часов назад
46 отзывов
3 месяца назад
ТОП-5
Веб-программирование
Осман
 
28 лет
2 года в сервисе
Был
2 дня назад
1 отзыв(-1)
3 месяца назад
Денис
 
35 лет
9 лет в сервисе
Был
28 минут назад
15 отзывов(-1)
3 месяца назад
Максим
 
26 лет
6 лет в сервисе
Был
9 дней назад
38 отзывов(-3)
3 месяца назад