Bot tradingowy na Twoim laptopie to zły pomysł z jednego nudnego powodu: Twój laptop nie jest online 24/7, a rynki są. Zamknij klapę w środku transakcji, a bot przestaje zarządzać otwartą pozycją. Freqtrade — popularny open-source'owy bot tradingowy w Pythonie — jest zbudowany, by działać bez nadzoru, co jest dokładnie tym, do czego służy mały VPS. Oto czego faktycznie potrzebuje, jak go skonfigurować z Dockerem i uczciwe granice, o których nikt nie wspomina, aż na nie trafisz.
Dlaczego serwer, a nie Twoja maszyna
Dwa powody, oba praktyczne:
- Dostępność. Bot musi obserwować rynek i zarządzać pozycjami całą dobę. Za każdym razem, gdy Twój laptop zasypia lub restartuje się, bot jest ślepy — przegapione wejście albo, gorzej, otwarta pozycja, której nikt nie pilnuje.
- Latencja i stabilność. VPS siedzi na połączeniu centrum danych ze stałą trasą do giełdy. Domowy jitter wifi i resety NAT nie pomagają botowi reagującemu na cenę.
To ta sama logika za uruchamianiem dowolnego bota tradingowego na VPS — Freqtrade po prostu konkretyzuje wymagania.
Czego faktycznie potrzebuje
Sam Freqtrade jest lekki, ale bądź realistą co do obciążenia:
- Bot na żywo / dry-run: 2 GB RAM to wygodna dolna granica. Obraz Docker, garstka par, wskaźniki i baza transakcji SQLite chcą trochę zapasu. Micro za 5 $ (2 vCPU / 2 GB / 25 GB) to właściwy punkt startu. 1 GB może uruchomić pojedynczą prostą strategię na kilku parach, ale jesteś bliżej krawędzi.
- Wiele par / wiele strategii: przejdź na Small za 8 $ (4 vCPU / 4 GB / 35 GB) — więcej par oznacza więcej równoczesnego liczenia wskaźników i większy dataframe w pamięci.
- Dysk: skromny. Obraz, Twój
user_datai baza transakcji mieszczą się spokojnie w 25 GB. Pobrane dane historyczne do backtestingu to jedyna rzecz, która rośnie — a to głównie żyje na Twojej lokalnej maszynie (zobacz niżej).
Skonfiguruj z Docker Compose
Docker to utrzymywany, najmniej bolesny sposób na uruchomienie Freqtrade. Na świeżej maszynie:
sudo apt update && sudo apt install -y docker.io docker-compose-v2
mkdir ~/ft && cd ~/ft
docker run --rm -v "$(pwd)/user_data:/freqtrade/user_data" \
freqtradeorg/freqtrade:stable create-userdir --userdir user_data
Pobierz oficjalny plik compose i utwórz konfigurację interaktywnie (zapyta o Twoją giełdę, stawkę i dry-run):
curl -s https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml -o docker-compose.yml
docker compose run --rm freqtrade new-config --config user_data/config.json
Najpierw dry-run — zawsze
Nigdy nie kieruj świeżej strategii na prawdziwe pieniądze. Freqtrade domyślnie ustawia dry-run (handel papierowy) i powinieneś go tam zostawić, aż strategia udowodni się na żywych danych rynkowych przez jakiś czas. W config.json:
{
"dry_run": true,
"dry_run_wallet": 1000
}
Uruchom go i obserwuj:
docker compose up -d
docker compose logs -f
Polityka restart: unless-stopped w pliku compose to Twój odpowiednik systemd tutaj — Docker przywraca bota po awarii lub restarcie serwera, bez ręcznego kroku. (Jeśli wolisz uruchamiać go poza Dockerem, jednostka systemd z Restart=always robi to samo — ta sama zasada co utrzymywanie dowolnego bota przy życiu.)
Klucze API giełdy — część, która gryzie ludzi
Tu konfiguracja tradingowa idzie źle i drogo. Dwie zasady, nienegocjowalne:
- Tylko uprawnienie handlu. Nigdy nie włączaj wypłaty. Jeśli klucz wycieknie, najgorszym przypadkiem są niechciane transakcje — nie Twoje środki wychodzące za drzwi. Freqtrade nigdy nie potrzebuje dostępu do wypłaty.
- Wpisz klucz na białą listę IP. Większość giełd pozwala związać klucz API z konkretnymi IP. To konkretny powód, by uruchamiać na planie z dedykowanym IP: klucz działa tylko z stałego adresu Twojego serwera. Na planie NAT bot współdzieli wychodzące IP węzła, które nie jest tylko Twoje — w porządku, by bot działał, ale nie możesz go czysto wpisać na białą listę.
Trzymaj klucze w config.json, ustaw plik nieczytelny dla całego świata (chmod 600) i uruchamiaj kontener jako użytkownik inny niż root. I najpierw zablokuj maszynę — lista kontrolna bezpieczeństwa nowego VPS zajmuje dziesięć minut i zamyka drzwi, które mają znaczenie.
Twórz kopię user_data
Twoje strategie, konfiguracja i historia transakcji żyją w user_data. To rzecz, której nie chcesz stracić:
tar czf ft-backup-$(date +%F).tar.gz user_data
Ściągaj to z serwera okresowo (lub do magazynu obiektowego). Utrata bazy transakcji oznacza utratę historii wyników; utrata dostrojonej strategii oznacza powtórzenie optymalizacji.
Uczciwe granice
- Backtesting i hyperopt są ciężkie — rób je lokalnie. Przypinają CPU na dłuższe odcinki, a współdzielony, zorientowany na burst VPS jest zbudowany dla obciążeń seriami, nie godzin utrzymywanego 100% obciążenia (co też wchodzi w zasady dopuszczalnego użytkowania). Optymalizuj na własnej maszynie, wdróż wynik, by działał na żywo. VPS jest dla żywego bota, nie badań.
- CPU jest współdzielony/burst. Świetny dla żywego bota, który głównie czeka na świece i reaguje; zły do przemielania roku danych 1-minutowych przez hyperopt.
- Jeden region, tylko CPU. Serwer jest w Niemczech bez GPU. W porządku dla Freqtrade (to CPU/logika, nie trening ML) — warto wiedzieć, jeśli Twoja strategia opiera się na ciężkim modelu ML, który znów lepiej trenować lokalnie.
Konkluzja
Freqtrade na VPS to właściwa konfiguracja dla żywego bota: Micro za 5 $ dla skupionej strategii, Small za 8 $, jeśli uruchamiasz wiele par, Docker Compose z restart: unless-stopped dla dostępności i klucz API tylko-do-handlu, wpisany na białą listę IP, by wyciek nie mógł Cię wydrenować. Trzymaj ciężki backtesting i hyperopt na laptopie, twórz kopię user_data i pozwól serwerowi robić jedną rzecz, w której jest dobry — pozostawać online, gdy rynek się porusza. Rejestracja jest tylko e-mailem, a płacisz w USDC lub USDT; dedykowane IP to jedyne ulepszenie warte tego tutaj, czysto dla białej listy klucza API.
Gotowy do wdrożenia? Freqtrade jest wygodny na planie Micro; dla cięższych backtestów lub wielu par zwiększ rozmiar do Small.
Komentarze
Brak komentarzy. Bądź pierwszy.