一 股票常用指标
极差:越高说明波动越明显极差,股价近期最高价的最大值和最小值的差值
**成交量加权平均价格:**英文名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 指数移动均线

python
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