DEV Community

Henry Lin
Henry Lin

Posted on

第 1 课:量化交易与 Freqtrade 简介

第 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%,后悔昨晚卖了...
Enter fullscreen mode Exit fullscreen mode

问题

  • 😰 情绪化决策(恐惧、贪婪)
  • ⏰ 盯盘累(24小时市场)
  • 🎲 运气成分大(凭感觉)
  • 📉 经常买高卖低

量化交易方式

交易机器人的一天

while True:
    当前价格 = 获取实时价格()

    if EMA20上穿EMA50 and 价格在EMA20上方:
        买入(100 USDT)
        print("✅ 触发买入信号")

    if 盈利 > 5% or 亏损 > 2%:
        卖出()
        print("✅ 触发卖出信号")

    休息(5分钟)
Enter fullscreen mode Exit fullscreen mode

特点

  • 🤖 规则化决策(严格执行)
  • ⚡ 24/7 不休息(抓住每个机会)
  • 📊 数据驱动(基于历史统计)
  • 🎯 纪律性强(不受情绪影响)

1.2 量化交易的定义

量化交易(Quantitative Trading):使用数学模型和计算机程序,根据预设的交易策略,自动执行买卖决策的交易方式。

三个核心要素

策略 → 数据 → 执行
  ↓      ↓      ↓
规则   历史   自动化
Enter fullscreen mode Exit fullscreen mode
  1. 策略(Strategy)

    • 何时买入?何时卖出?
    • 例如:EMA金叉买入,死叉卖出
  2. 数据(Data)

    • 历史价格、成交量、技术指标
    • 用于回测和优化
  3. 执行(Execution)

    • 自动下单、止损、止盈
    • 无需人工干预

1.3 一个简单的例子

策略描述:当 Bitcoin 的 20 日均线上穿 50 日均线时买入,下穿时卖出。

代码实现(伪代码):

# 每天检查一次
for 每一天 in 历史数据:
    MA20 = 最近20天的平均价格
    MA50 = 最近50天的平均价格

    if MA20 刚刚上穿 MA50:
        买入(1000 USDT)

    if MA20 刚刚下穿 MA50:
        卖出()
Enter fullscreen mode Exit fullscreen mode

回测结果(假设):

  • 📅 测试期间:2024年全年
  • 💰 初始资金:10,000 USDT
  • 📈 最终资金:12,500 USDT
  • 🎯 收益率:+25%
  • 📊 胜率:65%

结论:这个策略在 2024 年表现不错,但不代表 2025 年也有效!


🚀 第二部分:量化交易的优势与风险

2.1 量化交易的优势

✅ 1. 消除情绪影响

案例:恐慌性抛售

传统交易者:
BTC 跌 10% → 恐慌 → 割肉 → 第二天涨回来 → 后悔

量化交易者:
BTC 跌 10% → 机器人检查策略 → 不满足卖出条件 → 继续持有 → 第二天盈利
Enter fullscreen mode Exit fullscreen mode

优势

  • 不会因为恐惧而过早卖出
  • 不会因为贪婪而追高
  • 严格执行预设规则

✅ 2. 24/7 全天候交易

加密货币市场特点

  • 🌏 全球市场,7×24 小时交易
  • 🌙 半夜可能出现最佳交易机会
  • ⏰ 人不可能一直盯盘

量化交易的解决方案

人类:睡觉了 😴
机器人:检测到买入信号 → 自动买入 → 第二天醒来盈利 3% ✅
Enter fullscreen mode Exit fullscreen mode

✅ 3. 快速执行

速度对比
| 操作 | 人工 | 机器人 |
|------|------|--------|
| 发现信号 | 1-5 分钟 | < 1 秒 |
| 下单 | 30-60 秒 | < 0.1 秒 |
| 同时监控 | 1-3 个币种 | 无限个 |

实际影响

  • 在快速波动的市场,0.1% 的价格差异可能决定盈亏
  • 机器人能同时监控 50+ 个交易对
  • 高频策略(分钟级)只有机器能做

✅ 4. 数据驱动决策

传统方式

"我觉得这个币要涨" ← 主观判断
"朋友推荐的,应该靠谱" ← 盲目跟风
"图表看起来像要突破" ← 经验主义
Enter fullscreen mode Exit fullscreen mode

量化方式

回测 1000 笔历史交易 → 这个策略胜率 70%,平均盈利 2%
统计分析:该策略在震荡市表现好,趋势市表现差
→ 只在震荡市使用
Enter fullscreen mode Exit fullscreen mode

✅ 5. 可回测和优化

优势流程

设计策略 → 回测验证 → 发现问题 → 优化参数 → 再次回测 → 实盘测试
Enter fullscreen mode Exit fullscreen mode

对比

  • 传统:只能用真金白银试错 💸
  • 量化:用历史数据"免费"试错 📊

2.2 量化交易的风险和挑战

⚠️ 1. 过拟合(Overfitting)

什么是过拟合?

想象一个极端策略:

if 日期 == "2024-03-15" and 时间 == "14:23":
    买入 BTC
if 日期 == "2024-03-16" and 时间 == "09:47":
    卖出 BTC
Enter fullscreen mode Exit fullscreen mode

回测结果:完美!抓住了历史上的一次大涨 📈

实盘结果:完全无效,因为历史不会精确重演 📉

如何避免

  • ✅ 在不同时间段测试策略
  • ✅ 策略逻辑要简单,不要过度复杂
  • ✅ 保留样本外数据测试
  • ✅ 至少测试 1 年以上的数据

⚠️ 2. 技术风险

可能的技术问题

问题 影响 案例
网络断开 错过交易机会 网络故障期间暴跌 10%
程序崩溃 无法执行止损 服务器宕机,亏损扩大
API 限制 无法下单 交易所 API 超限被封
数据错误 错误决策 价格数据延迟,买在高点

应对措施

  • ✅ 使用稳定的服务器(VPS)
  • ✅ 设置网络监控和自动重启
  • ✅ 使用多个交易所(备份)
  • ✅ 设置最大损失限制

⚠️ 3. 市场变化

策略失效的原因

2024 年策略:震荡市,均值回归策略表现好 ✅
2025 年市场:单边牛市,均值回归策略亏损 ❌

原因:市场特征改变了
Enter fullscreen mode Exit fullscreen mode

应对

  • ✅ 持续监控策略表现
  • ✅ 定期回测和优化
  • ✅ 准备多个适应不同市场的策略
  • ✅ 设置策略失效的预警机制

⚠️ 4. 黑天鹅事件

什么是黑天鹅?

  • 极端罕见的市场事件
  • 历史数据中很少出现
  • 回测无法预测

案例

  • 2020 年 3 月 12 日:BTC 单日暴跌 50%
  • 2022 年 5 月:LUNA 崩盘,从 $80 跌到 $0.0001
  • 交易所倒闭(FTX 事件)

应对

  • ✅ 设置严格的止损
  • ✅ 分散投资(不要 All-in 一个币)
  • ✅ 只投入可承受损失的资金
  • ✅ 保持适当的现金储备

⚠️ 5. 心理挑战

即使是量化交易,也会遇到心理问题

回测收益:+50%
实盘运行 1 个月:-5%

你的反应:
❌ "这策略有问题,赶紧停掉!"
✅ "回测是 1 年数据,1 个月回撤正常,继续观察"
Enter fullscreen mode Exit fullscreen mode

常见心理陷阱

  • 频繁修改策略(追求完美)
  • 看到亏损就停止(缺乏耐心)
  • 盈利后加大仓位(贪婪)
  • 手动干预机器人(不信任策略)

应对

  • ✅ 制定交易计划并严格执行
  • ✅ 记录交易日记,分析心理变化
  • ✅ 给策略足够的验证时间(至少 3-6 个月)
  • ✅ 接受策略有盈有亏是正常现象

2.3 量化交易适合你吗?

✅ 适合量化交易的人

  • 📊 喜欢数据分析:愿意研究历史数据和统计规律
  • 💻 有基本编程能力:能看懂代码,进行简单修改
  • 有耐心:接受策略需要时间验证
  • 🎯 有纪律:能严格执行交易计划
  • 💰 风险承受能力:只用闲钱投资

❌ 不适合量化交易的人

  • 🎲 喜欢赌博刺激:追求一夜暴富
  • 😰 情绪化严重:看到亏损就慌乱
  • 缺乏耐心:期望马上盈利
  • 💸 用借款或必需资金:承受不起损失
  • 🚫 完全不懂技术:不愿意学习

🤖 第三部分:Freqtrade 是什么?

3.1 Freqtrade 简介

Freqtrade 是一个免费、开源的加密货币交易机器人,用 Python 编写,支持策略开发、回测、优化和自动交易。

官方信息


3.2 Freqtrade 的核心功能

功能 1:策略回测 🔍

作用:用历史数据验证策略

# 一行命令测试策略
freqtrade backtesting --strategy MyStrategy --timerange 20240101-20241231

# 输出:
# 交易次数:150
# 胜率:65%
# 总收益:+35%
# 最大回撤:-12%
Enter fullscreen mode Exit fullscreen mode

价值

  • 避免直接用真钱测试
  • 快速验证策略可行性
  • 发现策略的优缺点

功能 2:参数优化 ⚡

问题:策略有很多参数,如何找到最佳组合?

# 例如这些参数应该设置为多少?
RSI_threshold = ?   # 30-70 之间选择
MA_period = ?       # 10-50 之间选择
stop_loss = ?       # -5% 还是 -10%?
Enter fullscreen mode Exit fullscreen mode

Freqtrade 的解决方案

# 自动测试 1000 种参数组合
freqtrade hyperopt --strategy MyStrategy --epochs 1000

# 输出最佳参数:
# RSI_threshold = 35
# MA_period = 23
# stop_loss = -7%
Enter fullscreen mode Exit fullscreen mode

功能 3:模拟交易 (Dry-run) 🎮

作用:不用真钱,用虚拟资金实时测试

# 启动模拟交易
freqtrade trade --strategy MyStrategy --dry-run

# 系统会:
# ✅ 获取实时市场数据
# ✅ 执行真实的买卖逻辑
# ❌ 但不会真的下单
# ✅ 记录所有交易结果
Enter fullscreen mode Exit fullscreen mode

价值

  • 零成本验证策略
  • 发现实盘可能遇到的问题
  • 建立对策略的信心

功能 4:自动交易 🤖

作用:真实执行交易

# 启动实盘交易
freqtrade trade --strategy MyStrategy

# 机器人会自动:
# ✅ 监控市场
# ✅ 发现买卖信号
# ✅ 自动下单
# ✅ 自动止损止盈
# ✅ 记录交易日志
Enter fullscreen mode Exit fullscreen mode

价值

  • 24/7 不间断交易
  • 严格执行策略规则
  • 无情绪化决策

功能 5:可视化分析 📊

作用:生成图表分析策略

# 生成策略图表
freqtrade plot-dataframe --strategy MyStrategy --pairs BTC/USDT

# 输出:包含买卖点标记的交互式图表
Enter fullscreen mode Exit fullscreen mode

示例图表元素

  • 🟢 绿色箭头 = 买入信号
  • 🔴 红色箭头 = 卖出信号
  • 📈 K线图
  • 📊 技术指标(EMA、RSI 等)

功能 6:多交易所支持 🌍

支持的主流交易所

交易所 现货 合约 推荐度
Binance ⭐⭐⭐⭐⭐
OKX ⭐⭐⭐⭐
Bybit ⭐⭐⭐⭐
Kraken ⭐⭐⭐
Gate.io ⭐⭐⭐
KuCoin ⭐⭐⭐

切换交易所只需修改配置

{
  "exchange": {
    "name": "binance"  // 改为 "okx"  "bybit"
  }
}
Enter fullscreen mode Exit fullscreen mode

3.3 Freqtrade vs 其他交易机器人

对比表

特性 Freqtrade TradingView 3Commas 自己写代码
开源 ✅ 免费 ❌ 付费 ❌ 付费 ✅ 免费
灵活性 ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐ ⭐⭐⭐⭐⭐
易用性 ⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐
回测 ✅ 强大 ✅ 基础 ❌ 无 ❌ 需自己实现
社区 ✅ 活跃 ✅ 活跃 ⚠️ 一般 ❌ 无
学习曲线 ⭐⭐⭐ ⭐⭐ ⭐⭐ ⭐⭐⭐⭐⭐

为什么选择 Freqtrade?

✅ 优势

  1. 完全免费:无任何订阅费用
  2. 开源透明:代码公开,安全可靠
  3. 功能强大:回测、优化、实盘一体
  4. 社区活跃:问题能快速得到解答
  5. 可定制:完全控制策略逻辑

⚠️ 劣势

  1. 需要编程基础:至少能看懂 Python
  2. 需要自己配置:不是点击几下就能用
  3. 学习曲线较陡:需要时间掌握

3.4 Freqtrade 能做什么?不能做什么?

✅ Freqtrade 能做的

✅ 现货交易(买卖加密货币)
✅ 合约交易(做多做空)
✅ 网格交易
✅ DCA(定投)策略
✅ 多交易对同时运行
✅ 止损止盈
✅ 风险管理
✅ Telegram 通知
✅ Web UI 监控
✅ 数据可视化
Enter fullscreen mode Exit fullscreen mode

❌ Freqtrade 不能做的

❌ 预测未来价格(没有水晶球)
❌ 保证盈利(任何策略都有风险)
❌ 完全托管(需要你监控和维护)
❌ 自动生成完美策略(需要你设计和优化)
❌ 应对所有市场情况(黑天鹅事件难以应对)
Enter fullscreen mode Exit fullscreen mode

📚 第四部分:课程学习路径

4.1 课程总览

30 课完整体系

第一部分:基础入门(第 1-4 课)
└─ 环境搭建、核心概念、数据下载

第二部分:回测实战(第 5-10 课)
└─ 回测命令、性能分析、策略对比

第三部分:策略优化(第 11-15 课)
└─ Hyperopt、评分体系、风险管理

第四部分:实时信号(第 16-20 课)
└─ Dry-run、Telegram、可视化

第五部分:实盘交易(第 21-25 课)
└─ API 配置、小资金测试、监控

第六部分:进阶专题(第 26-30 课)
└─ 自定义策略、AI、多时间框架
Enter fullscreen mode Exit fullscreen mode

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 周:小资金实盘测试(可选)
Enter fullscreen mode Exit fullscreen mode

📖 学习方法

  1. 理论 + 实践结合

    • 每课都有实践任务
    • 必须完成至少 80% 的任务才能进入下一课
  2. 记录学习笔记

    • 记录遇到的问题和解决方法
    • 制作自己的命令速查表
  3. 加入社区

  4. 不要急于实盘

    • 至少完成第 1-20 课
    • 模拟交易至少运行 2 周
    • 策略表现稳定后再考虑实盘

4.3 所需前置知识

✅ 必须掌握

  • 基本计算机操作:会用电脑、浏览器
  • 命令行基础:知道如何打开终端,执行命令
  • 英文阅读能力:大部分文档是英文的
  • 基本投资知识:知道什么是买入、卖出、止损

⚠️ 推荐掌握(但不强制)

  • Python 基础:能看懂简单的 Python 代码
  • 技术分析基础:知道什么是均线、RSI、MACD
  • 交易经验:在交易所买卖过加密货币

❌ 不需要掌握

  • 高级编程:不需要是程序员
  • 复杂数学:不需要懂高等数学
  • 丰富经验:零基础也可以学

4.4 学习所需资源

💻 硬件要求

最低配置:
- CPU:双核
- 内存:4GB
- 硬盘:20GB 空闲空间
- 网络:稳定的互联网连接

推荐配置:
- CPU:四核
- 内存:8GB
- 硬盘:50GB SSD
- 网络:100Mbps+
Enter fullscreen mode Exit fullscreen mode

💰 资金要求

学习阶段(第 1-20 课)

  • ✅ 0 元(使用模拟账户)

实盘测试(第 21-25 课)

  • ⚠️ 建议 $100-500(可承受损失的资金)

正式运行

  • 根据个人情况而定
  • 新手建议不超过总资产的 10%

📚 学习资源

配套文档

官方资源


⚠️ 重要风险提示

在开始学习之前,请务必理解:

  1. 量化交易有风险,可能导致资金损失

    • 即使是最好的策略也可能亏损
    • 过去的表现不代表未来
  2. 本课程仅供教育目的

    • 不构成投资建议
    • 所有交易决策由你自己负责
  3. 务必从模拟交易开始

    • 完成至少 2 周的 Dry-run 测试
    • 策略稳定后再考虑实盘
  4. 只投入可承受损失的资金

    • 不要用借款交易
    • 不要用生活必需的资金
    • 新手建议不超过总资产的 5-10%
  5. 保持学习和谨慎

    • 市场在不断变化
    • 需要持续优化策略
    • 不要期望一夜暴富

📝 课后任务

任务 1:自我评估(必做)

回答以下问题,评估你是否适合学习量化交易:

  1. 你的学习目标是什么?

    • [ ] 学习量化交易知识
    • [ ] 开发自动交易策略
    • [ ] 实盘盈利
    • [ ] 其他:___________
  2. 你每周能投入多少学习时间?

    • [ ] < 3 小时
    • [ ] 3-5 小时
    • [ ] 5-10 小时
    • [ ] > 10 小时
  3. 你的风险承受能力?

    • [ ] 保守型(无法接受任何亏损)
    • [ ] 稳健型(可接受小幅亏损)
    • [ ] 平衡型(可接受一定回撤)
    • [ ] 激进型(追求高收益,接受高风险)
  4. 你对量化交易的期望收益?

    • [ ] 年化 5-10%(保守)
    • [ ] 年化 10-20%(合理)
    • [ ] 年化 20-50%(乐观)
    • [ ] 年化 > 50%(不现实)
  5. 你有编程经验吗?

    • [ ] 没有(但愿意学习)
    • [ ] 会一点 Python
    • [ ] 会编程但不熟悉 Python
    • [ ] 熟练掌握 Python

建议

  • 如果你选择"保守型"且期望"> 50%",建议重新考虑
  • 如果你每周< 3小时,建议延长学习周期
  • 如果你没有编程经验,建议先学习 Python 基础

任务 2:注册交易所账户(必做)

目标:为后续学习做准备

步骤

  1. 选择一个交易所(推荐 Binance 或 OKX)
  2. 注册账户(实名认证)
  3. 熟悉交易界面
  4. 暂时不要充值(学习阶段不需要)

推荐交易所

  • Binance(币安)

  • OKX(欧易)

⚠️ 注意:本课程使用模拟账户,真实账户仅用于学习界面。


任务 3:加入 Freqtrade 社区(推荐)

目标:获取帮助和交流

步骤

  1. 加入 Freqtrade Discord
  2. 在 #introductions 频道简单介绍自己
  3. 浏览 #general 和 #strategy 频道
  4. 收藏 官方文档

任务 4:思考与讨论(选做)

思考题

  1. 你认为量化交易最大的优势是什么?

  2. 如果一个策略回测收益 100%,你会直接用真钱吗?为什么?

  3. 假设你有 10,000 USDT,你会投入多少用于量化交易?

  4. 你对 Freqtrade 还有什么疑问?

欢迎在社区分享你的想法!


🎓 课后小测验

选择题

  1. 量化交易最大的优势是?

    • A. 能预测未来价格
    • B. 保证盈利
    • C. 消除情绪影响
    • D. 不需要任何知识
  2. 什么是过拟合?

    • A. 策略太简单
    • B. 策略在历史数据表现好,但实盘无效
    • C. 策略亏损
    • D. 策略太复杂
  3. Freqtrade 是?

    • A. 收费的交易软件
    • B. 只能回测的工具
    • C. 开源的交易机器人
    • D. 一个交易所
  4. 学习量化交易最重要的心态是?

    • A. 追求暴利
    • B. 相信能一夜暴富
    • C. 谨慎、耐心、持续学习
    • D. 完全依赖机器人
  5. 以下哪个不是 Freqtrade 的功能?

    • A. 策略回测
    • B. 参数优化
    • C. 预测未来价格
    • D. 自动交易

判断题

  1. 回测表现好的策略,实盘一定赚钱。( )

  2. 量化交易完全不需要人工干预。( )

  3. 初学者应该先用模拟账户测试。( )

  4. 只要策略好,可以投入全部资金。( )

  5. 市场变化时,策略需要调整优化。( )

答案见文末 ⬇️


✅ 学习检查清单

在进入第 2 课之前,确保你已经:

  • [ ] 理解什么是量化交易
  • [ ] 了解量化交易的优势和风险
  • [ ] 认识 Freqtrade 及其功能
  • [ ] 明确自己的学习目标
  • [ ] 评估自己是否适合学习量化交易
  • [ ] 注册交易所账户(暂不充值)
  • [ ] 加入 Freqtrade 社区
  • [ ] 完成课后小测验(正确率 > 80%)

如果有任何疑问,请返回相应章节复习,或在社区提问。


🎯 下节预告

第 2 课:Freqtrade 环境搭建

在第 2 课中,我们将:

  • 安装 Python 和 Conda 环境
  • 安装 Freqtrade
  • 配置第一个 config.json 文件
  • 运行第一个 Freqtrade 命令
  • 验证环境是否正确

准备工作

  • 确保电脑有 20GB 空闲空间
  • 准备 1-2 小时的完整时间
  • 保持网络连接稳定

📌 小测验答案

  1. C - 消除情绪影响
  2. B - 策略在历史数据表现好,但实盘无效
  3. C - 开源的交易机器人
  4. C - 谨慎、耐心、持续学习
  5. C - 预测未来价格
  6. ❌ 错误(历史不代表未来)
  7. ❌ 错误(需要监控和维护)
  8. ✅ 正确
  9. ❌ 错误(只投入可承受损失的资金)
  10. ✅ 正确

💬 课后讨论

讨论主题

  1. 分享你的量化交易目标

    • 你希望通过本课程达成什么目标?
    • 你计划投入多少时间和资金?
  2. 你对量化交易的疑虑

    • 你最担心的风险是什么?
    • 你对哪部分最感兴趣?
  3. 学习伙伴招募

    • 寻找一起学习的伙伴
    • 组建学习小组互相监督

欢迎在社区的 #course-discussion 频道讨论!


恭喜你完成第 1 课!准备好进入实操环节了吗? 🚀

下一课我们将正式安装 Freqtrade,开始你的量化交易之旅!


📝 课程反馈:如果本课有任何不清楚的地方,欢迎提出建议!

Top comments (0)