EN
Интерфейс: SimpleTradeBot — сеточный бот с открытым кодом
Панель управления: состояние бота, уровни сетки, заявки и лента событий.

Как устроено

Это сеточный алгоритм из моей торговой системы, вынесенный в отдельный открытый проект. Бот ведёт один инструмент — бессрочный контракт Bybit: строит от текущей цены лесенку лимитных заявок, на каждый залитый уровень ставит свой тейк-профит, а всю позицию держит под общим тейком, стоп-лоссом и трейлингом.

Базы данных нет: всё состояние живёт в памяти процесса. Это осознанное упрощение, а не недоделка — такой код читается подряд, без миграций, очередей и фоновых служб. Из него же следуют два правила: при запуске бот снимает свои прошлые заявки и не встаёт поверх позиции, которую открыл не он.

Заявки уходят на биржу по REST, состояния заявок и сделки приходят приватным сокетом, публичный поток сделок кормит стратегию. Перед каждым закрытием позиция сверяется с биржей: если там её уже нет, закрытие отменяется — иначе заявка не закрыла бы позицию, а открыла встречную.

Что умеет

  • Лесенка уровней от текущей цены: шаг в процентах или в тиках, прогрессия шага и объёма.
  • Свой тейк-профит на каждом залитом уровне — на этом сетка и зарабатывает в боковике.
  • Общий тейк-профит, стоп-лосс и трейлинг-стоп по всей позиции.
  • Ограничители: сколько заявок держать в рынке и какой объём позиции не превышать.
  • Веб-интерфейс: запуск, остановка, закрытие позиции, уровни сетки, заявки и лента событий.
  • Демо-торговля, testnet и реальный счёт переключаются одной настройкой.
  • Все параметры — в одном файле настроек, ключи — в переменных окружения.
  • 51 модульный тест на математику сетки, учёт позиции и весь торговый цикл.

Технологии

  • C#
  • .NET 9
  • ASP.NET Core
  • Bybit API V5
  • WebSocket
  • Docker
  • xUnit
  • GitHub Actions

Как поднять у себя

Шесть шагов от пустой папки до работающего бота. Все команды выполняются из корня проекта, если не сказано иначе.

Что понадобится

  • .NET 9 SDK или Docker
  • Аккаунт Bybit и ключ API с правом Trade
  • Любая система: Windows, macOS или Linux
  1. Скачать код

    git clone https://github.com/Snake0369/SimpleTradeBot.git

    Весь проект — четыре небольших сборки на C#. Ни базы данных, ни очередей, ни внешних служб ставить не нужно.

  2. Выпустить ключ на Bybit

    В разделе демо-торговли создайте ключ API с правом Trade. Демо-счёт идёт по настоящему рынку виртуальными деньгами — начинать стоит именно с него.

  3. Прописать ключ

    dotnet user-secrets set "Bybit:ApiKey" "ваш-ключ"

    Команда выполняется из папки src/SimpleTradeBot.Web; секрет задаётся так же, ключом Bybit:ApiSecret. В файл настроек ключи класть не нужно: он лежит в репозитории, а секрет туда попасть не должен. В Docker ключи передаются переменными окружения — образец в файле .env.example.

  4. Задать инструмент и сетку

    src/SimpleTradeBot.Web/appsettings.json

    Инструмент, направление, шаг сетки, число уровней, объём, тейк-профит, стоп-лосс и предел объёма позиции — всё в одном файле. Каждый параметр подписан в README проекта.

  5. Запустить

    dotnet run --project src/SimpleTradeBot.Web

    Интерфейс откроется на http://localhost:5080. В Docker то же самое: скопируйте .env.example в .env, впишите ключи и выполните docker compose up --build.

  6. Нажать «Запустить»

    Бот построит сетку от текущей цены и начнёт работу. Рядом две кнопки: «Закрыть позицию» перестраивает сетку от новой цены, «Остановить» снимает заявки и закрывает позицию по рынку.

Начинайте с демо-счёта. Бот ставит настоящие заявки, а настройки из примера — иллюстрация, а не рекомендация: шаг сетки, объём и предел позиции подбираются под инструмент и депозит. Торговля бессрочными контрактами связана с риском, и прошлые результаты ничего не обещают.

Весь код на GitHub

15 % за приведённого клиента

Знаете того, кому нужен бот? Приводите — плачу 15 % от суммы, которую он оплатил. По всем направлениям.

Как это работает

Есть идея или задача?

Расскажите о ней — обсудим, как её лучше решить.

Связаться