freqtrade-实战 10- 在 VPS 上使用 Docker 安装 Freqtrade 及运行 7x24 的 Bot

一、在VPS安装Docker - Freqtrade

1、切换到 ubuntu 用户下:
file

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

file

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

file

参数调优结果:
执行结果:

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$ 

为者常成,行者常至