python在股票数据分析 用Python做股票市场数据分析—做K线图 - 股票 - 苍南文化网 365bet365bet怎么不能存款_怎么联系365bet客服_365bet直播不能存款_365bet怎么不能存款_怎么联系365bet客服_365bet直播联系365bet客服_365bet直播

python在股票数据分析 用Python做股票市场数据分析—做K线图

来源:苍南文化网??编辑:无 ??时间:2019-10-07 15:28:19

end = datetime.date.today()

# 得到国金证券公司的股票数据;股票代码是600109
# 第一个参数是获取股票数据的股票代码串,第二个参数是开始日期,第三个参数是结束日期
guojin = ts.get_h_data('600109',str(start),str(end),'qfq')
type(guojin)
guojin.head()

得到股票数据如下:

# 可视化股票数据
import matplotlib as mlp
import matplotlib.pyplot as plt
%matplotlib inline
%pylab inline
mlp.rcParams['figure.figsize'] = (15,9)
guojin['close'].plot(grid=True)

得到国金证券2015-2016年的收盘价走势情况:

# 导入画图蜡烛图所需模块
from matplotlib.dates import DateFormatter
from matplotlib.dates import WeekdayLocator
from matplotlib.dates import MONDAY
from matplotlib.dates import DayLocator
from matplotlib.finance import candlestick_ohlc
# 定义画图函数
def pandas_candlestick_ohlc(dat,stick='day',otherseries=None):
"""
参数dat:pandas DataFrame对象采用datetime64指数,和浮点数列
“开盘价”,“最高价”,“收盘价”,“最低价”
参数stick:一个字符串或数字只是的时间段覆盖单一的蜡杆。有效
地字符串输入包括“day”,“week”,“month”,“year”(默认是day)
和任何数字输入,该数字表明一段时间内包括的交易日
参数otherseries:一个可迭代的,它将被强制转换为一个列表,包含dat包
含的其他series将被回执为线条的列
这将显示一个存储在dat中的股票数据的日本蜡烛K线图
"""
mondays = WeekdayLocator(MONDAY) # 每周一的主要刻度
alldays = DayLocator() # 每周日的次要此刻度
dayFormatter = DateFormatter("%d")
# 创建一个新的DataFrame,包含按色呼入制定的每个阶段的OHLC数据
transdat = dat.loc[:,["open","high","low","close"]]
if type(stick) == str:
if stick == "day":
plotdat = transdat
stick = 1
elif stick in ['week','month','year']:
if stick == 'week':
transdat['week'] = pd.to_datetime(transdat.index).map(
lambda x: x.isocalendar()[1]) #确定周
elif stick == 'month':
transdat['month'] = pd.to_datetime(transdat.index).map(
lambda x: x.month) # 确定月
transdat['year'] = pd.to_datetime(transdat.index).map(
lambda x: x.isocalendar()[0]) # 确定年
# 按年和其他适当变量分组
grouped = transdat.groupby(list(set(['year',stick])))
# 创建将要包含绘图的空数据框
plotdat = pd.DataFrame({"open":[],"high":[],"low":[],"close":[]})
for name, group in grouped:
plotdat = plotdat.append(pd.DataFrame({"open":group.iloc[0,0],
"high":max(group.high),
"low":min(group.low),
"close":group.iloc[-1,3]},
index = [group.index[0]]))
if stick == "weed":
stick = 5
elif stick == "month":
stick = 30
elif stick == "year":
stick = 365
elif type(stick) == int and stick >=1:
transdat["stick"] = [np.float(i/stick) for i in range(len(transdat.index))]
grouped = transdat.groupby("stick")
# 创建将要包含绘图的空数据框
plotdat = pd.DataFrame({"open":[],"high":[],"low":[],"close":[]})
grouped = transdat.groupby('stick')
for name,group in grouped:
plotdat = plotdat.append(pd.DataFrame({"open": group.iloc[0,0],
"high": max(group.high),
"low": min(group.low),
"close": group.iloc[-1,3]},
index = [group.index[0]]))
else:
raise ValueError('Valid inputs to argument "stick" include the\
strings "day","week","month","year",or a positive integer')
# 设置plot参数,包括用绘制的轴线对象ax
fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.2)
if plotdat.index[-1] - plotdat.index[0] < pd.Timedelta('730 days'):
weekFormatter = DateFormatter("%b %d") # 例如,1月12
ax.xaxis.set_major_locator(mondays)
ax.xaxis.set_minor_locator(alldays)
else:
weekFormatter = DateFormatter("%b %d,%Y")
ax.xaxis.set_major_formatter(weekFormatter)
ax.grid(True)
# 创建K线图
candlestick_ohlc(ax,list(zip(list(date2num(plotdat.index.tolist())),
plotdat["open"].tolist(),
plotdat["high"].tolist(),
plotdat["low"].tolist(),
plotdat["close"].tolist())),
colorup = "black",colordown='red')
# 绘制其他series(如移动平均线)作为线
if otherseries != None:
if type(otherseries) != list:
otherseries = [otherseries]
dat.loc[:,otherseries].plot(ax=ax,lw=1.3,grid=True)
ax.xaxis_date()
ax.autoscale_view()
plt.setp(plt.gca().get_xticklabels(),rotation=45,
horizontalalignment='right')
plt.show()

  下面调用该函数,输出结果:

pandas_candlestick_ohlc(guojin)

  

该图看起来和商用交易软件显示结果差不多,但还是存在些问题,如图像中对于未开盘日期K线不连续,不能缩放等,后期继续加以改进。

猜你喜欢

东莞服务36项目全套 东莞莞式服务100式图片

东莞服务36项目解释 东莞小姐详解莞式按摩36式 什么是莞式三十六式服务?据一位洗心革面后的东莞小姐说是广州东莞色情性产业...更多

2019-04-13
李宗瑞种子解压密码 李宗瑞事件29G完整压缩版

下载BT种子文件 下载Torrent文件(.torrent) 磁力链接下载 magnet:?xt=urn:btih:5ebcdd915f0a68e4af141301d6dac5c7125b64b6&dn=...更多

2019-05-10
同花顺更新通行证失败 同花顺提示通行证格式错误怎

同花顺登陆时,遇到提示通行证格式错误,导致无法正常登录同花顺软件!对于股民来说这可能就是损失啊!所以赶紧看看修复解决办...更多

2019-01-14
汤灿自杀 汤灿被死亡事情经过曝光背后实情令人震惊

关于艺人被死亡的事件频现,来自中国湖南省株洲的国家一级演员兼歌唱家的汤灿也被传已死亡且是被枪毙的,自此汤灿枪毙现场或是...更多

2019-01-20
09放假安排表 2019年放假安排时间表

环球旅行 旅行/摄影/人物/故事 关注 官宣! 2019年的放假通知正式出炉 . . . 开心之余,小编发现 传统的“五一小长假”居然 没...更多

2019-04-06