python连接同花顺数据,python 同花顺api

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: