Bot: analiza wielu par na Solanie + sygnał wejścia (top 10)

Specyfikacja funkcjonalna: skanowanie wielu rynków, ranking i generowanie sygnałów (z opcją egzekucji).

Cel

  • Monitoruje i analizuje dane z kilkudziesięciu par/rynków na Solanie.
  • Wylicza sygnał wejścia (long/short lub buy/sell) i wybiera ~10 najlepszych okazji.
  • Opcjonalnie automatycznie składa zlecenia (po dopracowaniu ryzyka).

Założenia / pytania decyzyjne ustalić na start

  1. Czy handlujemy SPOT czy PERPS?
    • SPOT: swap + ewentualnie limit (zależnie od venue).
    • PERPS: leverage, funding, osobne ryzyka i mechanika zleceń.
  2. Interwał i horyzont: skaner 5s / 30s / 1m? Sygnał intraday czy swing?
  3. Typy sygnałów: momentum, mean reversion, breakout, funding-arb, basis, orderflow.
  4. Ograniczenia: max dźwignia, max ekspozycja per rynek, max łączna ekspozycja, SL/TP.

Źródła danych (Solana)

  • RPC: stan kont, transakcje, price feeds, state orderbook/AMM (Helius/Alchemy/QuickNode).
  • Oracle: Pyth (ceny), Switchboard (alternatywnie).
  • Dane DEX:
    • AMM (Orca/Raydium): pool state, price, liquidity, tick.
    • Orderbook (Phoenix/OpenBook): book depth, spread, imbalance.
  • Dane PERPS:
    • Drift: mark price, oracle, funding, OI, pozycje, margin, perp state (SDK).

Architektura (proponowana)

  1. Universe (lista rynków)
    • Start: 30–80 rynków (top wolumen / top OI / ręcznie wybrane).
    • Aktualizacja listy raz dziennie lub co godzinę.
  2. Collector (pobieranie danych)
    • Polling (bez batch) + cache: ceny (Pyth/oracle), wolumen/OI/funding (perps), spread/depth (orderbook), liquidity/TVL (AMM).
    • Normalizacja do jednego formatu: timestamp, symbol/marketId, price, returns, vol, spread, depth, funding, OI, liquidity
  3. Feature engineering (cechy)
    • returns (1m/5m/15m), RSI, EMA cross, ATR/volatility,
    • orderbook imbalance, spread %, slippage estymowana dla rozmiaru pozycji,
    • perps: funding (aktualny + trend), basis, utilization, OI change.
  4. Scoring (ranking i selekcja top N)
    • wynik = f(signal_strength, liquidity_score, cost_score, risk_score)
    • filtr: minimalna płynność / maksymalny spread / maks. slippage
    • wybór: top 10 rynków do wejścia lub do obserwacji
  5. Execution (składanie zleceń) – dopiero po stabilizacji
    • tryb “paper” (log + symulacja) → tryb “live” (małe size)
    • risk manager przed wysłaniem:
      • max size per rynek
      • max łączna ekspozycja
      • cooldown, max liczba otwartych pozycji
      • warunki anulowania (np. slippage > X)
  6. Observability
    • logi sygnałów i decyzji
    • metryki: winrate, MDD, slippage, koszt fee, latency
    • alerty: RPC errors, divergence oracle/mark, brak danych

Jaki dApp jest najlepszy do bota?

To zależy, czy chcesz SPOT czy PERPS. Kryteria “najlepszy” dla bota:

  • stabilne API/SDK (TS/Python), dobre typy i przykłady,
  • zlecenia limit/market i sensowna płynność,
  • bezpieczny model kluczy (delegate / subaccount / ograniczenia),
  • koszty (fees, slippage) i ryzyka (leverage/funding).

Rekomendacja (PERPS, sygnały na 10 rynkach)

  • Drift jest najpraktyczniejszy, bo ma dojrzałe SDK (@drift-labs/sdk), workflow delegate i spójny system ryzyk (margin/health).
  • Jest to spójne z obecnym repozytorium (workflow Drift + delegate).

Rekomendacja (SPOT, egzekucja swapów)

  • Jupiter zwykle najlepiej nadaje się do wykonania swapów (routing, egzekucja, slippage).
  • Jeśli potrzebujesz limit orders na SPOT: Phoenix/OpenBook (większa złożoność: orderbook + cancel/replace).

Proponowany “hybrid”

  • Sygnał niezależny od venue (feature store + ranking).
  • SPOT: egzekucja przez Jupiter.
  • PERPS: egzekucja na Drift.
  • Dane: oracle + metryki DEX + metryki perps.

Minimalny MVP (1–2 tygodnie, bez live trading)

  1. Universe 30–50 rynków + konfiguracja w pliku.
  2. Collector: ceny + podstawowe metryki per rynek (wspólny format).
  3. Ranking: prosty score (momentum + liquidity − cost).
  4. Output co X sekund:
    • top 10 rynków
    • strona (long/short)
    • siła sygnału
    • est. slippage
    • uzasadnienie (cechy)
  5. Backtest “na sucho”: zapis sygnałów do CSV/JSONL, analiza w Pythonie.

Następne kroki

  1. Potwierdź: SPOT czy PERPS (czy oba)?
  2. Podaj listę par (albo kryterium wyboru).
  3. Potwierdź częstotliwość skanowania (np. 10s/30s/60s) i horyzont.
  4. Powiedz, czy bot ma tylko sygnalizować, czy też automatycznie tradować.