← Back

Polymarket Screener — Спека v1

Новая вкладка "Screener" на дашборде Weather Bot Дата: 21 May 2026

Цель

Скринер всех рынков Polymarket — не только погода. Показывает где сейчас edge, объёмы, движение цен. Цель: находить выгодные ставки + основа для SaaS.

UI — Вкладка "Screener" (5-я табa)

Верхняя панель (KPI полоска скринера)

Метрика Описание
Total Markets Кол-во активных рынков
24h Volume Суммарный объём за 24ч
Top Mover Рынок с макс движением цены
Avg Spread Средний спред по топ-рынкам

Фильтры (toolbar)

Таблица рынков

Колонка Описание
Market Question (кликабельна → ссылка на Polymarket)
Category Тег категории (badge)
YES Price Текущая цена YES (цветовая шкала: зелёный >80c, красный <20c)
24h Change Изменение цены за 24ч (▲▼ + цвет)
Spread Best bid — best ask (узкий = ликвидный)
Volume 24h volume ($)
Liquidity Глубина orderbook top-5 levels ($)
End Date Когда рынок закрывается
Action Кнопка "Details" → раскрывает доп. инфо

Details Panel (раскрывается под строкой)

Backend — Новые API endpoints

GET /api/screener/markets

Query params:
  category: string (optional)
  min_volume: number (default 1000)
  min_price: number (default 0.05)
  max_price: number (default 0.95)
  sort: volume|change_24h|spread|liquidity (default: volume)
  search: string (optional)
  limit: number (default 50, max 200)

Response: {
  success: true,
  data: {
    markets: [{
      id, question, slug, category,
      yes_price, no_price,
      change_1h, change_6h, change_24h,
      spread, volume_24h, liquidity,
      end_date, event_slug, image_url
    }],
    meta: { total, fetched_at }
  }
}

GET /api/screener/market/:id/details

Response: {
  success: true,
  data: {
    orderbook: { bids: [...], asks: [...] },
    price_history: [{ t, p }],  // 7 дней, hourly
    related_markets: [...]
  }
}

GET /api/screener/stats

Response: {
  total_markets, total_volume_24h,
  top_mover: { question, change_pct },
  avg_spread,
  categories: [{ name, count, volume }]
}

Data Source — Gamma API

Все данные из бесплатного Gamma API (тот же что scanner.py уже использует):

GET https://gamma-api.polymarket.com/events
  ?active=true
  &closed=false
  &limit=50
  &offset=0
  &order=volume24hr
  &ascending=false

Маркеты из event → event.markets[]:

Кеш: SQLite таблица screener_cache, TTL 60 секунд. Фоновый скан каждые 2 минуты (APScheduler job, как weather scan).

Как это вписывается в существующий дашборд

Текущие табы: [Trade History] [Markets] [Performance] [Settings]
                                                          ↓
Новый:        [Trade History] [Markets] [Performance] [Screener] [Settings]

Архитектура (минимальная)

Новые файлы:
  screener.py          — Gamma API fetcher + cache (≤150 строк)
  static/js/screener.js — фронт логика вкладки (≤200 строк)

Правки:
  bot.py               — +3 endpoints, +1 scheduler job (~30 строк)
  static/index.html    — +tab button, +tab content section (~60 строк)
  static/css/style.css — +стили для screener (~40 строк)
  static/js/app.js     — +switchTab('screener') support (~10 строк)

Фазы разработки

Фаза 1 — MVP (2-3 часа)

Фаза 2 — Polish (2-3 часа)

Фаза 3 — SaaS Features (позже)

SaaS Монетизация

  1. Builder Fees — пользователи торгуют через наш интерфейс, мы берём 0.5-1%
  2. Подписка — бесплатно 10 рынков, $9.99/мес за полный доступ + алерты
  3. Verified Tier от Polymarket — еженедельные USDC награды за объём
  4. Referral — Polymarket referral program

Вопросы для обсуждения

  1. Начинаем с MVP (только таблица + фильтры) или сразу с details panel?
  2. Отдельный домен (screener.szhub.space) или оставляем на weather bot dashboard?
  3. Категории — парсить из тегов Gamma API или хардкодить основные?
  4. Rate limit Gamma API — сколько запросов/мин безопасно? (сейчас weather scanner ~10 req/5min)

📜 Git History

8fca132chore: initial commit — version control setup5 weeks ago
Show last diff
Loading...