Freqtrade是什么
Freqtrade 是一个开源、免费的加密货币量化交易机器人,通俗地说就是一个你教它“什么时候买、什么时候卖”,它就能24 小时不间断自动帮你交易的程序,主要用于币圈现货或合约交易,支持 Binance、OKX、Bybit 等主流交易所。
你只需要用比较直观的规则(比如 RSI 超卖买入、均线金叉进场、达到止盈止损就退出)写成策略,它就会严格照着执行,不会情绪化、不手滑、不睡觉;在真正用真钱之前,它可以先用历史行情做回测,看看过去如果用这套策略大概是赚还是亏,也可以先开模拟盘跑一段时间,确认没问题再切换到实盘。
Freqtrade 的优点是完全开源、可控性强、风控功能齐全,比如限制单笔仓位、最大亏损、强制止损等,适合想长期、纪律化交易、又不想从零造轮子的人,但要明白它不是装上就能赚钱的神器,策略写得不好一样会亏,只是把“人做交易”变成“机器严格执行规则”,本质上是一个执行工具,而不是自动印钱机器。
部署Freqtrade
环境:debian 12 64位 ,安装了1pannel面板
初始化目录和配置文件
SSH登录主机,创建文件夹
mkdir -p /opt/freqtrade/ft_userdata
cd /opt/freqtrade
执行初始化命令(这会拉取镜像并引导你生成配置):
docker run --rm -it \
-v $(pwd)/ft_userdata:/freqtrade/user_data \
freqtradeorg/freqtrade:stable \
new-config --config user_data/config.json
问题:
- Do you want to enable Dry-run (simulation mode)? -> y (先模拟,安全)
- Please insert your stake currency: -> USDT (推荐)
- Please insert your stake amount: -> 1000 (模拟资金量)
- Please insert max_open_trades(最大持仓数量):3
- Time (Use arrow keys) (K线周期听谁的?)
» Have the strategy define timeframe.
Override in configuration. 选择Have the strategy define timeframe (听策略的) - Please insert your display Currency for reporting (leave empty to disable FIAT conversion): (你用什么法币来做计算单位):USD
- Exchange: -> binance (或者你要用的交易所)
- ? Do you want to trade Perpetual Swaps (perpetual futures)? (是否要交易合约)(y/N) y
- Do you want to enable Telegram? -> n (先跳过,后面再配)
- ? Do you want to enable the Rest API (includes FreqUI)? (y/N) y (一定要选 y,不然没界面)
- API server listen address: -> 0.0.0.0 (注意!这里一定要填 0.0.0.0,默认的 127.0.0.1 在 Docker 容器里会导致你无法从外部访问)
- API server username: -> 设置你的账号
- API server password: -> 设置你的密码
创建一个系统文件
-
打开文件管理器
-
回到 1Panel 面板。
-
点击左侧 「系统」 -> 「文件」。
-
进入目录:
/opt/freqtrade/ft_userdata/strategies(如果你改过路径,请去你挂载的目录)。 -
你会发现这里可能是空的,或者只有
.pyc文件。
-
-
创建文件
-
点击 「创建」 -> 「创建文件」。
-
文件名输入:
SampleStrategy.py(注意大小写,必须完全一致)。 -
点击确认。
-
-
填入代码
-
找到刚才创建的
SampleStrategy.py,点击 「编辑」。 -
复制并粘贴 下面这段最基础的官方示例策略代码:
-
# pragma pylint: disable=missing-docstring, invalid-name, pointless-string-statement # flake8: noqa: F401 # isort: skip_file # --- Do not remove these libs --- import numpy as np import pandas as pd from pandas import DataFrame from freqtrade.strategy import (IStrategy, IntParameter) # --- Define the class --- class SampleStrategy(IStrategy): # 策略的最小 ROI (投资回报率) 设置 # 当收益达到对应百分比时,持仓多久后卖出 minimal_roi = { "60": 0.01, # 持仓60分钟后,收益1%就卖 "30": 0.02, # 持仓30分钟后,收益2%就卖 "0": 0.04 # 持仓0分钟后,收益4%就卖 } # 止损设置 (当前价格低于买入价 10% 止损) stoploss = -0.10 # K线周期 timeframe = '5m' # 定义指标参数 buy_rsi = IntParameter(10, 40, default=30, space="buy") sell_rsi = IntParameter(70, 100, default=70, space="sell") def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame: """ 计算技术指标 """ # 计算 RSI import talib.abstract as ta dataframe['rsi'] = ta.RSI(dataframe) return dataframe def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: """ 买入逻辑 """ dataframe.loc[ ( (dataframe['rsi'] < self.buy_rsi.value) & # RSI 小于 30 (dataframe['volume'] > 0) # 且有成交量 ), 'enter_long'] = 1 # 发出买入信号 return dataframe def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: """ 卖出逻辑 """ dataframe.loc[ ( (dataframe['rsi'] > self.sell_rsi.value) & # RSI 大于 70 (dataframe['volume'] > 0) ), 'exit_long'] = 1 # 发出卖出信号 return dataframe点击编辑器右下角的 「确认」 保存文件。
-

在 1Panel 中创建容器编排
现在配置文件已经生成在 /opt/freqtrade/ft_userdata 里了,我们可以正式让它在后台运行。
-
打开 1Panel 左侧 「容器」 -> 「编排」 -> 「创建编排」。
-
名称填写:
freqtrade。 -
内容(Docker Compose)直接复制粘贴下面的代码:
version: '3'
services:
freqtrade:
image: freqtradeorg/freqtrade:stable
restart: unless-stopped
container_name: freqtrade
volumes:
- /opt/freqtrade/ft_userdata:/freqtrade/user_data
ports:
- "8080:8080"
# 默认命令是运行交易模式
command: >
trade
--logfile /freqtrade/user_data/logs/freqtrade.log
--db-url sqlite:////freqtrade/user_data/tradesv3.sqlite
--config /freqtrade/user_data/config.json
--strategy SampleStrategy
验证安装
浏览器打开:http:// 你的主机ip地址:8080 ,出现webui界面 即可
Freqtrade 的用法
我将后续更新在社区内,链接直达










暂无评论内容