Торговый терминал для Bybit с CLI интерфейсом. Архитектура клиент-сервер для минимальной задержки при работе с биржей.
- Размещение market/limit ордеров
- Расчёт размера позиции от риска в USDT
- Take Profit в процентах
- Trailing Stop с гибкой настройкой (абсолютные, проценты, ratio)
- Pipe оператор для комбо-команд (
:br 10 94000 | ts 2% 0.5%) - Цепочка команд через
; - Поддержка Hedge Mode (Long/Short позиции одновременно)
- Просмотр открытых ордеров и позиций
- Отмена ордеров
- Работа с несколькими символами
- Автообновление данных
- Rust 1.75+
- Docker (для сервера)
- Bybit API ключи
git clone <repo>
cd TradeTerminal
cp .env.example .envЗаполните .env:
BYBIT_API_KEY=your_api_key
BYBIT_API_SECRET=your_api_secret
BYBIT_TESTNET=true
Docker (рекомендуется для VPS):
docker-compose up -dЛокально:
source .env
cargo run --bin trade-serverexport SERVER_URL=ws://127.0.0.1:9000 # или ws://your-vps-ip:9000
cargo run --bin trade-client| Клавиша | Действие |
|---|---|
: |
Режим ввода команды |
Tab |
Переключение вкладок |
r |
Обновить данные |
Esc |
Выход из режима ввода |
q |
Выход |
Ctrl+C |
Принудительный выход |
Базовые ордера:
:buy 0.01 # Market buy 0.01 BTC
:buy 0.01 95000 # Limit buy @ 95000
:sell 0.01 # Market sell
:sell 0.01 96000 # Limit sell @ 96000
Ордера с расчётом риска:
:buyrisk 10 94000 # Long market, риск $10, SL @ 94000
:buyrisk 10 94000 95000 # Long limit @ 95000
:buyrisk 10 94000 - 2 # Long market + TP 2%
:sellrisk 10 96000 # Short market, риск $10, SL @ 96000
:sellrisk 10 96000 95000 # Short limit @ 95000
:sellrisk 10 96000 95000 1.5 # Short limit + TP 1.5%
Trailing Stop:
:ts 2% 0.5% # Активация +2%, callback 0.5%
:ts 97000 0.5% # Активация @ 97000, callback 0.5%
:ts 2% 500 # Активация +2%, callback $500
:ts 1/3 2% # Активация на ratio 1:3 от SL, callback 2%
Типы trigger для Trailing Stop:
- Абсолютная цена:
:ts 97000 500- активация на цене 97000 - Процент:
:ts 2% 0.5%- активация при росте на 2% - Соотношение (ratio):
:ts 1/3 2%- активация на расстоянии в 3 раза больше чем SL- Формула:
trigger = entry ± (|SL - entry| × denominator/numerator) - Пример: Вход 100, SL 101 (1%), ratio
1/3→ trigger 103 (в 3 раза дальше от входа чем SL) - Затем TS двигается на 2% от текущей цены
- Формула:
Типы callback для Trailing Stop:
- Абсолютное значение: callback в долларах (например, 500)
- Процент: callback в процентах от цены (например, 0.5%)
Комбо команды (pipe):
:br 10 94000 | ts 2% 0.5% # Long + trailing stop после входа
:sr 10 96000 | ts 2% 0.5% # Short + trailing stop после входа
Цепочка команд:
:ca; br 10 94000 # Отменить все + новый ордер
Управление:
:cancel abc123 # Отменить ордер
:cancelall # Отменить все ордера
:symbol ETHUSDT # Сменить символ
:help # Справка
График:
:chart # Открыть график
:tf 1s # Таймфрейм 1 секунда (tick aggregation)
:tf 5s # Таймфрейм 5 секунд (tick aggregation)
:tf 10s # Таймфрейм 10 секунд (tick aggregation)
:tf 30s # Таймфрейм 30 секунд (tick aggregation)
:tf 15 # Таймфрейм 15 минут
:tf 240 # Таймфрейм 4 часа
:tf D # Дневной таймфрейм
:level 95000 # Добавить уровень на 95000
:levels # Очистить все уровни
:sound # Вкл/выкл звук трейдов
Sub-second таймфреймы (1s, 5s, 10s, 30s):
- Используют реальные tick данные с биржи
- Агрегация происходит на клиенте
- Максимальная точность (реальные сделки)
- Нет дополнительной нагрузки на сервер
Навигация по графику:
| Клавиша | Действие |
|---|---|
h |
Прокрутка влево (назад) |
l |
Прокрутка вправо (вперёд) |
+ / = |
Увеличить масштаб |
- |
Уменьшить масштаб |
0 |
Сбросить (последние свечи) |
Звук трейдов: высокий тон — покупка, низкий — продажа. Частота повышается при увеличении активности.
Сокращения:
:b=:buy:s=:sell:br=:buyrisk:sr=:sellrisk:c=:cancel:ca=:cancelall:sym=:symbol:h=:help
Формула учитывает комиссию биржи:
quantity = risk_usdt / (|entry_price - sl_price| + entry_price * fee * 2)
- Taker fee: 0.055%
- Maker fee: 0.02%
- Комиссия умножается на 2 (вход + выход по SL)
Пример:
- Риск: $10
- Entry: 95000, SL: 94000
- Разница: $1000
- Fee cost: 95000 * 0.00055 * 2 = $104.5
- Total risk per unit: $1104.5
- Quantity: 10 / 1104.5 = 0.00905 BTC
- Установите Docker на VPS
- Скопируйте проект или соберите образ
- Создайте
.envс API ключами - Запустите:
docker-compose up -d - Подключите клиент:
SERVER_URL=ws://vps-ip:9000
Рекомендуется размещать VPS в том же регионе, где находятся серверы Bybit (Singapore, Tokyo).
MIT