Trading бот на лаптопа ти е лоша идея по една скучна причина: лаптопът ти не е онлайн 24/7, а пазарите са. Затвори капака по средата на сделка и ботът спира да управлява отворена позиция. Freqtrade — популярният open-source Python trading бот — е построен да работи без надзор, което е точно за какво е малък VPS. Ето какво реално се нуждае, как да го настроиш с Docker и честните граници, които никой не споменава, докато не ги удариш.
Защо сървър, а не машината ти
Две причини, и двете практични:
- Време на работа. Ботът трябва да гледа пазара и да управлява позиции денонощно. Всеки път, когато лаптопът ти заспи или рестартира, ботът е сляп — пропуснат вход, или по-лошо, отворена позиция, която никой не гледа.
- Латентност и стабилност. VPS седи на датацентър връзка със стабилна маршрутизация до борсата. Трептенето на домашния wifi и NAT resets не помагат на бот, който реагира на цена.
Това е същата логика зад пускането на всеки trading бот на VPS — Freqtrade просто прави изискванията конкретни.
Какво реално се нуждае
Самият Freqtrade е лек, но бъди реалист за натоварването:
- Live / dry-run бот: 2 GB RAM е комфортен под. Docker образът, шепа двойки, индикатори и SQLite trade DB искат малко запас. Един $5 Micro (2 vCPU / 2 GB / 25 GB) е правилната отправна точка. 1 GB може да пусне единична проста стратегия на няколко двойки, но си по-близо до ръба.
- Много двойки / няколко стратегии: покачи до $8 Small (4 vCPU / 4 GB / 35 GB) — повече двойки значи повече едновременно изчисляване на индикатори и по-голям dataframe в паметта.
- Диск: скромен. Образът,
user_data-та ти и trade DB се събират комфортно в 25 GB. Свалените исторически данни за backtesting са единственото, което расте — а то основно живее на локалната ти машина (виж по-долу).
Настрой го с Docker Compose
Docker е поддържаният, най-безболезнен начин да пуснеш Freqtrade. На свежа машина:
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
Вземи официалния compose файл и създай конфигурация интерактивно (ще пита за борсата, залога и 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
Първо dry-run — винаги
Никога не насочвай свежа стратегия към реални пари. Freqtrade по подразбиране е dry-run (paper trading) и трябва да го оставиш там, докато стратегията не се докаже на live пазарни данни известно време. В config.json:
{
"dry_run": true,
"dry_run_wallet": 1000
}
Стартирай го и гледай:
docker compose up -d
docker compose logs -f
Политиката restart: unless-stopped в compose файла е твоят systemd-еквивалент тук — Docker връща бота след срив или рестарт на сървъра, без ръчна стъпка. (Ако предпочиташ да го пускаш извън Docker, systemd unit с Restart=always върши същата работа — същият принцип като поддържане на всеки бот жив.)
API ключове на борсата — частта, която хапе хората
Тук trading настройка се обърква скъпо. Две правила, ненегоцируеми:
- Само trade права. Никога не включвай withdrawal. Ако ключът изтече, най-лошият случай е нежелани сделки — не средствата ти, излизащи през вратата. Freqtrade никога не се нуждае от withdrawal достъп.
- IP-whitelist на ключа. Повечето борси ти позволяват да свържеш API ключ към конкретни IP-та. Това е конкретна причина да пуснеш на план с dedicated IP: ключът работи само от фиксирания адрес на сървъра ти. На NAT план ботът споделя изходящия IP на възела, който не е само твой — наред за функциониране на бота, но не можеш чисто да го whitelist-неш.
Дръж ключовете в config.json, направи го не-world-readable (chmod 600) и пускай контейнера като non-root потребител. И заключи първо машината — checklist за сигурност на нов VPS отнема десет минути и затваря вратите, които имат значение.
Архивирай user_data
Стратегиите, конфигурацията и trade историята ти живеят в user_data. Това е нещото, което не искаш да загубиш:
tar czf ft-backup-$(date +%F).tar.gz user_data
Издърпвай това от сървъра периодично (или в object storage). Загубата на trade DB значи загуба на performance историята ти; загубата на настроена стратегия значи преправяне на оптимизацията.
Честните граници
- Backtesting-ът и hyperopt са тежки — прави ги локално. Те забождат CPU за продължителни отрязъци, а споделен, burst-ориентиран VPS е построен за пикови натоварвания, не за часове устойчиво 100% натоварване (което също върви срещу политиката за приемливо ползване). Оптимизирай на собствената си машина, разгърни резултата да работи live. VPS-ът е за живия бот, не за изследването.
- CPU е споделен/burst. Чудесен за live бот, който основно чака свещи и реагира; грешен за смилане на година 1-минутни данни през hyperopt.
- Една регион, само CPU. Сървърът е в Германия без GPU. Наред за Freqtrade (той е CPU/логика, не ML обучение) — струва си да знаеш, ако стратегията ти се обляга на тежък ML модел, който отново е по-добре обучен локално.
Заключение
Freqtrade на VPS е правилната настройка за живия бот: $5 Micro за фокусирана стратегия, $8 Small, ако пускаш много двойки, Docker Compose с restart: unless-stopped за време на работа, и само-trade, IP-whitelisted API ключ, така че изтичане да не може да те източи. Дръж тежкия backtesting и hyperopt на лаптопа си, архивирай user_data и остави сървъра да прави единственото нещо, в което е добър — да стои онлайн, докато пазарът се движи. Регистрацията е само имейл и плащаш в USDC или USDT; dedicated IP е единственото надграждане, което си струва тук, чисто за whitelist на API ключа.
Готов да разгърнеш? Freqtrade е комфортен на Micro план; за по-тежки backtests или много двойки, покачи до Small.
Коментари
Още няма коментари. Бъди първият.