第 1 课:量化交易与 Freqtrade 简介
📚 课程系列:Freqtrade 量化交易完整教学课程
📖 所属部分:第一部分 - 基础入门
⏱ 课时:1.5 小时
🎯 难度:⭐ 入门级
🎯 学习目标
完成本课后,你将能够:
- ✅ 理解什么是量化交易
- ✅ 了解量化交易的优势和风险
- ✅ 认识 Freqtrade 及其功能
- ✅ 明确学习路径和目标
- ✅ 做好学习量化交易的心理准备
📖 第一部分:什么是量化交易?
1.1 传统交易 vs 量化交易
传统交易方式
小明的交易日常:
早上 9:00 - 查看币价,BTC 跌了 5%,有点慌
上午 10:00 - 朋友说要涨,马上买入
中午 12:00 - 涨了 2%,犹豫要不要卖
下午 3:00 - 又跌回去了,后悔没卖
晚上 8:00 - 实在忍不住割肉了,亏 3%
第二天 - BTC 大涨 10%,后悔昨晚卖了...
问题:
- 😰 情绪化决策(恐惧、贪婪)
- ⏰ 盯盘累(24小时市场)
- 🎲 运气成分大(凭感觉)
- 📉 经常买高卖低
量化交易方式
交易机器人的一天:
while True:
当前价格 = 获取实时价格()
if EMA20上穿EMA50 and 价格在EMA20上方:
买入(100 USDT)
print("✅ 触发买入信号")
if 盈利 > 5% or 亏损 > 2%:
卖出()
print("✅ 触发卖出信号")
休息(5分钟)
特点:
- 🤖 规则化决策(严格执行)
- ⚡ 24/7 不休息(抓住每个机会)
- 📊 数据驱动(基于历史统计)
- 🎯 纪律性强(不受情绪影响)
1.2 量化交易的定义
量化交易(Quantitative Trading):使用数学模型和计算机程序,根据预设的交易策略,自动执行买卖决策的交易方式。
三个核心要素:
策略 → 数据 → 执行
↓ ↓ ↓
规则 历史 自动化
-
策略(Strategy)
- 何时买入?何时卖出?
- 例如:EMA金叉买入,死叉卖出
-
数据(Data)
- 历史价格、成交量、技术指标
- 用于回测和优化
-
执行(Execution)
- 自动下单、止损、止盈
- 无需人工干预
1.3 一个简单的例子
策略描述:当 Bitcoin 的 20 日均线上穿 50 日均线时买入,下穿时卖出。
代码实现(伪代码):
# 每天检查一次
for 每一天 in 历史数据:
MA20 = 最近20天的平均价格
MA50 = 最近50天的平均价格
if MA20 刚刚上穿 MA50:
买入(1000 USDT)
if MA20 刚刚下穿 MA50:
卖出()
回测结果(假设):
- 📅 测试期间:2024年全年
- 💰 初始资金:10,000 USDT
- 📈 最终资金:12,500 USDT
- 🎯 收益率:+25%
- 📊 胜率:65%
结论:这个策略在 2024 年表现不错,但不代表 2025 年也有效!
🚀 第二部分:量化交易的优势与风险
2.1 量化交易的优势
✅ 1. 消除情绪影响
案例:恐慌性抛售
传统交易者:
BTC 跌 10% → 恐慌 → 割肉 → 第二天涨回来 → 后悔
量化交易者:
BTC 跌 10% → 机器人检查策略 → 不满足卖出条件 → 继续持有 → 第二天盈利
优势:
- 不会因为恐惧而过早卖出
- 不会因为贪婪而追高
- 严格执行预设规则
✅ 2. 24/7 全天候交易
加密货币市场特点:
- 🌏 全球市场,7×24 小时交易
- 🌙 半夜可能出现最佳交易机会
- ⏰ 人不可能一直盯盘
量化交易的解决方案:
人类:睡觉了 😴
机器人:检测到买入信号 → 自动买入 → 第二天醒来盈利 3% ✅
✅ 3. 快速执行
速度对比:
| 操作 | 人工 | 机器人 |
|------|------|--------|
| 发现信号 | 1-5 分钟 | < 1 秒 |
| 下单 | 30-60 秒 | < 0.1 秒 |
| 同时监控 | 1-3 个币种 | 无限个 |
实际影响:
- 在快速波动的市场,0.1% 的价格差异可能决定盈亏
- 机器人能同时监控 50+ 个交易对
- 高频策略(分钟级)只有机器能做
✅ 4. 数据驱动决策
传统方式:
"我觉得这个币要涨" ← 主观判断
"朋友推荐的,应该靠谱" ← 盲目跟风
"图表看起来像要突破" ← 经验主义
量化方式:
回测 1000 笔历史交易 → 这个策略胜率 70%,平均盈利 2%
统计分析:该策略在震荡市表现好,趋势市表现差
→ 只在震荡市使用
✅ 5. 可回测和优化
优势流程:
设计策略 → 回测验证 → 发现问题 → 优化参数 → 再次回测 → 实盘测试
对比:
- 传统:只能用真金白银试错 💸
- 量化:用历史数据"免费"试错 📊
2.2 量化交易的风险和挑战
⚠️ 1. 过拟合(Overfitting)
什么是过拟合?
想象一个极端策略:
if 日期 == "2024-03-15" and 时间 == "14:23":
买入 BTC
if 日期 == "2024-03-16" and 时间 == "09:47":
卖出 BTC
回测结果:完美!抓住了历史上的一次大涨 📈
实盘结果:完全无效,因为历史不会精确重演 📉
如何避免:
- ✅ 在不同时间段测试策略
- ✅ 策略逻辑要简单,不要过度复杂
- ✅ 保留样本外数据测试
- ✅ 至少测试 1 年以上的数据
⚠️ 2. 技术风险
可能的技术问题:
问题 | 影响 | 案例 |
---|---|---|
网络断开 | 错过交易机会 | 网络故障期间暴跌 10% |
程序崩溃 | 无法执行止损 | 服务器宕机,亏损扩大 |
API 限制 | 无法下单 | 交易所 API 超限被封 |
数据错误 | 错误决策 | 价格数据延迟,买在高点 |
应对措施:
- ✅ 使用稳定的服务器(VPS)
- ✅ 设置网络监控和自动重启
- ✅ 使用多个交易所(备份)
- ✅ 设置最大损失限制
⚠️ 3. 市场变化
策略失效的原因:
2024 年策略:震荡市,均值回归策略表现好 ✅
2025 年市场:单边牛市,均值回归策略亏损 ❌
原因:市场特征改变了
应对:
- ✅ 持续监控策略表现
- ✅ 定期回测和优化
- ✅ 准备多个适应不同市场的策略
- ✅ 设置策略失效的预警机制
⚠️ 4. 黑天鹅事件
什么是黑天鹅?
- 极端罕见的市场事件
- 历史数据中很少出现
- 回测无法预测
案例:
- 2020 年 3 月 12 日:BTC 单日暴跌 50%
- 2022 年 5 月:LUNA 崩盘,从 $80 跌到 $0.0001
- 交易所倒闭(FTX 事件)
应对:
- ✅ 设置严格的止损
- ✅ 分散投资(不要 All-in 一个币)
- ✅ 只投入可承受损失的资金
- ✅ 保持适当的现金储备
⚠️ 5. 心理挑战
即使是量化交易,也会遇到心理问题:
回测收益:+50%
实盘运行 1 个月:-5%
你的反应:
❌ "这策略有问题,赶紧停掉!"
✅ "回测是 1 年数据,1 个月回撤正常,继续观察"
常见心理陷阱:
- 频繁修改策略(追求完美)
- 看到亏损就停止(缺乏耐心)
- 盈利后加大仓位(贪婪)
- 手动干预机器人(不信任策略)
应对:
- ✅ 制定交易计划并严格执行
- ✅ 记录交易日记,分析心理变化
- ✅ 给策略足够的验证时间(至少 3-6 个月)
- ✅ 接受策略有盈有亏是正常现象
2.3 量化交易适合你吗?
✅ 适合量化交易的人
- 📊 喜欢数据分析:愿意研究历史数据和统计规律
- 💻 有基本编程能力:能看懂代码,进行简单修改
- ⏰ 有耐心:接受策略需要时间验证
- 🎯 有纪律:能严格执行交易计划
- 💰 风险承受能力:只用闲钱投资
❌ 不适合量化交易的人
- 🎲 喜欢赌博刺激:追求一夜暴富
- 😰 情绪化严重:看到亏损就慌乱
- ⏱ 缺乏耐心:期望马上盈利
- 💸 用借款或必需资金:承受不起损失
- 🚫 完全不懂技术:不愿意学习
🤖 第三部分:Freqtrade 是什么?
3.1 Freqtrade 简介
Freqtrade 是一个免费、开源的加密货币交易机器人,用 Python 编写,支持策略开发、回测、优化和自动交易。
官方信息:
- 🌐 官网:https://www.freqtrade.io/
- 💻 GitHub:https://github.com/freqtrade/freqtrade
- ⭐ Stars:28,000+
- 👥 贡献者:500+
- 📅 首次发布:2017 年
3.2 Freqtrade 的核心功能
功能 1:策略回测 🔍
作用:用历史数据验证策略
# 一行命令测试策略
freqtrade backtesting --strategy MyStrategy --timerange 20240101-20241231
# 输出:
# 交易次数:150
# 胜率:65%
# 总收益:+35%
# 最大回撤:-12%
价值:
- 避免直接用真钱测试
- 快速验证策略可行性
- 发现策略的优缺点
功能 2:参数优化 ⚡
问题:策略有很多参数,如何找到最佳组合?
# 例如这些参数应该设置为多少?
RSI_threshold = ? # 30-70 之间选择
MA_period = ? # 10-50 之间选择
stop_loss = ? # -5% 还是 -10%?
Freqtrade 的解决方案:
# 自动测试 1000 种参数组合
freqtrade hyperopt --strategy MyStrategy --epochs 1000
# 输出最佳参数:
# RSI_threshold = 35
# MA_period = 23
# stop_loss = -7%
功能 3:模拟交易 (Dry-run) 🎮
作用:不用真钱,用虚拟资金实时测试
# 启动模拟交易
freqtrade trade --strategy MyStrategy --dry-run
# 系统会:
# ✅ 获取实时市场数据
# ✅ 执行真实的买卖逻辑
# ❌ 但不会真的下单
# ✅ 记录所有交易结果
价值:
- 零成本验证策略
- 发现实盘可能遇到的问题
- 建立对策略的信心
功能 4:自动交易 🤖
作用:真实执行交易
# 启动实盘交易
freqtrade trade --strategy MyStrategy
# 机器人会自动:
# ✅ 监控市场
# ✅ 发现买卖信号
# ✅ 自动下单
# ✅ 自动止损止盈
# ✅ 记录交易日志
价值:
- 24/7 不间断交易
- 严格执行策略规则
- 无情绪化决策
功能 5:可视化分析 📊
作用:生成图表分析策略
# 生成策略图表
freqtrade plot-dataframe --strategy MyStrategy --pairs BTC/USDT
# 输出:包含买卖点标记的交互式图表
示例图表元素:
- 🟢 绿色箭头 = 买入信号
- 🔴 红色箭头 = 卖出信号
- 📈 K线图
- 📊 技术指标(EMA、RSI 等)
功能 6:多交易所支持 🌍
支持的主流交易所:
交易所 | 现货 | 合约 | 推荐度 |
---|---|---|---|
Binance | ✅ | ✅ | ⭐⭐⭐⭐⭐ |
OKX | ✅ | ✅ | ⭐⭐⭐⭐ |
Bybit | ✅ | ✅ | ⭐⭐⭐⭐ |
Kraken | ✅ | ❌ | ⭐⭐⭐ |
Gate.io | ✅ | ✅ | ⭐⭐⭐ |
KuCoin | ✅ | ✅ | ⭐⭐⭐ |
切换交易所只需修改配置:
{
"exchange": {
"name": "binance" // 改为 "okx" 或 "bybit"
}
}
3.3 Freqtrade vs 其他交易机器人
对比表
特性 | Freqtrade | TradingView | 3Commas | 自己写代码 |
---|---|---|---|---|
开源 | ✅ 免费 | ❌ 付费 | ❌ 付费 | ✅ 免费 |
灵活性 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ |
易用性 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐ |
回测 | ✅ 强大 | ✅ 基础 | ❌ 无 | ❌ 需自己实现 |
社区 | ✅ 活跃 | ✅ 活跃 | ⚠️ 一般 | ❌ 无 |
学习曲线 | ⭐⭐⭐ | ⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ |
为什么选择 Freqtrade?
✅ 优势:
- 完全免费:无任何订阅费用
- 开源透明:代码公开,安全可靠
- 功能强大:回测、优化、实盘一体
- 社区活跃:问题能快速得到解答
- 可定制:完全控制策略逻辑
⚠️ 劣势:
- 需要编程基础:至少能看懂 Python
- 需要自己配置:不是点击几下就能用
- 学习曲线较陡:需要时间掌握
3.4 Freqtrade 能做什么?不能做什么?
✅ Freqtrade 能做的
✅ 现货交易(买卖加密货币)
✅ 合约交易(做多做空)
✅ 网格交易
✅ DCA(定投)策略
✅ 多交易对同时运行
✅ 止损止盈
✅ 风险管理
✅ Telegram 通知
✅ Web UI 监控
✅ 数据可视化
❌ Freqtrade 不能做的
❌ 预测未来价格(没有水晶球)
❌ 保证盈利(任何策略都有风险)
❌ 完全托管(需要你监控和维护)
❌ 自动生成完美策略(需要你设计和优化)
❌ 应对所有市场情况(黑天鹅事件难以应对)
📚 第四部分:课程学习路径
4.1 课程总览
30 课完整体系:
第一部分:基础入门(第 1-4 课)
└─ 环境搭建、核心概念、数据下载
第二部分:回测实战(第 5-10 课)
└─ 回测命令、性能分析、策略对比
第三部分:策略优化(第 11-15 课)
└─ Hyperopt、评分体系、风险管理
第四部分:实时信号(第 16-20 课)
└─ Dry-run、Telegram、可视化
第五部分:实盘交易(第 21-25 课)
└─ API 配置、小资金测试、监控
第六部分:进阶专题(第 26-30 课)
└─ 自定义策略、AI、多时间框架
4.2 学习建议
📅 学习计划
每周 2-3 课,8-12 周完成
第 1-2 周:基础入门(第 1-4 课)
第 3-4 周:回测实战(第 5-10 课)
第 5-6 周:策略优化(第 11-15 课)
第 7-8 周:实时信号(第 16-20 课)
第 9-10 周:模拟交易验证
第 11-12 周:小资金实盘测试(可选)
📖 学习方法
-
理论 + 实践结合
- 每课都有实践任务
- 必须完成至少 80% 的任务才能进入下一课
-
记录学习笔记
- 记录遇到的问题和解决方法
- 制作自己的命令速查表
-
加入社区
-
不要急于实盘
- 至少完成第 1-20 课
- 模拟交易至少运行 2 周
- 策略表现稳定后再考虑实盘
4.3 所需前置知识
✅ 必须掌握
- 基本计算机操作:会用电脑、浏览器
- 命令行基础:知道如何打开终端,执行命令
- 英文阅读能力:大部分文档是英文的
- 基本投资知识:知道什么是买入、卖出、止损
⚠️ 推荐掌握(但不强制)
- Python 基础:能看懂简单的 Python 代码
- 技术分析基础:知道什么是均线、RSI、MACD
- 交易经验:在交易所买卖过加密货币
❌ 不需要掌握
- 高级编程:不需要是程序员
- 复杂数学:不需要懂高等数学
- 丰富经验:零基础也可以学
4.4 学习所需资源
💻 硬件要求
最低配置:
- CPU:双核
- 内存:4GB
- 硬盘:20GB 空闲空间
- 网络:稳定的互联网连接
推荐配置:
- CPU:四核
- 内存:8GB
- 硬盘:50GB SSD
- 网络:100Mbps+
💰 资金要求
学习阶段(第 1-20 课):
- ✅ 0 元(使用模拟账户)
实盘测试(第 21-25 课):
- ⚠️ 建议 $100-500(可承受损失的资金)
正式运行:
- 根据个人情况而定
- 新手建议不超过总资产的 10%
📚 学习资源
配套文档:
- 📄 TESTING_GUIDE.md - 测试命令指南
- 📄 STRATEGY_SELECTION_GUIDE.md - 策略选择指南
- 📄 CONFIG_EXPLANATION.md - 配置文件详解
- 📄 TROUBLESHOOTING.md - 故障排查指南
官方资源:
⚠️ 重要风险提示
在开始学习之前,请务必理解:
-
量化交易有风险,可能导致资金损失
- 即使是最好的策略也可能亏损
- 过去的表现不代表未来
-
本课程仅供教育目的
- 不构成投资建议
- 所有交易决策由你自己负责
-
务必从模拟交易开始
- 完成至少 2 周的 Dry-run 测试
- 策略稳定后再考虑实盘
-
只投入可承受损失的资金
- 不要用借款交易
- 不要用生活必需的资金
- 新手建议不超过总资产的 5-10%
-
保持学习和谨慎
- 市场在不断变化
- 需要持续优化策略
- 不要期望一夜暴富
📝 课后任务
任务 1:自我评估(必做)
回答以下问题,评估你是否适合学习量化交易:
-
你的学习目标是什么?
- [ ] 学习量化交易知识
- [ ] 开发自动交易策略
- [ ] 实盘盈利
- [ ] 其他:___________
-
你每周能投入多少学习时间?
- [ ] < 3 小时
- [ ] 3-5 小时
- [ ] 5-10 小时
- [ ] > 10 小时
-
你的风险承受能力?
- [ ] 保守型(无法接受任何亏损)
- [ ] 稳健型(可接受小幅亏损)
- [ ] 平衡型(可接受一定回撤)
- [ ] 激进型(追求高收益,接受高风险)
-
你对量化交易的期望收益?
- [ ] 年化 5-10%(保守)
- [ ] 年化 10-20%(合理)
- [ ] 年化 20-50%(乐观)
- [ ] 年化 > 50%(不现实)
-
你有编程经验吗?
- [ ] 没有(但愿意学习)
- [ ] 会一点 Python
- [ ] 会编程但不熟悉 Python
- [ ] 熟练掌握 Python
建议:
- 如果你选择"保守型"且期望"> 50%",建议重新考虑
- 如果你每周< 3小时,建议延长学习周期
- 如果你没有编程经验,建议先学习 Python 基础
任务 2:注册交易所账户(必做)
目标:为后续学习做准备
步骤:
- 选择一个交易所(推荐 Binance 或 OKX)
- 注册账户(实名认证)
- 熟悉交易界面
- 暂时不要充值(学习阶段不需要)
推荐交易所:
-
Binance(币安)
- 优点:全球最大,流动性好,手续费低
- 缺点:部分地区受限
- 链接:https://www.binance.com/
-
OKX(欧易)
- 优点:中文支持好,功能强大
- 缺点:相对币安稍小
- 链接:https://www.okx.com/
⚠️ 注意:本课程使用模拟账户,真实账户仅用于学习界面。
任务 3:加入 Freqtrade 社区(推荐)
目标:获取帮助和交流
步骤:
- 加入 Freqtrade Discord
- 在 #introductions 频道简单介绍自己
- 浏览 #general 和 #strategy 频道
- 收藏 官方文档
任务 4:思考与讨论(选做)
思考题:
你认为量化交易最大的优势是什么?
如果一个策略回测收益 100%,你会直接用真钱吗?为什么?
假设你有 10,000 USDT,你会投入多少用于量化交易?
你对 Freqtrade 还有什么疑问?
欢迎在社区分享你的想法!
🎓 课后小测验
选择题
-
量化交易最大的优势是?
- A. 能预测未来价格
- B. 保证盈利
- C. 消除情绪影响
- D. 不需要任何知识
-
什么是过拟合?
- A. 策略太简单
- B. 策略在历史数据表现好,但实盘无效
- C. 策略亏损
- D. 策略太复杂
-
Freqtrade 是?
- A. 收费的交易软件
- B. 只能回测的工具
- C. 开源的交易机器人
- D. 一个交易所
-
学习量化交易最重要的心态是?
- A. 追求暴利
- B. 相信能一夜暴富
- C. 谨慎、耐心、持续学习
- D. 完全依赖机器人
-
以下哪个不是 Freqtrade 的功能?
- A. 策略回测
- B. 参数优化
- C. 预测未来价格
- D. 自动交易
判断题
回测表现好的策略,实盘一定赚钱。( )
量化交易完全不需要人工干预。( )
初学者应该先用模拟账户测试。( )
只要策略好,可以投入全部资金。( )
市场变化时,策略需要调整优化。( )
答案见文末 ⬇️
✅ 学习检查清单
在进入第 2 课之前,确保你已经:
- [ ] 理解什么是量化交易
- [ ] 了解量化交易的优势和风险
- [ ] 认识 Freqtrade 及其功能
- [ ] 明确自己的学习目标
- [ ] 评估自己是否适合学习量化交易
- [ ] 注册交易所账户(暂不充值)
- [ ] 加入 Freqtrade 社区
- [ ] 完成课后小测验(正确率 > 80%)
如果有任何疑问,请返回相应章节复习,或在社区提问。
🎯 下节预告
第 2 课:Freqtrade 环境搭建
在第 2 课中,我们将:
- 安装 Python 和 Conda 环境
- 安装 Freqtrade
- 配置第一个 config.json 文件
- 运行第一个 Freqtrade 命令
- 验证环境是否正确
准备工作:
- 确保电脑有 20GB 空闲空间
- 准备 1-2 小时的完整时间
- 保持网络连接稳定
📌 小测验答案
- C - 消除情绪影响
- B - 策略在历史数据表现好,但实盘无效
- C - 开源的交易机器人
- C - 谨慎、耐心、持续学习
- C - 预测未来价格
- ❌ 错误(历史不代表未来)
- ❌ 错误(需要监控和维护)
- ✅ 正确
- ❌ 错误(只投入可承受损失的资金)
- ✅ 正确
💬 课后讨论
讨论主题
-
分享你的量化交易目标
- 你希望通过本课程达成什么目标?
- 你计划投入多少时间和资金?
-
你对量化交易的疑虑
- 你最担心的风险是什么?
- 你对哪部分最感兴趣?
-
学习伙伴招募
- 寻找一起学习的伙伴
- 组建学习小组互相监督
欢迎在社区的 #course-discussion 频道讨论!
恭喜你完成第 1 课!准备好进入实操环节了吗? 🚀
下一课我们将正式安装 Freqtrade,开始你的量化交易之旅!
📝 课程反馈:如果本课有任何不清楚的地方,欢迎提出建议!
Top comments (0)