Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

TradeTerminal

Торговый терминал для 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 ключи

Быстрый старт

1. Клонирование и настройка

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

2. Запуск сервера

Docker (рекомендуется для VPS):

docker-compose up -d

Локально:

source .env
cargo run --bin trade-server

3. Запуск клиента

export 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

Деплой на VPS

  1. Установите Docker на VPS
  2. Скопируйте проект или соберите образ
  3. Создайте .env с API ключами
  4. Запустите: docker-compose up -d
  5. Подключите клиент: SERVER_URL=ws://vps-ip:9000

Рекомендуется размещать VPS в том же регионе, где находятся серверы Bybit (Singapore, Tokyo).

Лицензия

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages