BackPack + Paradex. Автоматизация дельта-нейтральной торговли
- Гайд по Backpack-Paradex Delta neutral bot
- Гайд по Paradex Delta Neutral Bot
- Заказать VPS сервер на Xorek.cloud
- Прокси от Travchis (добавили много новых регионов + по ссылке скидка 10%) и Nodemaven (коды BIT50 - на 50% скидку / BF80 - на +80% трафика в любой пакет)
- Терминал MobaXTerm для работы в Linux
- Регистрация в Paradex и BackPack
Backpack-Paradex Delta neutral bot
Этот софт мы рассмотрим детально в этом гайде, но также можете воспользоваться оригинальным гайдом автора
Софт предназначен для создания параллельных сделок между Paradex и Backpack с поддержкой многопоточности. Можно указать несколько аккаунтов (например, 5 Paradex и 5 Backpack), после чего сделки будут последовательно открываться на всех аккаунтах. Пример: BTC Long 1000$ на Paradex и BTC Short 1000$ на Backpack.
Софт отслеживает LTV для каждой сделки. Если LTV превышает значение из конфигурации, соответствующий поток останавливается. Останавливается только один поток, остальные продолжают работать.
Paradex Delta Neutral Bot
Этот софт мы рассмотрим детально в этом гайде
Этот софт предназначен для открытия нейтральных позиций на множестве аккаунтов Paradex. Например, когда 3 аккаунта открыты в лонг и 4 в шорт, общий баланс токенов остаётся нулевым, что создаёт нейтральную позицию. Количество лонг и шорт аккаунтов всегда одинаково или отличается максимум на один, однако объёмы токенов на каждом аккаунте могут различаться.
Бот автоматически анализирует LTV после открытия позиций. При необходимости он закрывает нейтральные позиции и останавливает процесс, предоставляя пользователю возможность корректировать маржу на аккаунтах перед продолжением.
Подготовка инфрастуктуры
Для работы нам потребуется VPS сервер с 2 или 4 vCPU. Можно брать и более слабые, но у меня после суток работы софта CPU полностью забивался. Я беру серверы на Хорьке, сейчас они добавили возможность ежедневной оплаты, поэтому удобно все протестировать перед долгосрочным запуском
Выбираем системы Ubuntu 20.04 и, при необходимости, отключаем автоматическое продление
После оплаты и установки, копируем IP адрес сервера, проваливаемся в параметры и копируем Пароль для входа
Переходим в Mobaxterm терминал, создаем новую сессиию Session >> SSH >> в Remote host указываем выданный IP адрес, ставим галочку у Specify username и пишем root в соседнем поле. Нажимаем OK и наша сессия отобразится в левой части терминала.
В созданной сессии нужно вставить пароль. Для этого копируем его, а в терминале вставляем нажатием Правой Кнопки Мыши и нажимаем Enter
Если все успешно, увидите основную рабочую область
Устанавливаем Python и Pip
Вводим поочередно следующие команды
1. Обновляем список пакетов.
Запустится процесс установки, ждем окончания.
sudo apt update && sudo apt upgrade -y
2. Добавляем репозиторий deadsnakes
sudo apt install software-properties-common -y sudo add-apt-repository ppa:deadsnakes/ppa -y sudo apt update
3. Установите Python 3.10.
Запустится процесс установки, ждем окончания.
sudo apt install python3.10 python3.10-venv python3.10-dev -y
4. Проверьте установленную версию
Результат покажет вашу установленную версию
python3.10 --version
5. Сделайте Python 3.10 версией по умолчанию
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
6. Устанавливаем pip - инструмент управления пакетами
Запустится процесс установки, ждем окончания.
sudo apt install python3-pip -y
7. На всякий случай вручную обновляем версию pip
Отобразится установленная версия pip
python3 -m pip install --upgrade pip setuptools wheel python3 -m ensurepip --upgrade python3 -m pip install --upgrade pip pip3 --version
Собираем ключи и необходимые данные с бирж
Proxy: потребуются в формате: ProxyIP:ProxyPort:ProxyLog:ProxyPwd
Переходи в раздел с API ключами. Создаем новый API и сохраняем API Key и API Secret. Также не забудь пополнить аккаунт в USDC на комфортную сумму
Копируем и сохраняем свой Paradex Address и Paradex Private Key (не путать со своим EVM кошельком, через который вы пополняете средства на биржу)
Также не забудьте пополнить биржевой кошелек
Устанавливаем софты
Можете ставить по оригинальным гайдам автора (в закрепе), но сначала надо внимательно изучить Paradex Delta Neutral Bot, а потом уже Paradex + Backpack Delta Neutral Bot [2]
В этом гайде я в большей части все продублирую и оформлю в едином хронологическом порядке запуск самого актуального Paradex + Backpack Delta Neutral Bot [2]. После этого вы без труда запустите софт и только под Paradex если актуально.
1. Заходим в наш терминал и качаем репозиторий: git clone https://github.com/Pastfin/Paradex-Backpack-delta-neutral-bot
После скачивания, в терминале увидим созданную одноименную папку (возможно придется перезайти в сессию)
Проваливаемся в папку Paradex-Backpack-delta-neutral-bot >> data и далее поочереди будем редактировать файлы с настройками
Excel файл, который содержит ваши аккаунты Backpack. Обязательные колонки к заполнению: api_key
, api_secret
, proxy
, is_active
. Остальные колонки софт будет заполнять автоматически!
proxy - требуется обязательно, в формате: ProxyIP:ProxyPort:ProxyLog:ProxyPwd is_active - формат должен быть записан как булевое значение. Если английская версия Excel, то TRUE или FALSE. Если русская версия, то ИСТИНА или ЛОЖЬ. Этот параметр отвечает за то, будет ли данный аккаунт взят в работу или нет.
После заполнения сохраняем (нажимаем CTRL+S) и подтверждаем Yes to all
Excel файл, который содержит ваши аккаунты Paradex. Обязательные колонки к заполнению: private_key, address, proxy, is_active. Остальные колонки софт будет заполнять автоматически!
Эксель файл с торговыми парами. Вам необходимо просто оставить нужные пары, которые будут случайным образом выбираться и торговаться. Ненужные пары просто удаляем. Для удобства анализа и выбора сделана колонка Tier, которая классифицирует торговые пары в зависимости от торгового объема за последние 24 часа.
После удаления ненужных пар, файл примерно будет выглядеть так
Средний объём позиции, открываемой одним аккаунтом. Например, если у вас 5 аккаунтов и указаны значения min = 200 USD
и max = 300 USD
, то могут быть выбраны 2 аккаунта с лонг-позициями по 300 USD и 3 аккаунта с шорт-позициями по 200 USD. Важно учитывать, что софт использует случайные значения в этом диапазоне, поэтому суммы не обязательно будут круглыми и могут быть меньше минимального значения, указанного в конфиге.
Продолжительность одной позиции в минутах. Paradex начисляет больше очков за более продолжительное удержание позиций. Например, если ты фармишь на протяжении 12-16 часов
, то указываешь диапазон 720 - 960 минут
.
delay_between_trading_cycles_min
Время (в минутах), которое должно пройти перед началом нового торгового цикла с нейтральными позициями.
delay_between_opening_orders_sec
Задержка (в секундах) между открытием отдельных ордеров в одном нейтральном цикле. Например, если используется 5 аккаунтов
, то бот сначала открывает лонг на одном аккаунте, ждёт указанное время, затем открывает шорт и так далее.
Частота проверки LTV сделки (в секундах). Софт берёт актуальную цену токена с Paradex и сравнивает её с ценой ликвидации для определения уровня риска.
Ограничение на максимальное используемое плечо. Например, при max_leverage = 2
и балансе на аккаунте 200 USD
, максимальная позиция будет 400 USD
. Реальный размер позиции определяется параметром order_value_usd
, а этот параметр используется только для предотвращения превышения допустимого плеча.
То есть, если у вас на аккаунте 200 USD
, но вы хотите открывать позы с плечом, то регулируйте это путем настройки order_value_usd
, например 400 - 800 USD, а в max_leverage
для подстраховки ставьте например х5 (200 USD на балансе и х5 не дадут открыть позицию выше чем на 1000 USD и максимальное используемое плечо будет х5)
Порог LTV, который софт мониторит на протяжении сделок. Проверка выполняется каждые ltv_checks_sec
. Если хотя бы на одном аккаунте достигается критический уровень LTV, бот закрывает все нейтральные позиции и завершает работу, чтобы пользователь мог скорректировать маржу.
LTV рассчитывается на основе текущей рыночной цены и цены ликвидации для каждой активной позиции. Информация о цене ликвидации записывается в момент открытия позиции и после данные не обновляются. То есть если капает фандинг, информация о цене ликвидации обновляться не будет.
- Если позиция в
SELL
, LTV вычисляется какcurrent_price / liq_price * 100
. - Если позиция в
BUY
, LTV вычисляется какliq_price / current_price * 100
.
Показатель случайности распределения позиций. Чем выше значение, тем больше разница в размерах позиций.
- Пример: Если
orders_distribution_noise = 0
, то распределение будет равномерным (1, 1, 1
для лонга и шорта). - Если
orders_distribution_noise = 0.15
, распределение будет более случайным (0.9, 0.8, 1.3
).
Этот параметр можно не изменять, если тебя устраивает равномерное распределение.
Максимальное количество попыток выполнения одного действия в случае неудачи. Например, если сделка не открылась или не закрылась с первого раза, софт предпримет дополнительные попытки в пределах указанного числа.
"INFO"
— стандартный режим использования."DEBUG"
— детализированный режим для отладки, когда возникают проблемы с кодом. Логи на уровнеDEBUG
записываются в потенциально проблемных участках кода для упрощения поиска ошибок.
Запускаем софт
Создать сессию: screen -S <имя сессии> просмотреть активные сессии screen -ls перейти в сессию screen -r <имя сессии> выйти из сессии не закрывая запущенные в ней процессы CTRL+A+D удалить конкретную сессию screen -X -S 12345 quit где 12345-номер (id) сессии удалить все сессии pkill screen
После настройки и сохранении всех файлов, возвращаемся в терминал и создаем Screen сессию с названием trade (можете использовать любое)
screen -S trade
теперь переходим в папку с нашим софтом
cd /root/Paradex-Backpack-delta-neutral-bot/
устанавливаем зависимости и библиотеки
pip3 install -r requirements.txt
Если произошла ошибка с установлением из requirements, то попробуйте выйти из сессии (CTRL+A+D) и переустановить pip: (или скопируйте ошибку в ChatGPT и следуйте рекомендациям) apt remove --purge python3-pip -y rm -rf /usr/lib/python3/dist-packages/pip rm -rf /usr/lib/python3.10/dist-packages/pip python3 -m ensurepip --upgrade python3 -m pip install --upgrade pip
После установки requirements будет примерно следующее:
python3 main.py
Выбираем стрелками нужный режим:
Start trading
Открывает позиции на указанных аккаунтах. Перед открытием проверяется, что на аккаунте нет активных позиций — если позиция уже открыта, софт завершает работу. На одном аккаунте может быть только одна активная позиция одновременно.
Fetch market data and update active trading pairs (data/active_pairs.xlsx)
Перезаписывает файл data/active_pairs.xlsx
и технический файл data/pairs.json
. Обновляет все расчётные колонки, чтобы пользователь мог выбрать подходящие торговые пары для дальнейшей работы.
Update account balances and check for open positions (data/accounts.xlsx)
Обновляет текущий баланс аккаунтов и фиксирует информацию о любых открытых позициях. Результаты записываются в файл data/accounts.xlsx
.
Close all currently open positions
Закрывает все активные позиции на всех аккаунтах.
Если все успешно, то ордера создадутся, софт встанет в режим мониторинга LTV и будет работать по заданным настройкам.
Проверяем в логах и на сайтах бирж вручную, что нет никаких проблем и сделки открыты.
Если выдаст ошибку, то остановить процесс можно через CTRL+C. Анализируем ошибка по логам, исправляем и запускаем заного.
Если позиции открылись, то можно их все закрыть через меню 4.Close all currently open positions.