“黄金交叉” (Golden Cross),就是指上升中的短期移动平均线由下而上穿过上升的长期移动平均线的交叉,这个时候压力线被向上突破,表示股价将继续上涨,行情看好。均线黄金交叉指股价向上突破压力。一般实线表示长期移动平均线,虚线表示短期移动平均线,短期移动平均线和长期移动平均线形成两个交点。
Pandas 中的 resample (重新采样) 是对原样本重新处理的一个方法.是一个对常规时间序列数据重新采样和频率转换的便捷的方法. 在DataFrame 的时间分布式有时候是不均匀的. 然而当我们在做金融时间序列分析时是需要时间均匀间隔的数据的.
格式:
DataFrame.resample(rule, how=None, axis=0, fill_method=None, closed=None, label=None, convention='start',kind=None, loffset=None, limit=None, base=0)
# 频率为1周, 取最后的值
data.resample("1w").last().head()
输出结果:
格式:
DataFrame.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)
参数 | 内容 |
---|---|
window | 表示时间窗的大小,注意有两种形式(int or offset)。如果使用int,则数值表示计算统计量的观测值的数量即向前几个数据。如果是 offset 类型,表示时间窗的大小。 |
min_periods | 每个窗口最少包含的观测值数量,小于这个值的窗口结果为 NA。值可以是int,默认None。offset情况下,默认为1。 |
center | 把窗口的标签设置为居中。布尔型,默认 False,居右。 |
win_type | 窗口的类型。截取窗的各种函数。字符串类型,默认为 None。 |
axis | int、字符串,默认为0,即对列进行计算 |
closed | 定义区间的开闭,支持int类型的window。对于offset类型默认是左开右闭的即默认为right。可以根据情况指定为left both等。 |
# 去除na
data_new = data.copy().dropna()
# 用第一只股票
stock = stock_list[0]
# 窗口为20天
windows = 20
data_new['min'] = data_new[stock].rolling(window=windows).min() # 最小值
data_new['max'] = data_new[stock].rolling(window=windows).max() # 最大值
data_new['mean'] = data_new[stock].rolling(window=windows).mean() # 平均值
data_new['std'] = data_new[stock].rolling(window=windows).std() # 标准差
# 调试输出
print(data_new.tail())
输出结果:
601766.XSHG 601155.XSHG 600482.XSHG 002456.XSHE 600763.XSHG \
date
2020-12-25 5.37 33.94 17.55 13.83 269.08
2020-12-28 5.32 33.81 17.48 13.05 269.13
2020-12-29 5.32 34.31 17.28 13.10 274.20
2020-12-30 5.27 33.80 17.43 12.83 275.16
2020-12-31 5.31 34.83 17.92 13.18 276.52
002460.XSHE 601877.XSHG 601988.XSHG 601390.XSHG 300408.XSHE \
date
2020-12-25 108.88 38.53 3.18 5.30 35.99
2020-12-28 107.01 37.50 3.17 5.21 36.10
2020-12-29 96.31 36.97 3.17 5.22 35.88
2020-12-30 101.00 36.92 3.17 5.22 37.05
2020-12-31 101.20 39.16 3.18 5.27 37.25
min max mean std
date
2020-12-25 5.29 5.78 5.4880 0.142075
2020-12-28 5.21 5.78 5.4660 0.149540
2020-12-29 5.21 5.78 5.4425 0.149416
2020-12-30 5.21 5.71 5.4145 0.134574
2020-12-31 5.21 5.65 5.3925 0.118760
# 这里我们以洋河股份和伊利股份为例
data = get_price(["600887.XSHG"], start_date=start_date, end_date=end_date,fields="close", expect_df=True)
print(data.head())
# 短期平均 (7天)
data["7_day_moving_average"] = data["close"].rolling(window=7).mean()
# 长期平均 (50天)
data["50_day_moving_average"] = data["close"].rolling(window=50).mean()
# 调试输出
print(data.tail().round(2))
# 画图
data[60:].plot(figsize=(16,12))
# 标记黄金交叉和死亡交叉位置
data["positions"] = np.where(data["7_day_moving_average"] > data["50_day_moving_average"], 1, -1)
# 画图
data[60:].plot(figsize=(16,12), secondary_y="positions")
输出结果:
close
order_book_id date
600887.XSHG 2019-01-02 21.3696
2019-01-03 21.1985
2019-01-04 21.4076
2019-01-07 21.6453
2019-01-08 21.4837
close 7_day_moving_average 50_day_moving_average
order_book_id date
600887.XSHG 2020-12-25 40.00 40.94 39.83
2020-12-28 41.89 41.02 39.86
2020-12-29 41.87 41.19 39.87
2020-12-30 43.96 41.54 39.91
2020-12-31 44.37 42.02 39.96
# 取出数据
data = get_price(["600887.XSHG","600597.XSHG"], start_date=start_date, end_date=end_date,fields="close")
print(data.head())
# 画图 (子图)
data.plot(subplots=True)
# 画图 (合并)
data.plot(secondary_y="002304.XSHE")
# 获得连续增长率
rets = np.log(data/data.shift(1))
# 调试输出
rets.head()
pd.plotting.scatter_matrix(rets,
alpha = 0.2,
diagonal='hist',
hist_kwds={'bins':50},
figsize=(10,6)
)
pd.plotting.scatter_matrix(rets,
alpha = 0.2,
diagonal='kde',
figsize=(10,6)
)
输出结果:
import seaborn as sns
# 去除空值
rets.dropna(inplace=True)
# 画图
sns.regplot(x= "600887.XSHG", y= "600597.XSHG", data=rets)
输出结果:
# 30天平均值
YILI = rets["600887.XSHG"].rolling(window=30) # 伊利
MENGNIU = rets["600597.XSHG"].rolling(window=30) # 蒙牛
# 画出相关性图
YILI.corr(MENGNIU).plot(figsize=(10,6))
输出结果:
项目中用到的一些特殊字符和图标 html代码 XML/HTML Code 复制内容到剪贴板 div ...
正则忽略大小写 – RegexOptions.IgnoreCase 例如: 复制代码 代码如下: Str = R...
本文实例讲述了Laravel框架源码解析之反射的使用。分享给大家供大家参考,具体如...
Elasticsearch 是通过 Lucene 的倒排索引技术实现比关系型数据库更快的过滤。特...
上篇文章给大家介绍了 Java正则表达式匹配,替换,查找,切割的方法 ,接下来,...
工具:Eclipse,Oracle,smartupload.jar;语言:jsp,Java;数据存储:Oracle。...
错误描述: 在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报...
4月11日20:30~22:00通过腾讯会议进行了第二次在线学习讨论我把学习笔记整理一下...
复制代码 代码如下: % URL="http://news.163.com/special/00011K6L/rss_newstop....
DELETEFROMTablesWHEREIDNOTIN(SELECTMin(ID)FROMTablesGROUPBYName) Min的话保...