量化核心知识点详解

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. 交易策略开发

常见策略类型:

  • 趋势跟踪 – 顺势而为,如双均线策略
  • 均值回归 – 价格围绕价值波动
  • 套利策略 – 利用价格差异获利
  • 事件驱动 – 基于新闻、财报等事件

双均线策略示例:

  1. 计算短期均线(如5日)和长期均线(如20日)
  2. 当短期均线上穿长期均线时买入(金叉)
  3. 当短期均线下穿长期均线时卖出(死叉)

双均线策略信号生成:

# 计算信号

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. 实盘前务必充分回测,切记盲目投入资金