Options Screener v2
Статус: ✅ Production
PM2: options-api-v2
Порт: 8080
URL: https://options.szhub.space
Путь: /home/app/antigravity/options-screener-v2
Stack
Node.js 18+, Express, SQLite + Prisma (dev.db)
React 18 + Vite + PWA (frontend)
WebSocket (ws), Web Push notifications
Nginx + Let's Encrypt SSL
Turborepo монорепо
Текущие модули анализа (8 шт)
Модуль
Что делает
unusualVolume
V/OI аномалии, whale tracking (severity LOW→EXTREME)
maxPain
Страйк где маркетмейкерам выгоднее, per expiry
ivAnalysis
IV Rank / Percentile (30-дневная история из DB)
ivSkew
25-delta put vs call IV — направление (bullish/bearish)
gammaPlay
ATM опционы у экспирации, высокий gamma
oiConcentration
Где сидят крупные позиции (top 20 страйков)
putCallRatio
P/C volume & OI — sentiment
strategies
4 комбо: Buy Call, Buy Put, Straddle, Strangle
Данные (каждые 5 мин)
Binance eAPI: все опционы 6 ассетов (BTC, ETH, SOL, DOGE, XRP, BNB)
Greeks: delta, gamma, theta, vega, markIV
Spot prices
ATM IV snapshots → SQLite (30 дней для IV Rank)
Доставка сигналов
REST API (14+ endpoints)
WebSocket (каналы: BTC, ETH, all, top-movers, unusual-volume)
Telegram alerts (confidence >= 75%)
PWA Web Push notifications
Дедупликация: 30 мин cooldown на одинаковые сигналы
API Endpoints
GET /health
GET /api/options — все опционы с Greeks, фильтры
GET /api/summary — count/volume по ассетам
GET /api/expiries — доступные экспирации
GET /api/top-movers — gainers & losers
GET /api/unusual-volume
GET /api/signals/unusual-volume
GET /api/signals/iv-analysis
GET /api/signals/max-pain
GET /api/signals/oi-concentration
GET /api/signals/put-call-ratio
GET /api/signals/iv-skew
GET /api/signals/gamma-play
GET /api/dashboard — агрегированные сигналы для фронта
🚀 Upgrade Plan (Apr 11, 2026)
Цель: Превратить скринер в полноценный инструмент для торговли опционами на Binance.
Rick — относительный новичок в опционах, поэтому после каждого шага: объяснение + проверка + сохранение.
Tier 1 — Быстрые улучшения (1-2 дня каждое)
1.1 🎯 Trade Signals с конкретными страйками ✅ (11 Apr 2026)
buildTradeRec() + buildComboTradeRec() — entry/breakeven/target/stop/maxloss/DTE/timeDecay
Frontend Trade Plan card с цветовой индикацией time decay risk
Guard: cap ±50% spot target, ±30% stop (защита альткоинов)
Коммит: d7e2b42 на ветке options-v2-upgrades
1.1b 🎯 Trade Recs для Gamma Play + Unusual Volume ✅ (11 Apr 2026)
Gamma Play: gamma scalp с premiumMoveFor1Pct, moneyness, Greeks footer
Unusual Volume: "follow the whale" с whale info (total premium, V/OI ratio)
Frontend: 🐋 whale badge, ⚡ gamma badge, Γ/Θ в footer
Коммит: 4889a02
1.2 📊 Options Chain View ✅ (11 Apr 2026)
Новый endpoint /api/chain?underlying=BTC&expiry=260424
Frontend: новый таб "Options Chain" с asset/expiry селекторами
Calls слева, Puts справа, Strike посередине — как на бирже
ATM auto-detect + auto-scroll, ITM/OTM цветовое кодирование
IV color (green=low, yellow=mid, red=high), 30s auto-refresh
Коммит: 3cdc155
1.3 💰 P&L Calculator ✅ (11 Apr 2026)
Модалка с inputs: Call/Put, Strike, Premium, Qty, Spot
Метрики: Breakeven, Max Loss, Total Cost
Payoff bar chart: зелёный=profit, красный=loss, текущий spot + breakeven подсвечены
Открывается из "Calc" кнопки на Trade Plan или floating 📊 кнопки
Prefill из trade signal data
Коммит: 764ee32
1.4 🐋 Whale Flow Feed ✅ (11 Apr 2026)
Endpoint /api/whale-flow?minPremium=5000&limit=50
Summary bar: Total Flow, Bullish/Bearish premium, Bull/Bear ratio
Size: 🐋 Whale ($100K+), 🦈 Large ($50K+), 🐟 Notable ($10K+)
Frontend: новый таб "🐋 Whale Flow" с asset/premium фильтрами
Sentiment, V/OI, IV, DTE в таблице
Коммит: 4515575
Tier 2 — Серьёзные улучшения (3-5 дней)
2.1 📈 IV Surface / Term Structure ✅ (11 Apr 2026)
Backend: /api/iv-surface?underlying=BTC&type=CALL — smiles, termStructure, shape
IV Smile: SVG overlay до 4 экспираций, spot line, цветовое кодирование
Term Structure: bar chart ATM IV по DTE, contango/backwardation detection
Фронтенд: новый таб "IV Surface" с asset/type/expiry фильтрами + объяснения
Коммит: c5b8314
2.2 ⚡ Faster Updates (30 сек) ✅ (11 Apr 2026)
Scheduler разделён на fast (30s) + slow (5min) циклы
Fast: prices/Greeks/WS broadcast | Slow: IV history/signals/alerts
Настраивается: FAST_REFRESH_MS / SLOW_REFRESH_MS
Коммит: 04f5515
2.3 🔔 Custom Alerts ✅ (11 Apr 2026)
Prisma: CustomAlert + AlertTrigger модели
CRUD API: 7 endpoints (list, metrics, create, update, toggle, delete, triggers)
Alert Checker: 10 метрик (IV Rank, P/C Ratio, Max Pain, Skew, Spot Price, etc.)
7 условий (gt, lt, gte, lte, eq, crosses_above, crosses_below)
Scheduler hook в slow cycle (5 мин), cooldown per alert
Telegram + Push delivery при срабатывании
Frontend: таб "Alerts" с формой создания/edit, toggle, trigger history
Коммиты: f8910e1
2.4 📉 Historical Signals Backtest ✅ (11 Apr 2026)
SignalLog модель: каждый сигнал логируется с spotAtSignal, direction, confidence
Outcome Tracker: заполняет spotAfter1h/4h/24h, считает directional P&L%
WIN/LOSS outcome по 24h alignment с направлением сигнала
API: /api/backtest/stats (WR%, avg P&L per strategy/underlying)
API: /api/backtest/signals (paginated log с фильтрами)
Dedup: один сигнал не логируется повторно в течение 6ч
Коммит: e12be00
Tier 3 — Автоторговля (1-2 недели)
Порядок выполнения
1.1 ✅ → 1.1b ✅ → 1.2 ✅ → 1.3 ✅ → 1.4 ✅ → 2.2 ✅ → 2.1 ✅ → 2.3 ✅ → 2.4 ✅
ВСЕ ТИРЫ ЗАВЕРШЕНЫ! 🎉 (11 Apr 2026, 1 сессия: 2.3→2.4→3.1→3.2)
Для торговли: поменять TRADING_ENABLED=true в .env и pm2 restart
2026-04-12 — Signal Reliability Overhaul + Backtest v2
Фиксы надёжности (5 шт):
OI Data: fetch /eapi/v1/openInterest per expiry (1488 symbols), merge в options
Liquidity gate: OI≥20 + spread≤15% (strategies, UV, gamma)
PCR по конкретному expiry (не cross-expiry avg)
Contradiction penalty: -15 conf при skew vs PCR conflict
Realistic TP: ITM 50%, ATM 80%, OTM 150%, Deep OTM 250%
Min confidence: 60%→75%
Gamma dedup: 1 сигнал на underlying+expiry+strike (убраны CALL+PUT дубли)
Outcome Tracker v2: delta × spotMove / premium × 100 (реальный option PnL)
Пересчитано 1937 сигналов
Buy Call: avg +4.7%/4h (WR 21%), Straddle/Strangle: +0.8-1.6%/4h (WR 100%)
Gamma: +0.3%/4h (55% WR), UV: +0.1%/4h (53% WR)
Прочее: Qty input fix (onBlur), PWA push resubscribe, direction inference в logger
TODO:
2026-04-13 — Signal Quality Overhaul
Descriptions: "Что → Почему → Действие" для всех 7 типов сигналов
Спот-анализ: EMA ↑↓→, change 1h/4h/24h во всех сигналах
Gamma Play: тренд-фильтр (-15 conf если против тренда, skip <70), theta $ warning
Push: actionable заголовки + контекст
Dashboard: spotTrends прокинут через fetchSpotTrends()
Коммит: e2929fc
2026-04-13 — Trading Stats + Trade Journal
TradeLog Prisma модель (15 полей: symbol, underlying, type, strike, expiry, side, qty, entry/exit price/time, pnl, roi, holdMinutes, source, status)
tradeLogger сервис: logTrade, logOpenTrade, closeTrade, getStats, getJournal, syncFromBinance
Sync: positions → userTrades per symbol → FIFO BUY↔SELL match → DB (dedup by tradeId)
API: GET /api/trading/stats, GET /api/trading/journal, POST /api/trading/sync
Frontend Compact Stats Bar: Total P&L, Win Rate, Trades W/L, Avg Win/Loss, PF, Best/Worst, Streaks, Avg Hold, period filter (7D/30D/ALL)
Frontend Trade Journal: таблица Date|Asset|Type|Strike|Entry|Exit|P&L|ROI%|Hold + Sync Binance кнопка
7 открытых позиций засинканы с Binance
Ветка: options-v2-upgrades (22+ коммитов)
Последний: trading stats + journal
TODO: Spot Analysis для сигналов (15 Apr 2026)
Все 5 считаются из тех же klines (0 лишних API запросов). По одному в день.
RSI — фильтр: не Buy Call при RSI>75, не Buy Put при RSI<25. Показ на карточке
ATR % — если спот вялый (ATR<0.5%), theta сожрёт опцион. Warning на карточке
Уровни поддержки/сопротивления — Call от поддержки, Put от сопротивления
Volume profile — рост на объёме vs пустой рост, подтверждение сигнала
Мини-график спота — sparkline SVG на карточке сигнала (визуальный контекст)
Цель: блок на карточке 📊 Спот: $1.37 (+0.14%/4ч) | EMA ↑ | RSI 58 | ATR 1.2%
Монетизация
2026-04-26 — Auto-Trading Gamma Play + Backtest Fix
Баг 100% WR: Math.abs(rawPct) для NEUTRAL direction (straddle/strangle) всегда давал положительный P&L → фейковый 100% WR. Исправлено: каждая нога считается отдельно (callDelta×spotMove - callPremium, putDelta×spotMove - putPremium). Пересчитано 112 сигналов → WR упал с 57% до 44%.
Auto-Trading Pipeline:
Сигнал → фильтры → BUY LIMIT → мониторинг fill → auto SELL LIMIT (TP)
Фильтры (backtest-validated): conf≥90, DTE≤1d, delta 0.3-0.7, dist<1%, cost $0.50-$3/$5, no counter-trend
TP: +100% от входа (клампится к maxPrice биржи)
TP room check : если maxPrice не позволяет ≥50% gain — сделка пропускается
Push уведомления: вход (🤖 AUTO), TP hit (✅ +N%), экспирация (⏰)
Source tagging: auto_gamma vs manual в журнале сделок
Config: AUTO_GAMMA_ENABLED=true в .env, 15+ env переменных для тюнинга
Коммит: e78fc62
Первая live сделка: SOL-260426-86-P (maxPrice issue → TP capped). Вторая: ETH-260426-2325-C entry=$3.20 TP=$5.80 (+100%) — полный TP room.
Заметки
11 Apr 2026: Аудит скринера + составлен Upgrade Plan (3 тира, 10 задач). Цель — торговать опционы на Binance с основаниями от скринера. Binance = American-style options (exercise любое время). Deribit недоступен (Канада заблокирована).