获得行情的api接口
python编程就可以轻松获取到行情的实时数据
这里选取的是东方财富网的数据
下面是日线的500实时数据
并且做成K线图的效果
如何调用数据呢 奥秘就在这句话中
- defplot_kline_figure(stock='399905',start_date='20210101',end_date='20500101',data_type='1'):
其中399905就是代码,然后start_date是开始的时间,data_type选择1就是1分钟,选择5就是5分钟
其中的规则是根据嗅探的api得到的
- 获取股票数据
- start_date=''默认上市时间
- - ``1`` : 分钟
- - ``5`` : 5 分钟
- - ``15`` : 15 分钟
- - ``30`` : 30 分钟
- - ``60`` : 60 分钟
- - ``101`` : 日
- - ``102`` : 周
- - ``103`` : 月
- fq=0股票除权
- fq=1前复权
- fq=2后复权
- 下面是完整的python代码,即可直接使用
- import json
- import pandas as pd
- import matplotlib.pyplot as plt
- import requests
- import numpy as np
- from finta import TA
- import mplfinance as mpf
- import schedule
- plt.rcParams['font.sans-serif'] = ['SimHei']
- plt.rcParams['axes.unicode_minus'] = False
- def get_stock_hist_data_em(stock='399300',start_date='20210101',end_date='20500101',data_type='15'):
- data_dict = {'1': '1', '5': '5', '15': '15', '30': '30', '60': '60', 'D': '101', 'W': '102', 'M': '103'}
- klt = data_dict[data_type]
- fq='1'
- if stock[0] == '6':
- stock = '1.' + stock
- else:
- stock = '0.' + stock
- url = 'http://push2his.eastmoney.com/api/qt/stock/kline/get?'
- params = {
- '': 'f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13',
- 'fields2': 'f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61',
- 'beg': start_date,
- 'end': end_date,
- 'ut': 'fa5fd1943c7b386f172d6893dbfba10b',
- 'rtntype': end_date,
- 'secid': stock,
- 'klt': klt,
- 'fqt': fq,
- 'cb': 'jsonp1668432946680'
- res = requests.get(url=url, params=params)
- text = res.text[19:len(res.text) - 2]
- json_text = json.loads(text)
- try:
- df = pd.DataFrame(json_text['data']['klines'])
- df.columns = ['数据']
- data_list = []
- for i in df['数据']:
- data_list.append(i.split(','))
- data = pd.DataFrame(data_list)
- columns = ['date', 'open', 'close', 'high', 'low', 'volume', '成交额', '振幅', '涨跌幅', '涨跌额', '换手率']
- data.columns = columns
- for m in columns[1:]:
- data[m] = pd.to_numeric(data[m])
- data.sort_index(ascending=True,ignore_index=True,inplace=True)
- return data
- except:
- pass
- def plot_kline_figure(stock='399905',start_date='20210101',end_date='20500101',data_type='1'):
- df1=get_stock_hist_data_em(stock=stock,start_date=start_date,end_date=end_date)
- df1.rename(columns={'date': 'Date', 'open': 'Open', 'close': 'Close', 'high': 'High', 'low': 'Low',
- 'volume': 'Volume'}, inplace=True)
- df1['Date'] = pd.to_datetime(df1['Date'])
- df1.set_index(['Date'], inplace=True)
- mpf.plot(df1, type='candle')
- plt.show()
- a=plot_kline_figure()
- print(a)
- if __name__=='__main__':
- while True:
- a=plot_kline_figure()
- print(a)
- schedule.run_pending()
至此,就可以获取到全部的行情数据
如果想要改成线图,就可以更改类型
mpf.plot(df1,type='line')
格式的选择非常丰富
- s = mpf.make_mpf_style(base_mpf_style='yahoo', rc={'font.family': 'SimHei'})
- mpf.plot(df1, type='candle',mav=(3,6,9), volume=True,
- ylabel='价格', ylabel_lower='成交量', title='股票K线图', figratio=(20, 10),style=s)
如此,自定义均线,成交量,等其他指标都是非常方便的
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.