Một bot giao dịch trên laptop của bạn là một ý tồi vì một lý do nhàm chán: laptop của bạn không online 24/7, và các thị trường thì có. Đóng nắp giữa một giao dịch và bot ngừng quản lý một vị thế mở. Freqtrade — bot giao dịch Python mã nguồn mở phổ biến — được xây để chạy không giám sát, chính là điều một VPS nhỏ dành cho. Đây là cái nó thực sự cần, cách thiết lập nó với Docker, và các giới hạn trung thực mà không ai nhắc đến cho tới khi bạn chạm chúng.
Vì sao một máy chủ, không phải máy của bạn
Hai lý do, cả hai thực tế:
- Thời gian hoạt động. Bot phải xem thị trường và quản lý các vị thế suốt ngày đêm. Mỗi lần laptop của bạn ngủ hoặc khởi động lại, bot mù — một điểm vào bị lỡ, hoặc tệ hơn, một vị thế mở không ai xem.
- Độ trễ và ổn định. Một VPS ngồi trên một kết nối datacenter với một tuyến ổn định tới sàn. Rung wifi nhà và các lần reset NAT không giúp một bot phản ứng với giá.
Đây là cùng logic đằng sau việc chạy bất kỳ bot giao dịch nào trên một VPS — Freqtrade chỉ làm các yêu cầu cụ thể.
Nó thực sự cần gì
Bản thân Freqtrade nhẹ, nhưng thực tế về khối lượng công việc:
- Bot live / dry-run: 2 GB RAM là một mức sàn thoải mái. Image Docker, một nhúm cặp, các chỉ báo, và DB giao dịch SQLite đều muốn một chút dư địa. Một Micro $5 (2 vCPU / 2 GB / 25 GB) là điểm khởi đầu đúng. 1 GB có thể chạy một chiến lược đơn giản đơn trên vài cặp, nhưng bạn gần mép hơn.
- Nhiều cặp / nhiều chiến lược: nâng lên một Small $8 (4 vCPU / 4 GB / 35 GB) — nhiều cặp hơn nghĩa là nhiều tính toán chỉ báo đồng thời và một dataframe lớn hơn trong bộ nhớ.
- Đĩa: khiêm tốn. Image,
user_datacủa bạn, và DB giao dịch vừa thoải mái trong 25 GB. Dữ liệu lịch sử tải về cho backtesting là thứ duy nhất lớn lên — và cái đó chủ yếu sống trên máy cục bộ của bạn (xem bên dưới).
Thiết lập nó với Docker Compose
Docker là cách được bảo trì, ít đau nhất để chạy Freqtrade. Trên một cỗ máy mới:
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
Lấy tập tin compose chính thức và tạo một cấu hình tương tác (nó sẽ hỏi về sàn, mức đặt, và dry-run của bạn):
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 trước — luôn luôn
Đừng bao giờ trỏ một chiến lược mới vào tiền thật. Freqtrade mặc định dry-run (giao dịch giấy) và bạn nên để nó ở đó cho tới khi chiến lược đã tự chứng minh trên dữ liệu thị trường live một thời gian. Trong config.json:
{
"dry_run": true,
"dry_run_wallet": 1000
}
Khởi động nó và xem:
docker compose up -d
docker compose logs -f
Chính sách restart: unless-stopped trong tập tin compose là tương-đương-systemd của bạn ở đây — Docker đưa bot trở lại sau một lần sập hoặc một lần khởi động lại máy chủ, không bước thủ công. (Nếu bạn thích chạy nó ngoài Docker, một unit systemd với Restart=always làm cùng việc — cùng nguyên lý như giữ bất kỳ bot nào sống.)
Các khóa API sàn — phần cắn người ta
Đây là chỗ một thiết lập giao dịch sai một cách đắt đỏ. Hai quy tắc, không thể thương lượng:
- Chỉ quyền giao dịch. Đừng bao giờ bật rút tiền. Nếu khóa rò rỉ, trường hợp tệ nhất là các giao dịch không mong muốn — không phải tiền của bạn đi ra cửa. Freqtrade không bao giờ cần truy cập rút tiền.
- IP-whitelist khóa. Hầu hết các sàn cho bạn gắn một khóa API vào các IP cụ thể. Đó là một lý do cụ thể để chạy trên một gói IP riêng: khóa chỉ hoạt động từ địa chỉ cố định của máy chủ bạn. Trên một gói NAT bot chia sẻ IP đi ra của node, vốn không phải chỉ của bạn — ổn để bot hoạt động, nhưng bạn không thể whitelist nó một cách sạch.
Giữ các khóa trong config.json, làm nó không-thế-giới-đọc-được (chmod 600), và chạy container như một người dùng không-root. Và khóa cỗ máy lại trước — danh sách kiểm tra bảo mật VPS-mới mất mười phút và đóng các cửa quan trọng.
Sao lưu user_data
Các chiến lược, cấu hình, và lịch sử giao dịch của bạn đều sống trong user_data. Đó là thứ bạn không muốn mất:
tar czf ft-backup-$(date +%F).tar.gz user_data
Kéo cái đó ra khỏi máy chủ định kỳ (hoặc vào object storage). Mất DB giao dịch nghĩa là mất lịch sử hiệu suất của bạn; mất một chiến lược đã tinh chỉnh nghĩa là làm lại tối ưu.
Những giới hạn trung thực
- Backtesting và hyperopt nặng — làm chúng cục bộ. Chúng ghim CPU trong các khoảng kéo dài, và một VPS dùng chung, hướng-burst được xây cho các khối lượng công việc nhọn, không phải hàng giờ tải 100% bền bỉ (cũng đâm vào chính sách sử dụng hợp lý). Tối ưu trên máy của riêng bạn, triển khai kết quả để chạy live. VPS là cho bot live, không phải nghiên cứu.
- CPU dùng chung/burst. Tuyệt cho một bot live chủ yếu chờ các cây nến và phản ứng; sai cho nghiền một năm dữ liệu 1-phút qua hyperopt.
- Một khu vực, chỉ-CPU. Máy chủ ở Đức không có GPU. Ổn cho Freqtrade (nó là CPU/logic, không phải huấn luyện ML) — đáng biết nếu chiến lược của bạn dựa vào một mô hình ML nặng, vốn lại tốt hơn huấn luyện cục bộ.
Kết luận
Freqtrade trên một VPS là thiết lập đúng cho bot live: một Micro $5 cho một chiến lược tập trung, một Small $8 nếu bạn chạy nhiều cặp, Docker Compose với restart: unless-stopped cho thời gian hoạt động, và một khóa API chỉ-giao-dịch, IP-whitelist để một lần rò rỉ không thể rút cạn bạn. Giữ backtesting và hyperopt nặng trên laptop của bạn, sao lưu user_data, và để máy chủ làm một điều nó giỏi — ở lại online trong khi thị trường di chuyển. Đăng ký chỉ-email và bạn thanh toán bằng USDC hoặc USDT; một IP riêng là nâng cấp duy nhất đáng ở đây, thuần túy cho whitelist khóa-API.
Sẵn sàng triển khai? Freqtrade thoải mái trên một gói Micro; cho các backtest nặng hơn hoặc nhiều cặp, nâng lên Small.
Bình luận
Chưa có bình luận nào. Hãy là người đầu tiên.