python如何获取股票的资金流向数据
print('股票代码:', stock_code, '可能有误')'f61': '超大单流入净占比','f57': '主力净流入占比','f58': '小单流入净占比','f59': '中单流入净占比','f60': '大单流入净占比',以下代码参考自网友,已经调试通过,欢迎沟通交流。'f56': '超大单净流入','f52': '主力净流入','f53': '小单净流入','f54': '中单
·
以下代码参考自网友,已经调试通过,欢迎沟通交流。
大致可以看出哪个股不行了。哪个股还不错。
import pandas as pd
import requests
def gen_secid(stock_code: str) -> str:
'''
生成东方财富专用的secid
Parameters
----------
stock_code: 6 位股票代码
Return
------
str : 东方财富给股票设定的一些东西
'''
# 沪市指数
if stock_code[:3] == '000':
return f'1.{stock_code}'
# 深证指数
if stock_code[:3] == '399':
return f'0.{stock_code}'
# 沪市股票
if stock_code[0] != '6':
return f'0.{stock_code}'
# 深市股票
return f'1.{stock_code}'
def get_history_bill(stock_code: str) -> pd.DataFrame:
'''
获取多日单子数据
-
Parameters
----------
stock_code: 6 位股票代码
Return
------
DataFrame : 包含指定股票的历史交易日单子数据(大单、超大单等)
'''
EastmoneyHeaders = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko',
'Accept': '*/*',
'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
'Referer': 'http://quote.eastmoney.com/center/gridlist.html',
}
EastmoneyBills = {
'f51': '日期',
'f52': '主力净流入',
'f53': '小单净流入',
'f54': '中单净流入',
'f55': '大单净流入',
'f56': '超大单净流入',
'f57': '主力净流入占比',
'f58': '小单流入净占比',
'f59': '中单流入净占比',
'f60': '大单流入净占比',
'f61': '超大单流入净占比',
'f62': '收盘价',
'f63': '涨跌幅'
}
fields = list(EastmoneyBills.keys())
columns = list(EastmoneyBills.values())
fields2 = ",".join(fields)
secid = gen_secid(stock_code)
params = (
('lmt', '100000'),
('klt', '101'),
('secid', secid),
('fields1', 'f1,f2,f3,f7'),
('fields2', fields2),
)
params = dict(params)
url = 'http://push2his.eastmoney.com/api/qt/stock/fflow/daykline/get'
json_response = requests.get(url,
headers=EastmoneyHeaders, params=params).json()
data = json_response.get('data')
if data is None:
if secid[0] == '0':
secid = f'1.{stock_code}'
else:
secid = f'0.{stock_code}'
params['secid'] = secid
json_response: dict = requests.get(
url, headers=EastmoneyHeaders, params=params).json()
data = json_response.get('data')
if data is None:
print('股票代码:', stock_code, '可能有误')
return pd.DataFrame(columns=columns)
if json_response is None:
return
data = json_response['data']
klines = data['klines']
rows = []
for _kline in klines:
kline = _kline.split(',')
rows.append(kline)
df = pd.DataFrame(rows, columns=columns)
return df
if __name__ == "__main__":
# 股票代码
stock_code = '603986'
# 调用函数获取股票历史单子数据(有天数限制)
df = get_history_bill(stock_code)
# 保存数据到 csv 文件中
df.to_csv(f'{stock_code}.csv', index=None, encoding='utf-8-sig')
print(stock_code, f'的历史单子数据已保存到文件 {stock_code}.csv 中')
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)