🏠
AI量化交易 · 第8章
目录
Chapter 08

你的第一个量化环境

不需要安装任何东西,5分钟就能运行你的第一段量化代码

本章学习目标

  1. 了解主流在线量化平台的特点和选择方法
  2. 在Google Colab上搭建完整的Python量化环境
  3. 了解JoinQuant(聚宽)等国内平台的基本用法
  4. 运行第一段Python代码,验证环境配置
  5. 学会用AI辅助解决环境配置问题

从"安装失败"到"直接开干"

2019年,我花了整整三天时间试图在Windows电脑上配置Python量化环境。pandas和numpy的版本冲突、TensorFlow的CUDA驱动问题、Backtrader的依赖地狱……每一步都是坑。等到终于跑通第一个"Hello World"时,我的热情已经被消磨了一半。

后来我才知道,这种痛苦完全是自找的。在这个时代,你根本不需要在本地安装任何东西。Google Colab、JoinQuant、QuantConnect……这些平台已经为你准备好了一切。打开浏览器,登录账号,直接写代码。你的"开发环境"就是一台能上网的电脑——甚至平板或手机都行。

这不是妥协,这是进化。传统的"先装Python、再配环境、再调依赖"的学习路径,就像学开车之前先学造车一样荒谬。你的目标是做量化交易,不是成为系统管理员。把环境配置交给云平台,把精力留给策略研究——这才是聪明人的做法。

好消息:本章结束后的15分钟内,你将运行人生中第一段量化相关的Python代码。不需要安装任何软件,不需要配置任何环境,只需要一个浏览器和一个Google账号。

在线量化平台全景图

在开始之前,让我们快速浏览一下目前主流的在线量化平台。它们各有特色,适合不同阶段和需求的交易者。

Google Colab
Google提供的免费Jupyter笔记本环境,自带Python和常见数据科学库。最适合初学者学习Python和做数据分析。
免费
国际
通用编程
JoinQuant 聚宽
国内领先的量化平台,提供A股数据、回测引擎和模拟交易。中文文档完善,社区活跃。
免费额度
A股数据
中文
QuantConnect
国际知名的开源量化平台,支持多种资产类别和编程语言(C#、Python)。Lean引擎可本地部署。
开源
多语言
国际
RiceQuant 米筐
国内专业量化平台,数据质量高,支持期货、期权等多品种。适合中高级用户。
专业级
多品种
中文

对于刚起步的你,我的建议是:先用Google Colab学习Python基础,再用JoinQuant做A股策略回测。Colab的通用性更强,可以运行任何Python代码;JoinQuant则提供了现成的A股数据和回测框架,省去很多数据获取的麻烦。

为什么推荐从云端开始

很多人问我:"为什么不直接在本地装Python?这样不是更自由吗?"问得好。本地环境确实更自由,但自由是有代价的:

当然,当你进阶到一定程度,本地环境还是有必要的。但那是后话。对于现在的你,云端是最快、最省心的起点

5分钟搭建Google Colab环境

Google Colab是目前最适合初学者的Python在线环境。它完全免费,提供免费的GPU(虽然有时需要排队),而且与Google Drive无缝集成,你的代码和文件会自动保存。

第一步:打开Colab

在浏览器中访问 colab.research.google.com。如果你已经有Google账号,直接登录;如果没有,花两分钟注册一个。登录后,点击"新建笔记本",你就拥有了一个空白的Python开发环境。

第二步:运行第一段代码

在第一个代码单元格里输入以下内容,然后按 Shift + Enter 运行:

# 我的第一段量化代码:环境检测
import sys
print(f"Python版本: {sys.version}")

# 检查关键库是否可用
libraries = ['numpy', 'pandas', 'matplotlib']
for lib in libraries:
    try:
        __import__(lib)
        print(f"✓ {lib} 已安装")
    except ImportError:
        print(f"✗ {lib} 未安装")

print("\n🎉 环境检查完成!你已经准备好开始量化之旅了。")

如果一切正常,你会看到Python版本信息和三个"✓"符号。这意味着你的环境已经具备了量化交易开发的基本条件。整个过程没有安装任何软件,没有配置任何路径——这就是云端的魅力。

第三步:安装量化专用库

Colab已经预装了很多常用库,但量化专用的库(如Backtrader、AKShare)可能需要额外安装。在Colab里安装库非常简单,只需要在代码单元格里加一行:

# 安装量化库
!pip install backtrader akshare tushare -q

# 验证安装
import backtrader as bt
import akshare as ak
print("Backtrader版本:", bt.__version__)
print("AKShare导入成功!")

注意前面的!pip——在Jupyter/Colab环境中,以感叹号开头的命令会在系统shell中执行。这是安装库的标准方式。安装完成后,你就可以像使用任何其他Python库一样使用它们了。

graph TD A[打开 colab.research.google.com] --> B[登录Google账号] B --> C[新建笔记本] C --> D[运行环境检测代码] D --> E[安装所需库] E --> F[开始写量化策略] style F fill:#10b981,stroke:#06b6d4,color:#e8ecf4

JoinQuant:一站式A股量化平台

如果你的目标很明确——研究A股策略——那么JoinQuant(聚宽)可能是比Colab更好的起点。它不需要你去找数据源、处理复权、对接行情……所有这些基础设施都已经准备好了。

JoinQuant的核心优势

JoinQuant最大的价值在于数据 + 回测引擎的一体化。你只需要写策略逻辑,平台会自动提供历史数据、执行回测、计算绩效指标。对于初学者来说,这省去了80%的"脏活累活",让你可以专注于策略本身。

此外,JoinQuant还有一个活跃的社区。你可以看到其他用户分享的策略,学习他们的思路,也可以分享自己的成果获得反馈。这种社群学习的效果,往往是独自闷头 coding 无法比拟的。

JoinQuant的快速上手

访问 joinquant.com,注册账号后进入"策略研究"页面。你会看到一个内置的代码编辑器,已经预装了聚宽的API。下面是一个最简单的策略示例:

# JoinQuant 示例:买入并持有策略
def initialize(context):
    # 设置要交易的股票
    g.security = '000001.XSHE'  # 平安银行
    # 设置基准
    set_benchmark('000001.XSHE')
    # 设置手续费
    set_commission(PerShare(cost=0.003, min_trade_cost=5))
    
def handle_data(context, data):
    # 获取当前资金
    cash = context.portfolio.available_cash
    
    # 如果没有持仓,买入
    if g.security not in context.portfolio.positions:
        order_value(g.security, cash * 0.95)
        log.info('买入 %s' % g.security)

点击"回测"按钮,选择时间范围,几秒钟后你就能看到策略的收益曲线、最大回撤、夏普比率等指标。这种即时反馈的学习体验,是本地环境很难提供的。

JoinQuant的免费额度对初学者来说完全够用。每日回测次数、数据调取频率都有一定的限制,但在学习阶段你几乎不会触碰到这些天花板。等到真的需要更高频次时,说明你已经不是新手了——那时候付费也是值得的。

—— 来自一位使用JoinQuant三年的用户

环境检测:确保一切就绪

在正式开始写策略之前,我们需要确认环境已经正确配置。下面的代码可以在Colab或本地Python环境中运行,它会检查所有量化开发必需的组件。

"""
量化环境全面检测脚本
运行此脚本,确认你的开发环境已就绪
"""

def check_environment():
    print("=" * 50)
    print("量化交易环境检测报告")
    print("=" * 50)
    
    # 1. Python版本
    import sys
    py_version = sys.version_info
    print(f"\n[1/6] Python版本: {py_version.major}.{py_version.minor}.{py_version.micro}")
    if py_version.major == 3 and py_version.minor >= 7:
        print("  ✓ Python版本符合要求 (>=3.7)")
    else:
        print("  ✗ 建议升级到Python 3.7或更高版本")
    
    # 2. 核心数据处理库
    print("\n[2/6] 核心数据处理库:")
    core_libs = {
        'numpy': '数值计算',
        'pandas': '数据处理',
        'matplotlib': '数据可视化'
    }
    for lib, desc in core_libs.items():
        try:
            module = __import__(lib)
            version = getattr(module, '__version__', 'unknown')
            print(f"  ✓ {lib} ({desc}) - v{version}")
        except ImportError:
            print(f"  ✗ {lib} ({desc}) - 未安装")
    
    # 3. 量化专用库
    print("\n[3/6] 量化专用库:")
    quant_libs = {
        'backtrader': '回测框架',
        'akshare': 'A股数据',
        'tushare': '金融数据API'
    }
    for lib, desc in quant_libs.items():
        try:
            module = __import__(lib)
            version = getattr(module, '__version__', 'unknown')
            print(f"  ✓ {lib} ({desc}) - v{version}")
        except ImportError:
            print(f"  ✗ {lib} ({desc}) - 未安装 (pip install {lib})")
    
    # 4. 网络连接测试
    print("\n[4/6] 网络连接:")
    try:
        import urllib.request
        urllib.request.urlopen('https://www.google.com', timeout=5)
        print("  ✓ 网络连接正常")
    except:
        print("  ⚠ 网络连接可能受限 (某些数据源可能无法访问)")
    
    # 5. 文件系统权限
    print("\n[5/6] 文件系统:")
    try:
        import tempfile, os
        test_file = os.path.join(tempfile.gettempdir(), 'quant_test.txt')
        with open(test_file, 'w') as f:
            f.write('test')
        os.remove(test_file)
        print("  ✓ 文件读写权限正常")
    except Exception as e:
        print(f"  ✗ 文件读写异常: {e}")
    
    # 6. 内存检查
    print("\n[6/6] 系统资源:")
    try:
        import psutil
        mem = psutil.virtual_memory()
        print(f"  可用内存: {mem.available / 1024**3:.1f} GB")
        print(f"  总内存: {mem.total / 1024**3:.1f} GB")
    except ImportError:
        print("  ⚠ 未安装psutil,无法检测内存 (pip install psutil)")
    
    print("\n" + "=" * 50)
    print("检测完成!如果以上项目都显示 ✓,你的环境已经准备就绪。")
    print("=" * 50)

# 运行检测
if __name__ == "__main__":
    check_environment()
环境快速自检

点击下方按钮,检查你的浏览器是否支持运行Python代码(基于Pyodide技术)。

上面的代码是一个完整的环境检测脚本。把它复制到Colab里运行,你会得到一份详细的"体检报告"。如果有任何项目显示"✗",按照提示安装相应的库即可。记住:遇到问题不要慌,把错误信息复制给AI,它会帮你解决

为什么不需要在本地安装Python

这一节的标题可能会让一些传统程序员皱眉。"不在本地安装Python?那还算什么程序员?"让我解释一下这个"反直觉"的建议背后的逻辑。

首先,你的目标是学量化交易,不是学系统管理。本地Python环境的配置涉及路径变量、虚拟环境、依赖管理、版本冲突……这些知识当然有用,但对于一个只是想跑通第一个策略的初学者来说,它们是巨大的认知负担和学习门槛。

其次,云端环境在绝大多数场景下已经足够好用。Colab提供免费的GPU、JoinQuant提供现成的A股数据、QuantConnect支持多种资产类别……这些基础设施的价值,远超过"本地运行"带来的那点便利。

最后,AI时代的学习路径已经变了。以前你必须先学会环境配置,才能开始写代码;现在你可以直接写代码,把环境问题交给AI和云平台。当你的策略越来越复杂、对性能的要求越来越高时,再去考虑本地环境也不迟。那时候,你已经有足够的知识和动力去克服配置的挑战。

实用建议:如果你未来真的需要在本地安装Python(比如要运行需要大量本地文件的策略),我建议使用Anaconda。它帮你管理好了大部分依赖问题,一键安装numpy、pandas等常用库。但现在——真的不需要。

与AI一起练习

练习1:让AI推荐最适合你的平台

Prompt模板:

我想开始做量化交易,请根据我的情况推荐最适合的平台:

- 我的操作系统:[Windows/Mac/Linux/只用手机]
- 我的目标市场:[A股/美股/加密货币/多市场]
- 我的编程水平:[完全零基础/会一点Python/比较熟练]
- 我的预算:[完全免费/愿意小额付费/预算充足]
- 我的特殊需求:[如有,如"需要中文界面"/"需要社区支持"]

请推荐1-2个最适合我的平台,并给出详细的入门步骤。

你需要做的:按照AI的推荐,实际注册一个平台账号,完成第一个"Hello World"级别的代码运行。

练习2:让AI写一段测试代码验证环境

Prompt模板:

请写一段Python代码,验证以下环境是否配置正确:

1. 能够导入pandas、numpy、matplotlib
2. 能够下载网络数据(用yahoo finance或akshare获取某只股票最近30天数据)
3. 能够绘制简单的价格走势图
4. 能够计算5日和20日移动平均线

请提供完整的、可直接运行的代码,并解释每一行的作用。

你需要做的:在Colab或JoinQuant中运行这段代码。如果报错,把错误信息复制给AI,让它帮你修复。

练习3:让AI解释云端vs本地的优劣

Prompt模板:

我正在纠结是在本地安装Python,还是使用Google Colab等在线平台。

请从以下角度详细对比两种方案的优劣:
1. 学习曲线和入门难度
2. 数据获取的便利性
3. 计算性能(尤其是大规模回测)
4. 代码保存和版本管理
5. 与AI协作的便利性
6. 长期发展的可扩展性

最后给出明确的建议:对于量化交易初学者,应该选择哪种方案?为什么?

你需要做的:仔细阅读AI的分析,做出自己的选择,然后坚持走下去。不要在这个选择上纠结太久——行动起来比选择完美更重要

动手实践:你的第一个可运行量化脚本

下面是一段完整的Python代码,它会获取一只股票的历史数据,计算移动平均线,并判断当前是金叉还是死叉。这是你能运行的第一个"真正有用"的量化代码。

# 第一个量化策略脚本:均线交叉检测
# 运行环境:Google Colab (需要安装akshare: !pip install akshare)

import akshare as ak
import pandas as pd
import matplotlib.pyplot as plt

# 获取股票数据
def get_stock_data(stock_code, period="daily"):
    """获取A股历史数据"""
    df = ak.stock_zh_a_hist(symbol=stock_code, period=period,
                           start_date="20230101", adjust="qfq")
    df['日期'] = pd.to_datetime(df['日期'])
    df.set_index('日期', inplace=True)
    return df

# 计算移动平均线
def add_moving_averages(df, short=5, long=20):
    """添加短期和长期均线"""
    df[f'MA{short}'] = df['收盘'].rolling(window=short).mean()
    df[f'MA{long}'] = df['收盘'].rolling(window=long).mean()
    return df

# 检测交叉信号
def detect_cross(df, short=5, long=20):
    """检测金叉和死叉"""
    ma_short = f'MA{short}'
    ma_long = f'MA{long}'
    
    # 昨天短期均线在长期均线上方/下方
    df['short_above'] = df[ma_short] > df[ma_long]
    
    # 金叉:昨天short<=long,今天short>long
    df['golden_cross'] = (~df['short_above'].shift(1)) & df['short_above']
    
    # 死叉:昨天short>=long,今天short
运行步骤
  1. 打开 Google Colab
  2. 新建一个笔记本
  3. 在第一个单元格输入 !pip install akshare -q 并运行
  4. 把上面的代码复制到新的单元格中
  5. 按 Shift + Enter 运行
  6. 观察输出结果,感受你的第一个量化代码的威力

本章思考题

知识测验
1. 对于量化交易初学者,为什么推荐从云端平台开始?
  • A. 云端平台永远比本地环境功能更强大
  • B. 云端平台不需要学习任何技术
  • C. 省去了繁琐的环境配置,降低入门门槛
  • D. 云端平台的数据永远是免费的
答案是C。云端平台的最大优势是免去了本地环境配置的麻烦,让初学者可以快速上手。A不对,因为本地环境在某些场景下更强大;B不对,你仍然需要学习编程和策略逻辑;D不对,很多平台的高级数据和服务是收费的。
2. JoinQuant(聚宽)相比Google Colab的核心优势是什么?
  • A. JoinQuant完全免费,Colab要收费
  • B. JoinQuant内置了A股数据和回测框架
  • C. JoinQuant支持更多编程语言
  • D. JoinQuant的代码可以自动赚钱
答案是B。JoinQuant的核心价值在于为A股量化提供了"开箱即用"的数据和回测引擎。A不对,两者都有免费额度;C不对,JoinQuant主要支持Python;D显然是个玩笑。
3. 在Colab中安装Python库的正确方式是什么?
  • A. !pip install 库名
  • B. install 库名
  • C. import 库名
  • D. download 库名
答案是A。在Jupyter/Colab环境中,!pip命令会在系统shell中执行pip安装。import是用来导入已经安装好的库,而不是安装它。
深度思考题
  1. 你已经尝试了至少一个在线平台。和本地编程相比,你的体验如何?列举三个优点和两个缺点。
  2. 如果未来你的策略需要处理TB级别的数据,云端平台还能满足需求吗?你会如何规划从云端到本地的迁移路径?
  3. AI在降低量化交易门槛方面发挥了什么作用?如果没有AI辅助,你觉得自己的学习速度会慢多少?

下一章预告

环境已经搭好,第一个代码也已经运行成功。现在,是时候接触量化交易中最核心的工具之一了——回测框架

第9章将带你认识Backtrader,这是Python世界中最流行的开源回测框架。我们会用"对话"的方式理解它的核心概念:Cerebro引擎、数据源、策略、指标……你不需要成为Backtrader专家,只需要知道怎么让AI帮你写出正确的代码。

更重要的是,你将运行你的第一个完整回测——从数据获取到策略执行,再到绩效分析。准备好了吗?让我们进入量化交易的核心地带。

觉得有收获?分享给同样对量化交易感兴趣的朋友

如果这本书对你有所启发,欢迎支持我继续创作

赞赏二维码