量化交易基础之python库学习 一 股票常用指标极差越高说明波动越明显极差股价近期最高价的最大值和最小值的差值成交量加权平均价格英文名VWAP(Volume-Weighted Average Price,成交成交量加权平均价格量加权平均价格是一个非常重要的经济学量代表着金融资产的“平均”价格收益率简单收益率相邻两个价格之间的变化率 对数收益率指所有价格取对数后两两之间的差值波动率越高说明波动越明显波动率波动率是对价格变动的一种衡量年波动率对数波动率的标准差除以其均值再除以交易日倒数的平年波动率方根通常交易日取250天月波动率对数收益率的标准差除以其均值再乘以交易月的平方根通常交易月取12月二numpy使用2.1 卷积卷积可用于描述过去作用对当前的影响。卷积是时空响应卷积的叠加可用作计算“滑动平均”numpy.convolve(a,y,modeful),这是numpy函数中的卷积函数库参数aN输入的一维数组Q(bM输入的第二个一维数组mode:{ful,validsame}参数可选full默认值返回每一个卷积值长度是NM-1在卷积的边缘处信号不重叠存在边际效应。 *书same’返回的数组长度为maxMN边际效应依旧存在。‘valid’返回的数组长度为maxMN-minM.N1.此时返回的是完全重叠的点。边缘的点无效。来源百度百科2.2 简单移动均线2.3 指数移动均线import matplotlib import numpy as np import matplotlib.pyplot as plt matplotlib.use(TkAgg) class TestNumpyMA(): def __init__(self): self.file ./commont.csv self.end_price np.loadtxt(fnameself.file, delimiter,, usecols(2), unpackTrue, skiprows1) # print(self.end_price) def testSMA(self): n 5 # 移动窗口 weights np.ones(n) / n # 生成权重 print(weights) sma np.convolve(weights, self.end_price)[n-1: -n1] #生成卷积 print(sma) plt.plot(sma, linewidth5) plt.show() def testEXP(self): x np.arange(5) y np.arange(10) print(x) print(y) print(np.exp(x)) print(np.exp(y)) print(np.linspace(-1, 0, 5)) def testEMA(self): n 5 # 移动窗口 weights np.ones(n) / n # 生成权重 print(weights) sma np.convolve(weights, self.end_price)[n - 1: -n 1] # 生成卷积 t np.arange(n-1, len(self.end_price)) plt.plot(t, self.end_price[n-1: ], lw1.0) plt.plot(t, sma, lw2.0) plt.show() if __name__ __main__: tnma TestNumpyMA() # tnma.testSMA() # tnma.testEXP() tnma.testEMA()三 pandas库3.1 股票时间序列时间序列金融领域最重要的数据类型之一 股价、汇率为常见的时间序列数据趋势分析主要分析时间序列在某一方向上持续运动 在量化交易领域我们通过统计手段对投资品的收益率进行时间序列建模以此来预测未来的收益率并产生交易信号序列相关性金融时间序列的一个最重要特征是序列相关性 以投资品的收益率序列为例我们会经常观察到一段时间产生的收益3.2 pandas时间序列函数datetime: 时间序列最常用的数据类型 方便进行各种时间类型运算loc pandas中对DateFrame进行刷选的函数相当于SQL中的wheregroupbyPandas中对数据分组函数相当于SQL中的GroupBy