Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
**/__pycache__/
100 changes: 100 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Order Book Density Scanner

Сканер крупных плотностей в стакане заявок криптобирж. Анализирует спотовые и бессрочные фьючерсные рынки на нескольких биржах и выводит результаты в веб-интерфейс.

## Поддерживаемые биржи

| Биржа | Спот | Фьючерсы |
|-------|------|----------|
| Gate.io | ✅ | ✅ |
| Bybit | ✅ | ✅ |
| MEXC | ✅ | ✅ |
| KuCoin | ✅ | ✅ |
| OKX | ✅ | ✅ |
| Bitget | ✅ | ✅ |
| HyperLiquid | ❌ | ✅ |

## Возможности

- Сканирование стакана заявок на 7 биржах (спот + фьючерсы)
- Поиск уровней с крупным объёмом (плотностей / стенок)
- Настраиваемые фильтры:
- Минимальный объём торгов 24ч (отдельно для спота и фьючерсов)
- Дальность до плотности от текущей цены (%)
- Минимальный объём плотности (USD)
- Включение/выключение бирж
- Включение/выключение типов рынка (спот/фьючерсы)
- Избранные монеты с приоритетным сканированием
- Сортировка и поиск по результатам
- Адаптивный тёмный интерфейс

## Запуск

### Требования

- Python 3.11+

### Установка

```bash
pip install -r requirements.txt
```

### Запуск сервера

```bash
uvicorn app.main:app --host 0.0.0.0 --port 8000
```

Откройте http://localhost:8000 в браузере.

## API

| Метод | URL | Описание |
|-------|-----|----------|
| GET | `/api/exchanges` | Список доступных бирж |
| POST | `/api/scan` | Запуск сканирования с настройками |
| GET | `/api/status` | Статус сканера |
| GET | `/api/results` | Последние результаты |

### Пример запроса сканирования

```json
POST /api/scan
{
"min_volume_spot": 100000,
"min_volume_futures": 100000,
"max_distance_pct": 5.0,
"min_density_usd": 50000,
"enabled_exchanges": ["bybit", "okx", "binance"],
"market_types": ["spot", "futures"],
"favorites": ["BTC", "ETH"],
"max_symbols_per_exchange": 50
}
```

## Архитектура

```
app/
├── main.py # FastAPI приложение, маршруты
├── scanner.py # Логика сканирования стакана
├── models.py # Pydantic модели данных
└── exchanges/
└── __init__.py # Менеджер подключений к биржам (ccxt)
static/
├── index.html # Главная страница
├── css/style.css # Стили (тёмная тема)
└── js/app.js # Логика фронтенда
```

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

1. При нажатии кнопки "Сканировать" фронтенд отправляет POST-запрос с настройками
2. Бэкенд для каждой включённой биржи:
- Загружает список торговых пар
- Фильтрует по 24ч объёму торгов
- Запрашивает стакан заявок для отфильтрованных пар
- Анализирует каждый уровень на предмет крупного объёма
3. Результаты сортируются по объёму и отображаются в таблице
4. Пользователь может фильтровать, сортировать и добавлять в избранное
Empty file added app/__init__.py
Empty file.
Loading
Loading