3、Python环境搭建:安装必要的库

做波动率套利,说白了就是跟数据打交道。你想想看,没有趁手的工具,再好的策略也跑不起来。这一节,我就带你把环境搭好。

我个人习惯用 Anaconda 来管理 Python 环境。为什么?因为它自带了很多科学计算库,省去了一一安装的麻烦。如果你还没装 Anaconda,去官网下载个最新版就行,一路默认安装,没什么坑。

3.1 核心库一览

做波动率锥,我们需要这几样东西:

  • numpy:数值计算的基础。数组操作、矩阵运算,全靠它。
  • pandas:处理时间序列数据的利器。期权数据、历史价格,用 DataFrame 一装,操作起来特别顺手。
  • matplotlib:画图工具。波动率锥最终要可视化,没它不行。
  • scipy:科学计算库。里面有很多统计函数,比如正态分布、插值,做波动率曲面时会用到。
  • mibian:期权定价库。虽然我们主要做波动率套利,但偶尔需要算个隐含波动率,用它很方便。

嗯,这里要注意:mibian 这个库比较老,有些 Python 3.9 以上的版本可能装不上。我遇到过这个问题,后来换了个方式解决,后面会讲。

3.2 安装步骤

打开你的终端(Windows 用户用 Anaconda Prompt),输入以下命令:

# 创建一个新环境,我习惯叫它 vol_env
conda create -n vol_env python=3.8

# 激活环境
conda activate vol_env

# 安装核心库
conda install numpy pandas matplotlib scipy

# 安装 mibian(如果 conda 装不上,用 pip)
pip install mibian

为什么会推荐 Python 3.8?因为 mibian 这个库最后一次更新是 2017 年,对高版本 Python 支持不太好。我曾经在 Python 3.10 上装它,折腾了半天没成功,最后老老实实退回 3.8。

避坑指南: 如果你用 Python 3.9 以上版本,装 mibian 时可能会报错。这时候可以试试从 GitHub 上克隆源码手动安装,或者直接用 py_vollib 替代。我个人建议,省事点就用 Python 3.8。

3.3 验证安装

装完之后,我们验证一下。打开 Jupyter Notebook,输入以下代码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import scipy.stats as stats
import mibian

print("numpy version:", np.__version__)
print("pandas version:", pd.__version__)
print("mibian version:", mibian.__version__)

# 简单测试:计算一个欧式看涨期权的隐含波动率
underlying_price = 100
strike_price = 100
interest_rate = 0.05
days_to_expiry = 30
option_price = 2.5

bs = mibian.BS([underlying_price, strike_price, interest_rate, days_to_expiry], callPrice=option_price)
print("Implied Volatility:", bs.impliedVolatility)

如果没报错,而且能看到版本号和隐含波动率的值,说明环境搭好了。

小技巧: 我习惯在 Jupyter Notebook 里先跑一遍这个测试代码。如果 mibian 报错,大概率是版本问题。这时候别慌,换成 py_vollib 或者自己写个 BS 公式,也能用。

3.4 配置 Jupyter Notebook

Jupyter Notebook 默认界面有点素,我建议装个扩展包,让体验更好:

# 安装 jupyter_contrib_nbextensions
conda install -c conda-forge jupyter_contrib_nbextensions

# 启用扩展
jupyter contrib nbextension install --user

装完之后,打开 Jupyter Notebook,你会看到多了一个 Nbextensions 标签页。我常用的扩展有:

  • Table of Contents:自动生成目录,方便跳转
  • Collapsible Headings:折叠标题,长文档时特别有用
  • ExecuteTime:显示每个单元格的运行时间,优化代码时用得上

嗯,这里有个小坑:有些扩展之间会冲突。我遇到过 Table of Contents 和 Collapsible Headings 同时开启时,页面加载变慢。解决办法是只开自己最需要的,别贪多。

3.5 本章知识体系

下面这张图,帮你理清整个环境搭建的逻辑:

Python 环境搭建核心流程 Anaconda 环境管理 conda create / activate 核心库安装 numpy, pandas, matplotlib scipy, mibian 验证安装 import + 测试代码 Jupyter Notebook 配置 安装 nbextensions 启用常用扩展 ⚠️ 常见问题 Python 版本兼容 / mibian 安装失败

3.6 一些个人经验

环境搭建这件事,看着简单,但真做起来总会遇到点小问题。我分享几个经验:

  • 别用最新版 Python:量化金融的很多库更新慢,Python 3.8 或 3.9 是最稳妥的选择。
  • 虚拟环境是好朋友:每个项目建一个独立环境,互不干扰。我吃过亏,有一次装了个新库,结果把整个 base 环境搞崩了,重装花了一下午。
  • pip 和 conda 混用要小心:先试试 conda install,装不上再用 pip。混用可能导致依赖冲突。
核心要点: 环境搭建是量化交易的基础。花 10 分钟把环境配好,后面能省 10 小时。别嫌麻烦,这一步值得认真对待。

好了,环境搭好了,下一节我们就可以正式开始处理数据了。记住,工具只是手段,策略才是核心。但工欲善其事,必先利其器——这句话在量化交易里尤其适用。


专注资料整理