← 返回主页

📈 量化交易回测系统

本地环境 · Python + backtrader + akShare · 上证指数 2020-2026
📋 目录
  1. 回测结果总览
  2. 收益曲线 & 买卖信号
  3. 参数优化对比
  4. 交易明细
  5. 策略代码
  6. 推荐工具 & 学习路径

📊 回测结果总览

数据:上证指数(2020-01-02 至 2026-06-30,共 1571 个交易日)

策略:双均线交叉(MA10 × MA30),95%资金入场,万2.5手续费

-0.72%
总收益率
-14.02%
最大回撤
23
买入次数
22
卖出次数
🎯 结论:纯双均线策略(MA10×MA30)在2020-2026年上证指数上,6年半下来 几乎不赚不亏(-0.72%),最大回撤仅14%。跑不过同期买入持有(大盘涨了约33%),但回撤控制得更好。这说明简单均线策略不能创造超额收益,但可以帮你降低波动。
⚠️ 重要提示:回测结果不代表实盘。手续费只算了万2.5,未含印花税(A股卖出收万10)和滑点。真实收益会更低。

📉 收益曲线 & 买卖信号

上图展示了大盘走势(黑色)、短期均线MA10(蓝色)、长期均线MA30(红色),以及策略的买入信号(🟢 绿色箭头)和卖出信号(🔴 红色箭头)。中图为账户净值变化,下图为回撤走势。

📊 MA10 × MA30 回测详细走势
回测图表:价格+均线+买卖信号+净值曲线+回撤曲线

🔬 参数优化对比

5组不同均线参数的回测结果对比。每个参数组合代表不同的交易频率和风险收益特征。

📊 不同参数组合 收益率 vs 最大回撤
参数对比柱状图:收益率 vs 最大回撤
参数总收益率最大回撤交易次数特点
MA5×MA20 +6.62% -32.69% 55次 收益最高,但回撤也大,短期均线更敏感
MA5×MA30 +8.11% -20.36% 42次 综合最佳,收益正且回撤可控
MA10×MA30 ← 本次 -0.72% -14.02% 23次 回撤最小,但几乎不赚不亏
MA10×MA60 -0.37% -19.78% 12次 交易频率低,信号少
MA20×MA60 -4.76% -31.27% 14次 长期均线反应太慢,错过行情也躲不开大跌
⚠️ 过拟合警告:MA5×MA30 在回测中表现最好(+8.11%),但这是"回头看"选出的最优参数。换了时间段或股票,这个参数可能反而最差。别追最优参数。

📋 交易明细

45 笔交易(23次买入,22次卖出),以下为最近部分交易:

📋 交易清单(买卖配对)
交易明细表

💻 策略代码

核心策略不到40行,可以直接在服务器上运行和修改。

class GoldenCrossStrategy(bt.Strategy):
    params = (
        ("short_period", 10),  # 短期均线天数
        ("long_period", 30),    # 长期均线天数
        ("target_pct", 0.95),  # 每次用95%资金买入
    )

    def __init__(self):
        self.short_ma = bt.ind.SMA(self.data.close,
                                   period=self.params.short_period)
        self.long_ma  = bt.ind.SMA(self.data.close,
                                   period=self.params.long_period)
        self.crossover = bt.ind.CrossOver(self.short_ma, self.long_ma)
        self.order = None

    def next(self):
        if self.order:
            return

        if not self.position:
            if self.crossover > 0:   # 金叉 → 买入
                self.order = self.order_target_percent(
                    target=self.params.target_pct)
        else:
            if self.crossover < 0:   # 死叉 → 清仓
                self.order = self.order_target_percent(target=0.0)
📁 项目位置: /root/quant-tutorial/
激活环境: source /root/quant-tutorial/.venv/bin/activate
运行回测: python /root/quant-tutorial/demo_strategy.py

🧰 推荐工具 & 学习路径

国内量化平台(散户友好)

平台特点适合
聚宽 JoinQuant在线回测,无需本地安装零基础入门
掘金量化 MyQuant客户端软件,多品种进阶
米筐 RiceQuant数据质量高,社区活跃进阶
QMT / PTrade券商自带量化终端有实盘需求

从这次回测能学到的

关键认知:
1. 简单策略不赚钱 — 双均线这种烂大街的策略,回测下来基本打平大盘甚至微亏
2. 回撤控制比收益率重要 — 纯均线策略虽然赚不到超额收益,但能把回撤控制在14%(对比买入持有的33%以上)
3. 参数优化是双刃剑 — 找最优参数看似聪明,实际容易过拟合
4. 量化不是印钞机 — 它帮你排除烂策略、管理风险,但不会保证赚钱

学习路径

前3个月的目标是理解量化是怎么回事,不是跑赢市场。