在您筆電上跑一個交易機器人是個壞主意,理由很無聊:您的筆電不是 7×24 線上,而市場是。交易中途合上蓋子,機器人就停止管理一個持倉。Freqtrade——那個流行的開源 Python 交易機器人——生來就是為無人值守執行而造的,那正是一台小 VPS 的用途。這是它實際需要什麼、怎麼用 Docker 搭它,以及那些沒人提、直到您撞上才知道的誠實界限。
為什麼用伺服器,而不是您的機器
兩個理由,都很實際:
- 正常執行時間。 機器人必須全天候盯市場、管持倉。您的筆電每睡眠或重新啟動一次,機器人就瞎了——一次錯過的入場,或更糟,一個沒人盯的持倉。
- 延遲和穩定。 VPS 坐在資料中心連線上,到交易所有一條穩定的路由。家裡 wifi 的抖動和 NAT 重設對一個對價格做反應的機器人沒幫助。
這跟在 VPS 上跑任何交易機器人背後是同一套邏輯——Freqtrade 只是把要求具體化了。
它實際需要什麼
Freqtrade 本身輕量,但對負載要現實:
- 實盤 / 模擬盤機器人: 2 GB 記憶體是舒服的下限。Docker 映像、幾個交易對、指標和 SQLite 交易資料庫都想要一點餘量。一個 $5 Micro(2 vCPU / 2 GB / 25 GB) 是對的起點。1 GB 能在幾個交易對上跑一個簡單策略,但您更靠邊緣。
- 多交易對 / 多策略: 升到一個 $8 Small(4 vCPU / 4 GB / 35 GB)——更多交易對意味著更多同時執行的指標計算和記憶體裡更大的 dataframe。
- 磁碟: 不大。映像、您的
user_data和交易資料庫在 25 GB 裡裝得舒舒服服。下載的回測歷史資料是唯一會增長的東西——而那大多住在您的本機機器上(見下)。
用 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 檔案、互動式建立一個設定(它會問您的交易所、下注額和模擬盤):
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
永遠先跑模擬盤
永遠別把一個全新策略指向真錢。Freqtrade 預設是模擬盤(紙面交易),您應該把它留在那兒,直到策略在即時市場資料上證明了自己一陣子。在 config.json 裡:
{
"dry_run": true,
"dry_run_wallet": 1000
}
啟動它並觀察:
docker compose up -d
docker compose logs -f
compose 檔案裡的 restart: unless-stopped 策略在這裡就是您的 systemd 等價物——Docker 在崩潰或伺服器重新啟動後把機器人拉回來,不用手動一步。(如果您更想在 Docker 之外跑它,一個帶 Restart=always 的 systemd unit 做同樣的活——和讓任何機器人保活是同一個原理。)
交易所 API 金鑰——咬人的那部分
這是一套交易設定出昂貴岔子的地方。兩條規則,不可商量:
- 只給交易權限。永遠別啟用提領。 如果金鑰洩露,最壞情況是不想要的交易——而不是您的資金走出門。Freqtrade 從不需要提領權限。
- 給金鑰上 IP 白名單。 大多數交易所讓您把一個 API 金鑰綁到特定 IP。那是用**獨立IP方案**的一個具體理由:金鑰只在您伺服器的固定位址上有效。在 NAT 方案上,機器人的對外 IP 不只屬於您——機器人運作沒問題,但您沒法乾淨地給它上白名單。
把金鑰放在 config.json 裡、讓它非全域性可讀(chmod 600),並以非 root 使用者跑容器。並先鎖當機器——新 VPS 安全清單花十分鐘、堵住要緊的門。
備份 user_data
您的策略、設定和交易歷史都住在 user_data 裡。那是您不想丟的東西:
tar czf ft-backup-$(date +%F).tar.gz user_data
定期把它從伺服器拉下來(或存進物件儲存)。丟了交易資料庫意味著丟了您的業績歷史;丟了一個調好的策略意味著重做最佳化。
誠實的界限
- 回測和 hyperopt 很重——在本機做。 它們把 CPU 佔滿好一陣,而一台共享、面向突發的 VPS 是為尖峰負載建的,不是幾個小時持續 100% 負載(那也觸及可接受使用政策)。在您自己的機器上最佳化,把結果部署去跑實盤。VPS 是給實盤機器人的,不是給研究的。
- CPU 是共享/突發的。 對一個大多在等 K 線並做反應的實盤機器人很棒;對把一年的 1 分鐘資料碾過 hyperopt 就不對。
- 一個地區、純 CPU。 伺服器在歐盟、沒有 GPU。對 Freqtrade 沒問題(它是 CPU/邏輯,不是 ML 訓練)——如果您的策略依賴一個重的 ML 模型,知道一下也好,那同樣最好在本機訓練。
一句話
VPS 上的 Freqtrade 是給實盤機器人的對的設定:一個 $5 Micro 跑一個專注的策略、一個 $8 Small 如果您跑很多交易對、帶 restart: unless-stopped 的 Docker Compose 保正常執行時間、以及一個只交易、上了 IP 白名單的 API 金鑰好讓洩露不能掏空您。把重度回測和 hyperopt 留在您的筆電上、備份 user_data,讓伺服器做它擅長的那一件事——在市場波動時保持線上。註冊只用電子郵件,您用 USDC 或 USDT 付款;獨立IP 是這裡唯一值得的升級,純粹為了 API 金鑰白名單。
評論
目前還沒有評論。歡迎成為第一位。