Portfolio
Case study · FinTech · Custom build

TradeSys —
algo trading platform

Własny projekt 2025–2026 Python + Docker + TimescaleDB

TradeSys to własna platforma do algo tradingu, którą buduję i doskonalę od ponad roku. Composite signals, backtesting, paper trading i automatyczne execution. Cały system oparty na własnym kodzie, bez zewnętrznych frameworków tradingowych.

01 — Brief

Własna platforma zamiast cudzego oprogramowania.

Punktem wyjścia było proste pytanie: dlaczego mam ufać backtest wynikowi z zewnętrznej platformy, skoro nie wiem jak dokładnie implementuje sygnały? Postanowiłem zbudować własne narzędzie od zera. Kontrola nad każdą linią kodu. Możliwość modyfikacji silnika sygnałów w 20 minut zamiast czekania na aktualizację platformy.

Wymagania, które postawiłem sobie sam: historyczne dane dla Forex i indeksów (XAUUSD, US30, XAGUSD), backtesting z realistycznym spread i slippage, composite signal engine (nie jeden wskaźnik, ale kilka filtrów razem), paper trading przed przejściem na real, eksport wyników do CSV/JSON do analizy.

Cel nie jest "get rich quick". Celem jest zrozumieć, jakie strategie mają statystyczną przewagę przy realistycznych założeniach, i zbudować system, który można odtwarzać i mierzyć.

02 — Proces

3 fazy: dane, sygnały, execution.

Faza 1: infrastruktura danych. TimescaleDB (PostgreSQL extension) do przechowywania szeregów czasowych OHLCV. Python scraper pobierający dane historyczne z Dukascopy (darmowe dane 1-minutowe do 2003). Normalizacja timestampów UTC, duplikat detection, auto-fill weekendowych przerw.

Faza 2: silnik sygnałów. Każdy sygnał to Python klasa z metodą generate(df) -> pd.Series. Composite signal łączy wagi z kilku sygnałów składowych. Backtesting engine symuluje realny spread (2.1 pips dla XAUUSD), slippage 0.5 pips, position sizing na bazie % konta.

Faza 3: paper trading i monitoring. FastAPI endpoint odbierający sygnały. Dashboard React z equity curve, drawdown wykresem, listą otwartych pozycji. Alerty przez Telegram bota gdy signal się wygeneruje lub pozycja zostaje zamknięta z SL/TP.

COMPOSITE SIGNAL v3
> RSI Filter (14): weight 0.35 — BUY if RSI < 35
> EMA Cross (20/50): weight 0.40 — BUY if 20 cross above 50
> Volume Spike: weight 0.25 — BUY if vol > 1.8x avg(20)
THRESHOLD: 0.65 → ENTRY
SL: 1.5x ATR(14) | TP: 2.5x ATR(14) [R:R 1:1.67]
03 — Decyzje techniczne

TimescaleDB zamiast flat CSV. FastAPI zamiast Celery.

TimescaleDB

PostgreSQL extension do time-series. Hypertables automatycznie partycjonują dane po czasie. Zapytania o rok danych 1-minutowych w <200ms.

Python + pandas

Cały silnik backtestingu i sygnałów w Python. Pandas do manipulacji OHLCV. Vectorized operations zamiast pętli — backtesting roku danych 1-minutowych w <3 sekundy.

Docker Compose

TimescaleDB + FastAPI + Redis + React dashboard w jednym docker-compose.yml. Jeden polecenie do uruchomienia całego środowiska. Przenośność między maszynami.

Composite signals

Jeden wskaźnik to za mało. System łączy filtry z wagami i generuje sygnał tylko gdy suma przekroczy threshold. Mniej fałszywych sygnałów, gorszy recall — świadomy trade-off.

React dashboard

Equity curve, drawdown chart, open positions, backtesting wyniki. Recharts do wykresów. Polling co 5s przez REST API — nie WebSocket, bo nie potrzeba ms latency dla paper trading.

Telegram bot

Alerty gdy sygnał aktywny lub pozycja zamknięta. python-telegram-bot library. Jeden plik bota, async handlers. Cały alert w 5 liniach kodu.

04 — Tech stack

Python-first. Dane blisko kodu. Zero vendor lock-in.

Python 3.12 pandas numpy FastAPI TimescaleDB PostgreSQL 16 React 18 Recharts Docker Compose Redis python-telegram-bot

TradeSys to projekt, który ciągle ewoluuje. Jestem na etapie optymalizacji parametrów composite signals dla różnych par i timeframe'ów. Każda zmiana jest logowana, wyniki backtestu zapisywane w bazie z pełnym parametryzacją — żeby móc wrócić do poprzedniej wersji i porównać.

05 — Wynik

Działający system. Pełna kontrola nad danymi i kodem.

3
Composite signals aktywne
5+
Par walutowych w backtest
1
Developer, cały system

TradeSys pokazuje, że można zbudować zaawansowany system tradingowy bez kupowania drogiego oprogramowania i bez polegania na cudzej implementacji wskaźników. Pełna kontrola nad danymi, sygnałami i logiką executiona.

Projekt jest też dowodem koncepcji dla klientów zainteresowanych podobnymi systemami w swoich firmach: zarządzanie ryzykiem, automatyczne triggery decyzyjne, dashboardy z realtime alertami. Stack jest przenośny i dostosowywalny do dowolnej branży.

Potrzebujesz custom systemu z automatyzacją?

Dashboardy, automatyczne alerty, integracje z danymi zewnętrznymi. Buduję systemy, które działają bez ciągłego nadzoru.

Omów projekt