-
Notifications
You must be signed in to change notification settings - Fork 477
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
如何通过接口获取一只股票当日的炸板次数和一段时间内的连板次数 #52
Comments
这是一个获取某日涨停股信息的代码,你可以根据它实现你说的两个需求 import pandas as pd
import requests
from datetime import datetime
from jsonpath import jsonpath
def get_zt_stock_rank(date: str = None) -> pd.DataFrame:
"""
获取指定日期涨停股票行情
Parameters
----------
date : str
指定日期,默认为当前日期 格式形如 ``'20220506'``
Returns
-------
DataFrame
指定日期涨停股票行情
Fields
------
``['日期', '股票代码', '股票名称', '涨跌幅', '成交额', '封板资金', '流通市值', '最新价', '换手率','首次封板时间', '最后封板时间', '炸板次数', '连扳数', '所属行业']``
"""
if date is None:
date = datetime.today().strftime('%Y%m%d')
params = (
('ut', '7eea3edcaed734bea9cbfc24409ed989'),
('dpt', 'wz.ztzt'),
('Pageindex', '0'),
('pagesize', '10000'),
('sort', 'fbt:asc'),
('date', date),
)
response = requests.get(
'http://push2ex.eastmoney.com/getTopicZTPool', params=params, verify=False)
fields = {
'c': '股票代码',
'n': '股票名称',
'zdp': '涨跌幅',
'amount': '成交额',
'fund': '封板资金',
'ltsz': '流通市值',
'p': '最新价',
'hs': '换手率',
'fbt': '首次封板时间',
'lbt': '最后封板时间',
'zbc': '炸板次数',
'lbc': '连扳数',
'hybk': '所属行业'
}
items = jsonpath(response.json(), '$..pool[:]')
if not items:
df = pd.DataFrame(
columns=['日期']+list(fields.values())+['统计天数', '涨停次数'])
return df
df = pd.DataFrame(items)
extra_df: pd.DataFrame = pd.DataFrame.from_records(df['zttj']).rename(columns={
'days': '统计天数',
'ct': '涨停次数'
})
df: pd.DataFrame = pd.concat([df, extra_df], axis=1)
df: pd.DataFrame = df.rename(columns=fields)[fields.values()]
df['首次封板时间'] = df['首次封板时间'].apply(lambda x: pd.to_datetime(
str(x), format='%H%M%S').strftime('%H:%M:%S'))
df['最后封板时间'] = df['最后封板时间'].apply(lambda x: pd.to_datetime(
str(x), format='%H%M%S').strftime('%H:%M:%S'))
df['最新价'] /= 1000
df['涨跌幅'] = df['涨跌幅'].apply(lambda x: round(x, 2))
df.insert(0, '日期', date)
return df
df = get_zt_stock_rank('20220520')
df
|
wow 感谢大佬! 非常感谢! |
Open
Closed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
如何通过接口获取一只股票当日的炸板次数和一段时间内的连板次数
The text was updated successfully, but these errors were encountered: