1. 这节究竟解决什么实际问题?¶
0.0 环境配置与运行检查 的具体任务是:确认一个 Notebook 实际使用的 Python 路径,并把包安装、内核注册和 GPU 探测连成可复现步骤。 本节将明确输入数据、计算过程、输出及其在后续研究中的用途。
2. 前置知识¶
前置要求包括终端的基本使用方法和命令执行方法。 对公式的理解应包括变量定义、单位、时间索引和适用条件。
3. 数据说明¶
本节不分析市场数据;重点是确认 Python、Conda、Jupyter 与 GPU 是否真的在同一个环境中。 运行前先检查 shape、日期范围、列名与缺失值。数据看起来能画图,不代表它适合回答研究问题。
4. 学习目标与完成标准¶
完成本节后,你应能用自己的话解释 0.0 环境配置与运行检查 的输入、计算步骤、输出和局限;尤其能说明:确认一个 Notebook 实际使用的 Python 路径,并把包安装、内核注册和 GPU 探测连成可复现步骤。 你还应能独立改动一个参数并解释结果为什么变化,指出至少一个会让结论失真的假设。
5. 核心概念与公式¶
Conda 环境用于隔离 Python 解释器和依赖;Notebook 只能导入其当前内核所属环境中已安装的包。
环境正确的最低标准是:解释器路径、包版本与 Notebook 内核三者一致。 看到公式时依次确认:每个符号的单位是什么?它属于哪个时点?分母会不会为零?它是描述性统计量、预测量,还是交易规则?
6. 从零实现¶
原始代码按照“准备输入 → 计算中间量 → 得到结果 → 解释输出”的顺序组织。每个单元应检查变量类型、索引、维度和代表性数值。中间变量用于核对公式实现和定位计算错误。
7. 成熟库实现¶
Conda 负责隔离依赖;Jupyter 负责交互;它们不会自动修复错误代码或数据问题。 使用库函数前先阅读参数含义、默认值和返回对象;库输出一个数字,并不说明这个数字适合你的交易假设。
8. 两种实现的差异¶
从零实现便于核对公式、调试和识别隐含假设;成熟库适合在计算逻辑已验证后复用。两种实现依赖相同的数据口径与时点假设,使用库函数不会改变输入数据的质量。
9. 预期结果与检查范围¶
你应看到维度正确的 Series/DataFrame、日期单调递增的索引,以及能支持“确认一个 Notebook 实际使用的 Python 路径,并把包安装、内核注册和 GPU 探测连成可复现步骤。”这一任务的表格或图形。金融日收益率均值通常接近 0;若出现极大的连续收益、空表、全 NaN 或索引错位,应先排查数据和对齐逻辑,而不是立即相信结果。
10. 常见错误与诊断¶
把 base 环境当成课程环境、终端激活环境后却在旧内核运行、把安装成功误当成导入成功。
诊断顺序:先打印类型与 shape,再看 head()/tail(),接着检查日期和 NaN,最后才比较数值。这样能避免在错误的对象上反复改参数。
11. 研究偏差检查¶
环境不是策略的一部分,但不可复现的环境会让任何研究结论无法复查。 结果至少应与一个简单基线比较,并明确哪些部分只是教学演示。
12. 三层练习与答案¶
- 基础练习:验证一个中间变量、补全一段小计算,并用一句话解释输出。
- 研究练习:改变窗口、样本区间、约束或标的,记录哪些结论仍成立。
- 开放项目:把本节方法嵌入模块项目,报告基线、失败结果和限制。
题目在 ../exercises/00_setup/00_env_setup_exercises.ipynb;完整推导、可运行参考实现与结果检查在 ../solutions/00_setup/00_env_setup_solutions.ipynb。请先独立作答,再打开答案。
13. 延伸阅读¶
延伸材料:Conda 用户指南。阅读记录应包括研究假设、数据频率、样本范围和结论适用条件。
14. 下一节¶
完成本模块后,进入下一模块的概览页,并把本节的检查清单带到后续研究中。
1. 安装 Python¶
推荐使用 Anaconda(含 conda 包管理器)
- 下载地址:https://www.anaconda.com/download
- 选择 Python 3.11 版本
- 安装时勾选 「Add to PATH」
安装完成后,打开终端输入:
python --version
conda --version
3. Jupyter 基本操作¶
| 快捷键 | 功能 |
|---|---|
Shift + Enter |
运行当前单元格,移到下一个 |
Ctrl + Enter |
运行当前单元格,不移动 |
A (命令模式) |
在上方插入新单元格 |
B (命令模式) |
在下方插入新单元格 |
D D (命令模式) |
删除当前单元格 |
M (命令模式) |
切换为 Markdown 单元格 |
Y (命令模式) |
切换为代码单元格 |
Esc |
进入命令模式 |
提示:单元格边框蓝色 = 命令模式,绿色 = 编辑模式
# 练习:在 Jupyter 中绘制第一张图
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * np.pi, 200)
y = np.sin(x)
plt.figure(figsize=(8, 4))
plt.plot(x, y, color='steelblue', linewidth=2)
plt.title('Your first figure', fontsize=14)
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.grid(alpha=0.3)
plt.tight_layout()
plt.show()
print('如果图表正常显示,说明 matplotlib 工作正常。')
如果图表正常显示,说明 matplotlib 工作正常。
import matplotlib.pyplot as plt
# 1. 设置系统自带的中文字体(这里使用黑体 SimHei)
plt.rcParams['font.sans-serif'] = ['SimHei'] # 如果你想用微软雅黑,可以改成 ['Microsoft YaHei']
# 2. 解决更换字体后,负号(-)显示为方块的问题
plt.rcParams['axes.unicode_minus'] = False
4. 数据 API 配置(可选)¶
部分数据源需要 API Key,可创建 .env 文件存放;.env 必须加入 .gitignore,不得提交到 GitHub。
# 在项目根目录创建 .env 文件
TUSHARE_TOKEN=your_token_here
在代码中读取:
from dotenv import load_dotenv
import os
load_dotenv()
token = os.getenv('TUSHARE_TOKEN')
Tushare 注册:https://tushare.pro/register
yfinance(美股) 和 AKShare(A股) 的部分公开接口无需 API Key,但仍可能受到网络、限流和字段变化影响。
练习¶
- 了解每个库的用途,并尝试
import它们。 - 尝试使用
yfinance下载苹果(AAPL)股票数据并打印前 5 行。
下一节 → ../01_financial_concepts/01_price_and_return.ipynb