Python 在量化交易中的基础应用
本文旨在为希望从事量化交易的初学者提供 Python 编程的基础知识。虽然许多通用 Python 教程面向程序员,但本教程将结合量化策略编写的实际场景,从零讲解核心语法。掌握这些内容是理解并编写量化策略的前提。
Python 简介
Python 是一种解释型、面向对象的高级编程语言。在量化交易中,我们使用 Python 编写代码来描述交易逻辑,计算机执行这些指令以完成数据获取、策略计算和订单下达。
本文介绍 Python 在量化交易中的基础应用,涵盖变量赋值、数据类型、列表字典操作及全局变量使用。通过具体代码示例讲解算术运算、字符串处理及打印输出方法,帮助初学者掌握编写量化策略所需的编程技能。内容包含常见错误排查及进阶练习,适合零基础入门者系统学习。

本文旨在为希望从事量化交易的初学者提供 Python 编程的基础知识。虽然许多通用 Python 教程面向程序员,但本教程将结合量化策略编写的实际场景,从零讲解核心语法。掌握这些内容是理解并编写量化策略的前提。
Python 是一种解释型、面向对象的高级编程语言。在量化交易中,我们使用 Python 编写代码来描述交易逻辑,计算机执行这些指令以完成数据获取、策略计算和订单下达。
目前 Python 主要分为 Python 2 和 Python 3 两个版本。由于历史原因,部分旧有的量化平台或库可能仅支持 Python 2,而新系统多已迁移至 Python 3。两者在核心语法上差异不大,但在字符串处理和打印函数等方面有显著区别。对于初学者,建议关注当前主流环境(Python 3),同时了解旧版代码的兼容性。
Python 严格区分大小写。变量名 Price 和 price 被视为不同的标识符。定义变量时请保持拼写一致。
所有代码符号必须使用英文半角字符。包括冒号(:)、逗号(,)、分号(;)、括号(())和引号('' 或 "")。中文标点会导致语法错误。
注释用于说明代码意图,不会被执行。单行注释使用 #,多行注释可使用三个单引号 ''' 或双引号 """。
# 这是一个初始化函数
def initialize(context):
'''
设置每日运行周期
设定目标股票
'''
pass
Python 使用缩进来表示代码块层级,通常推荐使用 4 个空格或一个 Tab 键。同一层级的语句必须保持相同的缩进量。
def initialize(context):
# 属于 initialize 的代码块
run_daily(period, time='every_bar')
g.security = '000001.XSHE'
变量是存储数据的容器。赋值操作使用等号 =,将右侧的值赋给左侧的变量名。
# 整数赋值
a = 100
# 字符串赋值
b = '平安银行'
# 变量引用
c = a
在量化框架中,初始化函数(initialize)内的局部变量无法在周期函数(period)中直接访问。若需跨函数共享数据,需使用全局对象(如 g.)进行存储。
def initialize(context):
g.a = 1 # 设置为全局变量
def period(context):
print(g.a) # 可正常读取
1, 1003.14, 10.5True 或 Falsex = 10 # int
y = 10.5 # float
z = True # bool
字符串用于表示文本信息,如股票代码、名称等。可以使用单引号、双引号或多行三引号包裹。
stock_code = '000001.XSHE'
multi_line = '''这是第一行
这是第二行'''
数字变量支持常规数学运算。注意整数除法与浮点除法的区别。
a = 10
b = 3
print(a + b) # 加法:13
print(a - b) # 减法:7
print(a * b) # 乘法:30
print(a / b) # 除法:3.333...
print(a // b) # 整除:3
print(a % b) # 取余:1
print(a ** b) # 幂运算:1000
列表是有序的元素集合,支持索引访问和切片操作。
prices = [10.0, 10.5, 11.0]
stocks = ['000001', '600000']
# 索引访问(从 0 开始)
print(prices[0]) # 输出 10.0
print(prices[-1]) # 输出最后一个元素
# 切片操作
print(prices[0:2]) # 输出前两个元素
字典通过键值对(Key-Value)存储数据,适合映射关系,如股票名称到代码。
stock_map = {
'平安银行': '000001.XSHE',
'浦发银行': '600000.XSHG'
}
# 获取值
print(stock_map['平安银行'])
# 获取所有键或值
keys = stock_map.keys()
values = stock_map.values()
使用 print() 函数输出调试信息。常用格式化方法包括 % 占位符和 f-string(Python 3.6+)。
name = '测试'
value = 100
# 传统方式
print('Name is %s, Value is %d' % (name, value))
# F-string 方式(推荐)
print(f'Name is {name}, Value is {value}')
# 换行控制
print('\n日志结束')
g. 或在函数内定义了变量。练习 1: 创建一个包含 5 个随机价格的列表,计算其平均值。
prices = [10.0, 10.5, 11.0, 10.8, 10.2]
avg_price = sum(prices) / len(prices)
print(f'平均价格:{avg_price}')
练习 2: 使用字典存储股票信息,并遍历输出。
info = {'code': '000001', 'name': '平安银行'}
for k, v in info.items():
print(f'{k}: {v}')
掌握 Python 基础语法是构建量化策略的第一步。重点理解变量作用域、数据类型转换以及列表字典的操作。在实际开发中,建议多编写小脚本验证逻辑,并养成良好的注释习惯。随着熟练度提升,可进一步学习 Pandas 数据处理及 NumPy 数值计算模块,以应对更复杂的量化分析需求。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online