freqtrade-实战 10- 在 VPS 上使用 Docker 安装 Freqtrade 及运行 7x24 的 Bot
一、在VPS安装Docker - Freqtrade
1、切换到 ubuntu 用户下:
2、操作步骤:
# Freqtrade and Docker Setup Script
# Documentation Links:
# Docker Installation Guide: https://docs.docker.com/engine/install/ubuntu/
# Freqtrade Docker Quick Start Guide: https://www.freqtrade.io/en/stable/docker_quickstart/#docker-quick-start
# Step 1: Update and Upgrade the System
sudo apt update
sudo apt upgrade -y
sudo reboot
# Step 2: Remove Conflicting Packages
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do
sudo apt-get remove -y $pkg
done
# Step 3: Set Up Docker’s APT Repository
sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Step 4: Install Docker Engine
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Verify Docker Installation
sudo docker run hello-world
# Step 5: Set Up Freqtrade
mkdir ft_userdata
cd ft_userdata/
curl https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml -o docker-compose.yml
# Pull Freqtrade Docker Image
sudo docker compose pull
# Create Freqtrade User Directory
sudo docker compose run --rm freqtrade create-userdir --userdir user_data
# Step6: run
docker compose up -d

Adding a custom strategy¶
The configuration is now available as user_data/config.json
Copy a custom strategy to the directory user_data/strategies/
Add the Strategy' class name to the docker-compose.yml file
二、在 VPS 服务器上 24/7 试运行 Freqtrade Bot
说明:
cd /home/ubuntu/ft_userdata
sudo docker compose up -d
# 1、交易策略
sudo docker exec freqtrade freqtrade trade --strategy SuperTrend_MACD_RSI \
--config user_data/config/binance_futures_SuperTrend_MACD_RSI.json
# 下载数据
sudo docker exec freqtrade freqtrade download-data \
-c user_data/config/binance_futures_SuperTrend_MACD_RSI.json \
--timerange 20240101- \
-t 1h
# 2.参数调优
sudo docker exec freqtrade freqtrade hyperopt \
--strategy SuperTrend_MACD_RSI \
--config user_data/config/binance_futures_SuperTrend_MACD_RSI.json \
--timeframe 1h \
--timerange 20240401-20250608 \
--hyperopt-loss MultiMetricHyperOptLoss \
--spaces buy\
-e 50 \
--j -2 \
--random-state 9319 \
--min-trades 20 \
--max-open-trades 3 \
-p BTC/USDT:USDT

参数调优结果:
执行结果:
2025-06-10 15:14:21,294 - freqtrade.optimize.hyperopt.hyperopt - INFO - Effective number of parallel workers used: 1
Hyperopt results
┏━━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Best ┃ Epoch ┃ Trades ┃ Win Draw Loss Win% ┃ Avg profit ┃ Profit ┃ Avg duration ┃ Objective ┃ Max Drawdown (Acct) ┃
┡━━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ * Best │ 1/50 │ 48 │ 14 0 34 29.2 │ 2.13% │ 109.193 USDT (1.09%) │ 5 days, 18:21:00 │ -10.11968 │ 8285.850 USDT (52.95%) │
│ * Best │ 2/50 │ 87 │ 40 0 47 46.0 │ 1.70% │ 3420.857 USDT (34.21%) │ 2 days, 17:37:00 │ -674.52574 │ 4795.294 USDT (29.19%) │
│ * Best │ 5/50 │ 79 │ 33 0 46 41.8 │ 2.91% │ 6070.629 USDT (60.71%) │ 3 days, 4:23:00 │ -714.38362 │ 16301.480 USDT (58.93%) │
│ * Best │ 12/50 │ 80 │ 42 0 38 52.5 │ 5.02% │ 19978.207 USDT (199.78%) │ 3 days, 8:10:00 │ -6,109.18100 │ 8521.986 USDT (23.40%) │
│ Best │ 38/50 │ 82 │ 44 0 38 53.7 │ 6.03% │ 29342.606 USDT (293.43%) │ 3 days, 13:53:00 │ -9,571.93726 │ 9689.736 USDT (23.41%) │
└────────┴───────┴────────┴────────────────────────┴────────────┴───────────────────────────┴──────────────────┴──────────────┴───────────────────────────┘
Epochs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 50/50 100% • 0:08:32 • 0:00:00
2025-06-10 15:22:53,728 - freqtrade.optimize.hyperopt.hyperopt - INFO - 50 epochs saved to '/freqtrade/user_data/hyperopt_results/strategy_SuperTrend_MACD_RSI_2025-06-10_15-13-34.fthypt'.
2025-06-10 15:22:53,737 - freqtrade.optimize.hyperopt_tools - INFO - Dumping parameters to /freqtrade/user_data/strategies/SuperTrend_MACD_RSI.json
Best result:
38/50: 82 trades. 44/0/38 Wins/Draws/Losses. Avg profit 6.03%. Median profit 10.77%. Total profit 29342.60640342 USDT ( 293.43%). Avg duration 3 days, 13:53:00 min. Objective: -9571.93726
# Buy hyperspace params:
buy_params = {
"max_candle_size": 0.09,
"risk_ratio": 1.5,
"rsi_threshold": 50,
"supertrend_length": 12,
"supertrend_multiplier": 3,
"swing_point_lookback": 8,
"leverage_level": 5, # value loaded from strategy
}
# Stoploss:
stoploss = -0.25 # value loaded from strategy
# Trailing stop:
trailing_stop = False # value loaded from strategy
trailing_stop_positive = None # value loaded from strategy
trailing_stop_positive_offset = 0.0 # value loaded from strategy
trailing_only_offset_is_reached = False # value loaded from strategy
# Max Open Trades:
max_open_trades = 3 # value loaded from strategy
ubuntu@AwesomeStrategy-Freqtrade:~/ft_userdata$
为者常成,行者常至
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)