安装 Freqtrade 环境

杂谈 · 07-18
安装 Freqtrade 环境

freqtrade trade --config /root/freqtrade/user_data/config.json --strategy SampleStrategy

激活虚拟环境

source ./.venv/bin/activate

系统要求
作为一个基于 Python 开发的量化交易框架,Freqtrade 对运行环境有一些基础要求。在开始安装前,我们需要确保系统满足这些条件,否则可能会遇到各种兼容性问题。

软件环境
首先是 Python 版本,Freqtrade 需要 Python 3.10 或更高版本。这是因为框架使用了一些较新的 Python 特性,比如类型提示的改进和某些标准库的新功能。如果当前的 Python 版本低于 3.10,需要先升级 Python 环境。可以通过 python --version 或 python3 --version 命令检查当前版本。

除了 Python 本身,还需要安装一些必要的系统工具和依赖库:

git:用于从 GitHub 克隆 Freqtrade 代码仓库
pip:Python 的包管理工具,用于安装依赖库
virtualenv:推荐使用的虚拟环境工具,用于隔离项目依赖
TA-Lib:技术分析库,Freqtrade 的策略需要用到其中的指标计算
python-dev:Python 开发头文件,某些依赖库编译时需要
操作系统兼容性
Freqtrade 可以在多种操作系统上运行,但不同系统的安装细节略有差异:

Linux:推荐使用 Ubuntu 20.04 或更高版本,Debian 系发行版通常有较好的支持
MacOS:需要通过 Homebrew 安装一些依赖,M1/M2 等 ARM 架构芯片建议使用 Docker 方式
Windows:官方提供了专门的安装指南,但总体而言,Linux 或 MacOS 的命令行环境更适合运行量化交易机器人
特别提醒,对于 ARM64 架构的系统(如 Mac M1/M2、某些树莓派型号),原生安装可能需要更多手动配置,官方推荐优先使用 Docker 方式安装以避免兼容性问题。

硬件建议
Freqtrade 本身对硬件要求不高,即使是入门级的服务器或开发机也能运行。但如果需要进行大量的历史数据回测或策略优化(Hyperopt),则建议配置:

CPU:至少 2 核,4 核或以上更佳
内存:至少 4GB,回测时可能需要 8GB 以上
存储:10GB 以上可用空间,主要用于存储历史数据和日志
网络:稳定的互联网连接,用于连接交易所 API 和下载市场数据
另外,系统时间同步非常重要。加密货币市场 24 小时不间断交易,如果本地时间与实际时间偏差较大,可能会导致 API 请求失败或交易时间戳错误。建议开启 NTP 服务保持时间同步。

安装步骤
Freqtrade 提供了多种安装方式,我们可以根据自己的技术背景和需求选择合适的方案。对于新手,推荐使用官方提供的脚本安装;对于有经验的开发者,可以选择手动安装以获得更多控制权。

准备工作
无论选择哪种安装方式,首先都需要完成一些基础准备工作。

安装系统依赖
不同操作系统的依赖安装命令有所不同,下面分别介绍:

Debian/Ubuntu 系统

打开终端,执行以下命令更新软件源并安装必要依赖:

更新软件包索引

sudo apt-get update

安装必要依赖

sudo apt install -y python3-pip python3-venv python3-dev python3-pandas git curl
这里安装了 Python 相关工具(pip、venv、dev)、数据分析库 pandas、版本控制工具 git 和网络工具 curl,这些都是 Freqtrade 运行所必需的。
1、PIP下载超时,运行如下命令
mkdir -p ~/.pip
cat > ~/.pip/pip.conf <<EOF
[global]
index-url = https://mirrors.aliyun.com/pypi/simple
timeout = 120
EOF
2、TA-Lib手动安装
wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
tar xvzf ta-lib-0.4.0-src.tar.gz
cd ta-lib
sed -i.bak "s|0.00000001|0.000000000000000001 |g" src/ta_func/ta_utility.h
./configure --prefix=/usr/local
make
sudo make install

On debian based systems (debian, ubuntu, ...) - updating ldconfig might be necessary.

sudo ldconfig
cd ..
rm -rf ./ta-lib*

获取 Freqtrade 代码
Freqtrade 的源代码托管在 GitHub 上,我们需要通过 git 将代码克隆到本地:

克隆Freqtrade仓库

git clone https://github.com/freqtrade/freqtrade.git

进入项目目录

cd freqtrade
克隆完成后,我们需要选择使用哪个版本的代码。Freqtrade 有两个主要分支:

stable:稳定版,包含经过充分测试的功能,适合生产环境使用
develop:开发版,包含最新功能,但可能不够稳定
新手建议使用 stable 分支:

切换到stable分支

git checkout stable
如果想体验最新功能,可以使用 develop 分支(默认克隆下来就是 develop 分支):

切换到develop分支

git checkout develop
后续需要更新代码时,只需在项目目录下执行 git pull 即可拉取最新代码。

脚本安装(推荐新手)
Freqtrade 提供了一个便捷的安装脚本 setup.sh,可以自动完成大部分安装工作。这个脚本适用于 Linux 和 MacOS 系统,极大简化了安装流程。

在项目目录下执行以下命令启动安装:

使用安装选项运行脚本

./setup.sh -i
-i 参数表示执行完整安装,脚本会自动完成以下工作:

检查 Python 版本是否满足要求
创建并配置虚拟环境(位于项目目录下的.venv 文件夹)
安装 TA-Lib 库
安装 Freqtrade 及其所有依赖
提供基本的配置选项
安装过程中可能需要输入 sudo 密码(用于安装系统级依赖),根据提示操作即可。整个安装过程可能需要几分钟到十几分钟,取决于网络速度和硬件性能。

安装完成后,每次打开新的终端窗口运行 Freqtrade 前,都需要激活虚拟环境:

激活虚拟环境

source ./.venv/bin/activate
激活后,终端提示符前会显示 (.venv),表示当前处于虚拟环境中。在这个环境下,freqtrade 命令才可以正常使用。

除了安装,setup.sh 脚本还提供了其他实用功能:

更新Freqtrade到最新版本

./setup.sh -u

重置环境(适用于遇到严重问题时)

./setup.sh -r
-u 选项会拉取最新代码并更新依赖,-r 选项则会重置代码仓库并重新创建虚拟环境,是解决安装问题的有效手段。
安装 Freqtrade
完成上述准备后,安装 Freqtrade 本身:

安装基础版本

pip install -e .

如需安装所有可选功能(推荐)

pip install -e .[all]
-e 参数表示 editable 模式,这样修改 Freqtrade 源码后无需重新安装即可生效。[all] 表示安装所有可选依赖,包括回测、优化、绘图等功能所需的库。

如果只需要基础功能,可以安装核心依赖:

pip install -e .[core]
其他可选依赖组合:

[hyperopt]:安装超参数优化所需依赖
[plot]:安装绘图功能所需依赖
[freqai]:安装 FreqAI(人工智能交易模块)所需依赖
环境验证
安装完成后,我们需要验证环境是否配置正确,确保 Freqtrade 能够正常运行。

检查版本信息
首先检查 Freqtrade 版本:

freqtrade --version
如果安装成功,会输出类似以下信息:

freqtrade 2023.9
版本号可能因安装的具体版本而有所不同。

查看可用策略
执行以下命令列出内置策略:

freqtrade list-strategies
如果一切正常,会显示内置策略列表,如 DefaultStrategy、SampleStrategy 等。

生成配置文件
Freqtrade 需要配置文件来连接交易所和设置交易参数。使用以下命令生成默认配置文件:

freqtrade new-config
按照提示输入相关信息,或直接按 Enter 使用默认值。生成的配置文件位于 config.json(或指定的文件名),后续可以根据需要修改。

运行测试回测
为了进一步验证环境,可以运行一个简单的回测:

下载测试数据(BTC/USDT,1小时 timeframe,2023年1月)

freqtrade download-data --pairs BTC/USDT --timeframes 1h --timerange 20230101-20230131

使用SampleStrategy回测

freqtrade backtesting --strategy SampleStrategy --timerange 20230101-20230131
如果回测能够顺利完成并输出结果统计,说明环境配置基本没有问题。

Theme Jasmine by Kent Liao