一 股票常用指标
极差:越高说明波动越明显极差,股价近期最高价的最大值和最小值的差值
成交量加权平均价格:英文名VWAP(Volume-Weighted Average Price,成交成交量加权平均价格量加权平均价格)是一个非常重要的经济学量,代表着金融资产的“平均”价格
收益率:简单收益率,相邻两个价格之间的变化率, 对数收益率,指所有价格取对数后两两之间的差值
波动率:越高说明波动越明显波动率,波动率是对价格变动的一种衡量
年波动率:对数波动率的标准差除以其均值,再除以交易日倒数的平年波动率方根,通常交易日取250天
月波动率:对数收益率的标准差除以其均值,再乘以交易月的平方根,通常交易月取12月
二:numpy使用
2.1 卷积:
卷积可用于描述过去作用对当前的影响。卷积是时空响应卷积的叠加,可用作计算“滑动平均”
numpy.convolve(a,y,mode='ful'),这是numpy函数中的卷积函数库
参数:
a:(N,)输入的一维数组Q(
b:(M,)输入的第二个一维数组
mode:{'ful','valid'same'}参数可选
full默认值,返回每一个卷积值,长度是N+M-1,在卷积的边缘处,信号不重叠,存在边际效应。 *
书
same’返回的数组长度为max(M,N),边际效应依旧存在。
‘valid’返回的数组长度为max(M,N)-min(M.N)+1.此时返回的是完全重叠的点。边缘的点无效。来源百度百科
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(fname=self.file, delimiter=",", usecols=(2), unpack=True, skiprows=1) # 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: -n+1] #生成卷积 print(sma) plt.plot(sma, linewidth=5) 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: ], lw=1.0) plt.plot(t, sma, lw=2.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中的where
groupby:Pandas中对数据分组函数,相当于SQL中的GroupBy