GoldBot Dashboard

GoldBot
Opis projektu

Algorytmiczny silnik tradingowy 24/7 dla XAU/USD (złoto). Live feed WebSocket z Finnhub, strategia EMA+RSI, dynamiczne zarządzanie ryzykiem oparte na ATR i terminal dashboard w czasie rzeczywistym. Wdrożony na Heroku.

Rola

Deweloper backendu i projektant algorytmów

Technologie

Node.js, Express, WebSocket, Finnhub API

Rezultat

Silnik tradingowy 24/7 wdrożony na Heroku

Wyzwanie

Cel: w pełni autonomiczny system tradingowy monitorujący ceny XAU/USD (złoto) w czasie rzeczywistym, stosujący logikę sygnałów algorytmicznych, zarządzający otwartymi pozycjami i działający bez przerwy bez ręcznej interwencji — przeżywający restarty serwera, zerwania sieci i okresy niskiej aktywności rynkowej.

Ograniczenia: bez uzależnienia od płatnych dostawców danych, bez gotowych bibliotek tradingowych typu czarna skrzynka. Każdy element algorytmu — generowanie sygnałów, wielkość pozycji, zarządzanie ryzykiem — musiał być transparentny, czytelny i łatwy do modyfikacji.

Rozwiązanie

Silnik to serwer Node.js/Express łączący się z WebSocket API Finnhub po live dane tickowe XAU/USD. Na każdym przychodzącym tiku cenowym system aktualizuje historię cen i przelicza pełny zestaw wskaźników.

Strategia tradingowa używa crossovera EMA(5/12) jako głównego generatora sygnałów — gdy szybkie EMA przecina się powyżej/poniżej wolnego EMA, wyzwala sygnał kandydujący. Sygnał jest następnie potwierdzany przez RSI(21): zatwierdzane są tylko sygnały, gdzie RSI wspiera kierunek (nie wykupienie/wyprzedanie przeciwko transakcji). Filtruje to znaczną część fałszywych sygnałów na niestabilnych rynkach.

Zarządzanie ryzykiem jest dynamiczne: ATR (Average True Range za 14 okresów) skaluje poziomy stop-loss i take-profit na podstawie bieżącej zmienności rynkowej. Spokojny rynek = ciaśniejsze stopy. Wysoka zmienność = szersze stopy. Logika wielkości pozycji zapobiega nadmiernemu zaangażowaniu.

Cała historia transakcji, otwarte pozycje i wskaźniki wydajności są zapisywane do pliku JSON — system kontynuuje dokładnie od miejsca, gdzie skończył po każdym restarcie. Przeglądarkowy terminal dashboard (vanilla JS, monospace, dark theme) pokazuje na żywo cenę, aktualny sygnał, P&L i pełny log transakcji w czasie rzeczywistym przez WebSocket push.