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
-
Czy handlujemy SPOT czy PERPS?
- SPOT: swap + ewentualnie limit (zależnie od venue).
- PERPS: leverage, funding, osobne ryzyka i mechanika zleceń.
- Interwał i horyzont: skaner 5s / 30s / 1m? Sygnał intraday czy swing?
- Typy sygnałów: momentum, mean reversion, breakout, funding-arb, basis, orderflow.
- 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)
-
Universe (lista rynków)
- Start: 30–80 rynków (top wolumen / top OI / ręcznie wybrane).
- Aktualizacja listy raz dziennie lub co godzinę.
-
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
-
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.
-
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
-
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)
-
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)
- Universe 30–50 rynków + konfiguracja w pliku.
- Collector: ceny + podstawowe metryki per rynek (wspólny format).
- Ranking: prosty score (momentum + liquidity − cost).
-
Output co X sekund:
- top 10 rynków
- strona (long/short)
- siła sygnału
- est. slippage
- uzasadnienie (cechy)
- Backtest “na sucho”: zapis sygnałów do CSV/JSONL, analiza w Pythonie.
Następne kroki
- Potwierdź: SPOT czy PERPS (czy oba)?
- Podaj listę par (albo kryterium wyboru).
- Potwierdź częstotliwość skanowania (np. 10s/30s/60s) i horyzont.
- Powiedz, czy bot ma tylko sygnalizować, czy też automatycznie tradować.