第1章:Python基础回顾:从零搭建你的量化交易环境

说实话,很多朋友学量化交易,上来就急着写策略、跑回测。我见过太多人卡在环境配置这一步,折腾半天连个print都跑不出来。别急,咱们先把地基打牢。

这一章,我带你把Python环境搭好,把Jupyter Notebook用熟,再把Python基础语法快速过一遍。嗯,都是干货,没有废话。

1.1 为什么选择Anaconda?

我个人习惯用Anaconda来管理Python环境。为什么?因为它省心。

你想想看,量化交易要用的库太多了——numpy、pandas、matplotlib、scikit-learn……一个个手动装,版本冲突能让你崩溃。Anaconda把这些常用库打包好了,装一个就等于装了几十个。

核心优势:

  • 自带Python解释器 + 常用科学计算库
  • conda命令管理包,比pip更稳定
  • 支持创建虚拟环境,不同项目互不干扰

1.2 安装Anaconda

去官网下载对应系统的安装包。我建议选Python 3.9+版本,太老的版本有些新库不支持。

安装时注意两点:

  • Windows用户记得勾选「Add Anaconda to my PATH environment variable」
  • 安装路径不要有中文和空格

避坑指南:我曾经遇到过学生把Anaconda装到「D:\量化交易\」这种路径下,结果后面各种报错。老老实实用英文路径,别给自己找麻烦。

装完后打开终端(Windows用Anaconda Prompt),输入:

conda --version

看到版本号,说明装好了。

1.3 Jupyter Notebook:量化交易的瑞士军刀

Jupyter Notebook是我在量化交易中最常用的工具。它把代码、图表、说明文字整合在一个页面里,特别适合做数据分析和策略研究。

启动方式很简单:

jupyter notebook

浏览器会自动打开一个页面。点击右上角的「New」→「Python 3」,就创建了一个新的notebook。

几个常用快捷键,记住了效率翻倍:

快捷键 功能
Shift + Enter 运行当前单元格并跳到下一个
Ctrl + Enter 运行当前单元格但不跳转
Esc + A 在当前单元格上方插入新单元格
Esc + B 在当前单元格下方插入新单元格
Esc + M 将当前单元格切换为Markdown模式

小技巧:我习惯把策略思路写在Markdown单元格里,下面跟着代码实现。这样复盘的时候,一眼就能看出当时是怎么想的。

1.4 Python基础语法速览

这部分我尽量精简,只讲量化交易中真正会用到的。你不需要背语法,理解概念就行,后面实战中会反复用到。

1.4.1 变量与数据类型

Python是动态类型语言,变量不需要声明类型。说白了,你直接赋值就行:

# 整数
stock_count = 1000

# 浮点数(小数)
price = 12.58

# 字符串
stock_code = "000001.SZ"

# 布尔值
is_buy = True

# 列表(有序可变)
prices = [12.5, 12.6, 12.4, 12.7]

# 字典(键值对)
stock_info = {"code": "000001", "name": "平安银行", "price": 12.58}

我在项目中遇到过最常用的就是列表和字典。比如存储历史价格用列表,存储股票基本信息用字典。

1.4.2 运算符

量化交易中,运算符主要用来计算指标和做条件判断:

# 算术运算符
close = 12.5
open_price = 12.3
change = close - open_price  # 涨跌额
change_pct = (close - open_price) / open_price * 100  # 涨跌幅

# 比较运算符
if close > open_price:
    print("收阳线")

# 逻辑运算符
if close > open_price and volume > 1000000:
    print("放量上涨")

注意:Python用andornot,不是&&||!。刚开始写代码时我老搞混,后来习惯了就好了。

1.4.3 条件判断

条件判断是策略的核心逻辑。比如最简单的均线策略:

ma5 = 12.3
ma10 = 12.1
current_price = 12.4

if current_price > ma5 and ma5 > ma10:
    print("金叉,买入信号")
elif current_price < ma5 and ma5 < ma10:
    print("死叉,卖出信号")
else:
    print("观望")

1.4.4 循环

循环用来处理批量数据。比如计算过去20天的平均价格:

# for循环遍历列表
prices = [12.5, 12.6, 12.4, 12.7, 12.8, 12.5, 12.3, 12.6, 12.9, 12.7]

total = 0
for price in prices:
    total += price

average = total / len(prices)
print(f"平均价格: {average:.2f}")

# while循环,适合不确定次数的场景
i = 0
while i < len(prices):
    print(f"第{i+1}天价格: {prices[i]}")
    i += 1

实战经验:处理大量数据时,for循环比while更常用。但如果你要写一个「直到满足条件才停止」的逻辑,while更合适。比如一直等待某个价格触发。

1.5 本章知识体系

下面这张图帮你理清本章的核心脉络:

Python量化交易环境 环境搭建 • Anaconda安装 • conda环境管理 • 路径配置避坑 Jupyter Notebook • 启动与创建 • 快捷键操作 • Markdown+代码混合 Python基础语法 • 变量与数据类型 • 运算符 • 条件判断 • 循环 目标:能独立运行Python代码,处理基础数据 为后续的pandas数据处理和策略编写打好基础

1.6 本章小结

这一章我们做了三件事:

  • 装好了Anaconda,搞定了Python环境
  • 学会了Jupyter Notebook的基本操作
  • 快速过了一遍Python基础语法

别小看这些基础。我见过太多人急着写策略,结果连DataFrame都不会用,最后代码跑出来全是bug。把基础打牢,后面才能飞得起来。

下一章,我们会深入pandas——量化交易中最核心的数据处理工具。到时候你就知道,今天学的列表和字典,在pandas里会变成更强大的DataFrame。


专注资料整理