Скринер работает только с Binance Futures USDT-M PERPETUAL. Цель: быстро видеть ближайшие плотности по множеству символов с подсветкой «MM» — крупных уровней ликвидности.
Ключевые задачи:
minNotional, windowPct, depthLimit, symbols.score desc, distancePct asc, notional desc.isMM для крупных уровней.Что уже сделано:
/densities/simple работаетscore = log10(1 + notional) * exp(-d/0.45) * (isMM ? 1.8 : 1)futures-screener.szhub.spaceОсталось:
eatSpeedUSDTperSec, lifetimeSec, statescoreМы торгуем отскок, а не пробой!
Цена подходит к плотности → если плотность удерживается → ожидаем отскок.
Условия входа:
distanceFromPricePct < 0.3–0.5% — очень близко к ценеscore — сильный уровеньisMM = true — Market Maker уровеньeatSpeedUSDTperSec — уровень не "съедается" быстроlifetimeSec — уровень уже стоит какое-то времяВход: при касании или ложном проколе уровня
Подтверждение: замедление, тень, удержание
Стоп: чуть ниже плотности или % (0.3–0.5%)
Тейк: возврат к VWAP / середине диапазона (1:2 RR)
Зеркальная логика:
distanceFromPricePct < 0.3–0.5%scoreisMM = trueeatSpeedUSDTperSeclifetimeSecmarkPrice из /fapi/v1/premiumIndex./fapi/v1/depth?symbol=X&limit=depthLimit.notional = price * qty >= minNotionaldistancePct <= windowPct (от markPrice).baseAll = percentile(notionals, 70)filteredNotionals = [n for n in notionals if n <= baseAll * 2]finalBaseAll = percentile(filteredNotionals, 70)mm0 = finalBaseAll * mmSeedMultiplier (default 2.0)mmCandidates = levels.filter(notional >= mm0)mmBase = mmCandidates.length >= 3 ? percentile(mmCandidates.notionals, 50) : mm0isMM = notional >= mmBase * mmMultiplier (default 4)score = log10(1 + notional) * exp(-distancePct / 0.45) * (isMM ? 1.8 : 1)score rounded to 4 decimalsscore desc, distancePct asc, notional desc| Метрика | Описание | Почему важно |
|---|---|---|
distanceFromPricePct |
Расстояние от цены до уровня | Чем ближе — тем выше вероятность отскока |
notional |
Объём уровня (price * qty) | Чем больше — тем сильнее поддержка/сопротивление |
isMM |
Market Maker уровень | MM уровни чаще удерживаются |
eatSpeedUSDTperSec |
Скорость "поедания" уровня | Низкая скорость = устойчивость |
lifetimeSec |
Время существования уровня | Долго стоит = важный уровень |
state |
APPEARED / UPDATED / MOVED | MOVED — уровень передвигается, это слабость |
| Эндпоинт | Статус | Описание |
|---|---|---|
/health |
✅ | healthcheck |
/symbols |
✅ | список всех USDT-PERP символов |
/depth/:symbol |
✅ | стакан по символу |
/densities/simple |
✅ | плотности с score, isMM, top-N |
/_cache/stats |
✅ | статистика кэша (для отладки) |
eatSpeedUSDTperSec, lifetimeSec, statescore (минимальный порог)