K线图的绘制
- 股票的每日价格走势图
每日价格的形态
绘制K线图
matplotlib.finance.candlestic_ochl(axes, data, width=0.5, colorup="r", colordown=‘g’)
- data必须是一个包含ochl和0-n索引值的数组
K线图的转换
pandas重采样数据
DateFrame.resample(rule, how=None, axis=0, file_method=None, closed=None, kind=None)
- 频率转换和时间序列重采样,对象必须具有类似日期时间的索引
rule:表示重采样的频率,例如周‘W’,月‘M’,季度,‘Q’,5分钟‘5min’,12天'12D' how:用于产生聚合值的函数名或数值函数,例如“mean‘,’ohlc‘,np.max等,默认是'mean',其他常用的值,有:’first‘,'last','median','max','min' axis=0:默认是纵轴,横轴设置为axis=1 closed='right':在重采样时,各时间段的哪一段是闭合的,’right‘或 ’left‘,默认是’right‘ fill_method=None:重采样时,如何插入值,比如:’ffill‘,'bfill' kind=None:聚合到时期('period')或时间戳('timestamp'),默认聚合到时间序列的索引类型
时间序列
按照时间发生先后顺序进行排序的数据点序列
- 通常一组时间序列的时间
datetime模块
import pandas as pd from datetime import datetime date = [datetime(2017,1,2)] a = pd.series(10.0, index=date)
pandas时间类型
// 定义数据的时间类型
格式:pd.to_datetime(arg, unit=)
其中:arg:时间参数
unit:转换的最小单位
如:
pd.to_datetime(date)
pd.DatetimeIndex(date)
- 定义pandas中的时间序列结构
date = [datetime(2018,1,1), datetime(2018,1,3),datetime(2018,1,4)]
series = pd.Series(3.0, index=date)
series
out:2018-01-01 3.0
2018-01-03 3.0
2018-01-04 3.0
dtype:float64
DatetimeIndex的属性
- year,month, weekdat,day,hour…
time = pd.DatetimeIndex(time_value) time.year ...
- 频率和时间的偏移
d = pd.to_datetime(["2018-01-01","2018-03-01"]) d.shift(-1, freq='D')
pandas的时间序列生成
pandas.date_range(star=None, end=None, periods, freg='D', tz=None, normalize=False, name=None, closed=None, **kwargs)
股票时间序列分析
移动窗口
- 用一个窗口将一段时间套住,计算这一段时间内的某个值,如,平均值
移动平均线
- 某一段时间的收盘价之和除以该周期
加权移动平均线
- 将过去的某特定时间内的价格取其平均值,它的比重以平均线的长度设定,越近期的收市价,对市况的影响越大
1.末日加权移动平均线 MA(N) = (C1+C2+...+Cn*2)/n+1 2.线性加权移动平均线 MA = (C1*1 + C2*2 + ...+ Cn*n)/(1+2+3...+n)
指数平滑移动平均线
算法:若 Y = EMA(X,N),则 Y=[2*x + (N-1)*Y']/(N+1) 其中:X是变量,每天的X都不同,从远到近的标记,它们分别记为X1,X2,X3...Xn 如果 N=1, 则 EMA(X,1) = [2*X1 + (1-1)*Y']/(1+1) = X1 如果 N =2, 则 EMA(X,2) = [2 *X2 + (2-1)*Y']/(2+1) = (2/3)*X2 +(1/3)*X1 如果 N=3, 则 EMA(X,3) = [2* X3 + (3-1)*Y']/(3+1) = [2*X3 + 2*((2/3)*X2+ 2*(1/3)*X1)]/4 = (1/2)*X3 + (1/3)*X2 +(1/6)*X1
- pd.ewma(com=None, one)
移动窗口的方差和标准差
- 反应某一时期的序列的稳定性
- pandas.rolling_std()