Python量化知识大全
编程小白也能懂的量化投资基础知识,用最通俗的语言解释复杂概念
学习路线图
- Python基础
- 数据处理核心库
- 金融数据获取
- 量化分析基础
- 交易策略开发
- 回测与评估
- 风险管理
- 实盘交易
量化技能树
编程基础
数据分析能力
金融知识
策略开发
学习建议
- 从Python基础开始,不要跳过
- 边学边练,多写代码
- 先模仿再创新
- 专注一个领域深入
量化核心知识点详解
1. Python基础
为什么学Python? Python就像量化领域的普通话,简单易学,功能强大,有丰富的库支持。
关键知识点:
- 变量 – 数据的容器,如股票代码、价格
- 数据类型 – 数字(价格)、字符串(股票名称)、列表(股票组合)
- 条件判断 – 如果股价大于10元则买入
- 循环 – 遍历所有股票进行计算
- 函数 – 封装常用的交易逻辑
简单示例 – 计算平均股价:
def calculate_avg_price(prices):
total = sum(prices) # 求所有价格的和
count = len(prices) # 计算股票数量
return total / count # 返回平均价格
stock_prices = [45.3, 62.1, 38.7, 91.5]
avg_price = calculate_avg_price(stock_prices)
print(f“平均股价: {avg_price:.2f}元”)
2. 数据处理核心库
NumPy – 数值计算引擎
- 处理多维数组(股价、交易量等数值数据)
- 快速的数学运算(收益计算、指标计算)
- 比Python原生列表快10-100倍
Pandas – 数据分析神器
- DataFrame – 表格型数据结构(类似Excel表)
- Series – 单列数据(如股票每日收盘价)
- 数据处理功能:清洗、转换、合并、分组
- 时间序列处理(股票数据核心)
用Pandas分析股票数据:
import pandas as pd
# 创建股票数据DataFrame
data = {
‘Date’: [‘2023-01-01’, ‘2023-01-02’, ‘2023-01-03’],
‘Close’: [102.5, 104.3, 103.8],
‘Volume’: [1200000, 980000, 1500000]
}
df = pd.DataFrame(data)
df[‘Date’] = pd.to_datetime(df[‘Date’]) # 转换为日期类型
df[‘Daily_Return’] = df[‘Close’].pct_change() # 计算日收益率
print(df.head()) # 查看前5行数据
3. 金融数据获取
常用数据来源:
- Tushare – 免费的中文金融数据接口(国内股票、基金、期货等)
- AKShare – 免费开源金融数据接口库
- Yahoo Finance – 免费国际金融数据
- QuantConnect – 量化平台提供数据
- 付费数据:Wind, Bloomberg(机构常用)
使用Tushare获取股票数据:
import tushare as ts
# 设置token(需要注册)
ts.set_token(‘你的token’)
pro = ts.pro_api()
# 获取贵州茅台日线数据
df = pro.daily(ts_code=’600519.SH’, start_date=’20230101′, end_date=’20230630′)
# 保存到CSV文件
df.to_csv(‘600519.csv’, index=False)
注意: 免费数据通常有延迟或限制,实盘交易需要更实时准确的数据源。
4. 量化分析基础
关键技术指标:
- 移动平均线(MA) – 消除短期波动,看趋势
- 相对强弱指数(RSI) – 衡量股票超买超卖状态
- 布林带(Bollinger Bands) – 判断价格波动范围
- MACD – 趋势跟踪和动量指标
收益与风险:
- 收益率计算(日收益、累计收益)
- 波动率(风险度量)
- 夏普比率(风险调整后收益)
- 最大回撤(最大亏损幅度)
回测 – 用历史数据测试策略效果,相当于”模拟考试”
计算简单移动平均线:
import pandas as pd
# 假设df是包含收盘价的数据框
df[‘MA5’] = df[‘Close’].rolling(window=5).mean() # 5日均线
df[‘MA20’] = df[‘Close’].rolling(window=20).mean() # 20日均线
5. 交易策略开发
常见策略类型:
- 趋势跟踪 – 顺势而为,如双均线策略
- 均值回归 – 价格围绕价值波动
- 套利策略 – 利用价格差异获利
- 事件驱动 – 基于新闻、财报等事件
双均线策略示例:
- 计算短期均线(如5日)和长期均线(如20日)
- 当短期均线上穿长期均线时买入(金叉)
- 当短期均线下穿长期均线时卖出(死叉)
双均线策略信号生成:
# 计算信号
df[‘Signal’] = 0 # 初始化信号列
df.loc[df[‘MA5’] > df[‘MA20’], ‘Signal’] = 1 # 金叉买入信号
df.loc[df[‘MA5’] < df['MA20'], 'Signal'] = -1 # 死叉卖出信号
# 计算持仓变化
df[‘Position’] = df[‘Signal’].diff() # 1表示买入,-1表示卖出
学习资源推荐
入门书籍
- 《Python编程:从入门到实践》
- 《利用Python进行数据分析》
- 《量化交易之路》
在线课程
- 廖雪峰Python教程
- Coursera: Python for Everybody
- Udemy: Python for Finance
量化平台
- 聚宽(JoinQuant)
- 米筐(RiceQuant)
- QuantConnect(国际)
给编程小白的建议
1. 不要试图一次学完所有内容,量化是马拉松不是短跑
2. 先掌握Python基础,再学习Pandas数据处理
3. 从简单的策略开始实现,比如双均线策略
4. 参与量化社区,借鉴他人代码(但要理解)
5. 实盘前务必充分回测,切记盲目投入资金