python连接同花顺数据,python 同花顺api
本文主要详细介绍用Python配置同花顺全数据接口的教程。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下,希望能帮到你。
00-1010 I. iFinDPy模块II。相关代码汇总:http://quantapi.10jqka.com.cn/?页面=主页
如果是windows,可以根据不同的用户选择不同的下载。
目录
下载后会出现一个data interface _ free _ windows _ 20210812.7 z的文件。解压到任何文件夹。打开这个文件夹进入Bin文件夹,然后打开工具文件夹,双击运行SuperCommand.exe,用iFinD账号免费登录。
选择python,确定。同时添加一个路径。
选择。然后重启电脑,相关的环境变量设置就会生效。
现在可以在python环境下调用iFinDPy了。
一、iFinDPy 模块
安装iFinDPy后,就可以了。请参考:http://quantapi.10jqka.com.cn/?页=样本.
# -*-编码: utf-8 -*-
从iFinDPy导入*
从日期时间导入日期时间
进口熊猫作为pd
将时间导入为_time
导入json
从线程导入线程、锁、信号量
导入请求
Sem=Semaphore(5) #该变量用于控制最大并发数。
Dllock=Lock() #这个变量用来控制实时行情推送到本地锁。
#登录功能
def thslogindemo():
#输入用户的帐户和密码
ThsLogin=THS_iFinDLogin(数据接口_账号,数据接口_密码)
打印(登录)
如果thsLogin!=0:
打印(“登录失败”)
else:
打印(“登录成功”)
def日期池_基础数据_演示():
#通过数据池的板块构成函数和基础数据函数,提取2020年11月16日沪深300中所有股票的收盘价。
data_hs300=THS_DP(块, 2020-11-16;001005290 ,日期:Y,密码:Y,安全名称:Y )
if data_hs300.errorcode!=0:
打印( error:{} )。格式(data_hs300.errmsg))
else:
sec code _ hs 300 _ list=data _ hs 300 . data[ ths code ]。tolist()
data _ result=THS _ BD(sec code _ hs 300 _ list, ths_close_price_stock , 2020-11-16,100 )
if data_result.errorcode!=0:
打印( error:{} )。格式(data_result.errmsg))
else:
数据_df=数据_结果.数据
打印(数据_df)
def数据池_实时_演示():
#通过数据池的板块构成功能和实时报价功能提取上证50所有股票的最新价格数据,并导出为csv文件。
today_str=datetime.today()。strftime(%Y-%m-%d )
打印( today:{} )。格式(today_str))
data_sz50=THS
_DP(block, {};001005260.format(today_str), date:Y,thscode:Y,security_name:Y)
if data_sz50.errorcode != 0:
print(error:{}.format(data_sz50.errmsg))
else:
seccode_sz50_list = data_sz50.data[THSCODE].tolist()
data_result = THS_RQ(seccode_sz50_list,latest)
if data_result.errorcode != 0:
print(error:{}.format(data_result.errmsg))
else:
data_df = data_result.data
print(data_df)
data_df.to_csv(realtimedata_{}.csv.format(today_str))
def iwencai_demo():
# 演示如何通过不消耗流量的自然语言语句调用常用数据
print(输出资金流向数据)
data_wencai_zjlx = THS_WC(主力资金流向, stock)
if data_wencai_zjlx.errorcode != 0:
print(error:{}.format(data_wencai_zjlx.errmsg))
else:
print(data_wencai_zjlx.data)
print(输出股性评分数据)
data_wencai_xny = THS_WC(股性评分, stock)
if data_wencai_xny.errorcode != 0:
print(error:{}.format(data_wencai_xny.errmsg))
else:
print(data_wencai_xny.data)
def dlwork(tick_data):
# 本函数为实时行情订阅新启线程的任务函数
dllock.acquire()
with open(dlwork.txt, a) as f:
for stock_data in tick_data[tables]:
if time in stock_data:
timestr = _time.strftime(%Y-%m-%d %H:%M:%S, _time.localtime(stock_data[time][0]))
print(timestr)
f.write(timestr + str(stock_data) + \n)
else:
pass
dllock.release()
def work(codestr,lock,indilist):
sem.acquire()
stockdata = THS_HF(codestr, ;.join(indilist),,2020-08-11 09:15:00, 2020-08-11 15:30:00,format:json)
if stockdata.errorcode != 0:
print(error:{}.format(stockdata.errmsg))
sem.release()
else:
print(stockdata.data)
lock.acquire()
with open(test1.txt, a) as f:
f.write(str(stockdata.data) + \n)
lock.release()
sem.release()
def multiThread_demo():
# 本函数为通过高频序列函数,演示如何使用多线程加速数据提取的示例,本例中通过将所有A股分100组,最大线程数量sem进行提取
# 用户可以根据自身场景进行修改
today_str = datetime.today().strftime(%Y-%m-%d)
print(today:{}.format(today_str))
data_alla = THS_DP(block, {};001005010.format(today_str), date:Y,thscode:Y,security_name:Y)
if data_alla.errorcode != 0:
print(error:{}.format(data_alla.errmsg))
else:
stock_list = data_alla.data[THSCODE].tolist()
indi_list = [close, high, low, volume]
lock = Lock()
btime = datetime.now()
l = []
for eachlist in [stock_list[i:i + int(len(stock_list) / 10)] for i in
range(0, len(stock_list), int(len(stock_list) / 10))]:
nowstr = ,.join(eachlist)
p = Thread(target=work, args=(nowstr, lock, indi_list))
l.append(p)
for p in l:
p.start()
for p in l:
p.join()
etime = datetime.now()
print(etime-btime)
pd.options.display.width = 320
pd.options.display.max_columns = None
def reportDownload():
df = THS_ReportQuery(300033.SZ,beginrDate:2021-08-01;endrDate:2021-08-31;reportType:901,reportDate:Y,thscode:Y,secName:Y,ctime:Y,reportTitle:Y,pdfURL:Y,seq:Y).data
print(df)
for i in range(len(df)):
pdfName = df.iloc[i,4]+str(df.iloc[i,6])+.pdf
pdfURL = df.iloc[i,5]
r = requests.get(pdfURL)
with open(pdfName,wb+) as f:
f.write(r.content)
def main():
# 本脚本为数据接口通用场景的实例,可以通过取消注释下列示例函数来观察效果
# 登录函数
thslogindemo()
# 通过数据池的板块成分函数和基础数据函数,提取沪深300的全部股票在2020-11-16日的日不复权收盘价
# datepool_basicdata_demo()
#通过数据池的板块成分函数和实时行情函数,提取上证50的全部股票的最新价数据,并将其导出为csv文件
# datapool_realtime_demo()
# 演示如何通过不消耗流量的自然语言语句调用常用数据
# iwencai_demo()
# 本函数为通过高频序列函数,演示如何使用多线程加速数据提取的示例,本例中通过将所有A股分100组,最大线程数量sem进行提取
# multiThread_demo()
# 本函数演示如何使用公告函数提取满足条件的公告,并下载其pdf
# reportDownload()
if __name__ == __main__:
main()
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注盛行IT软件开发工作室的更多内容!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。