第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用and、or、not,不是&&、||、!。刚开始写代码时我老搞混,后来习惯了就好了。
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 本章知识体系
下面这张图帮你理清本章的核心脉络:
1.6 本章小结
这一章我们做了三件事:
- 装好了Anaconda,搞定了Python环境
- 学会了Jupyter Notebook的基本操作
- 快速过了一遍Python基础语法
别小看这些基础。我见过太多人急着写策略,结果连DataFrame都不会用,最后代码跑出来全是bug。把基础打牢,后面才能飞得起来。
下一章,我们会深入pandas——量化交易中最核心的数据处理工具。到时候你就知道,今天学的列表和字典,在pandas里会变成更强大的DataFrame。