通达信行情数据获取

通达信行情数据获取方法,其中可以通过通达信每天下载导自身文件获取(通过c或者c++写一个接口就可以了),但是每天需要手动同步数据。下面介绍一个比较好网上接口。需要到“Tushare金融大数据开放社区”注册一个账号,

https://tushare.pro/register?reg=132182

然后通过python每天定时或者接口,方便快捷。

  1. #coding=utf-8
  2. '''
  3. Created on Nov 13, 2018
  4. @author: root
  5. '''
  6. ##import pandas as pd
  7. import pymysql
  8. import os
  9. import tushare as ts
  10. import csv
  11. import time
  12. # input date
  13. #获取当天系统日期 如20190308
  14. timest=time.strftime("%Y%m%d")
  15. pro = ts.pro_api('输入注册平台上自己注册到id')
  16. ##获取交易日期
  17. ##平台上到接口,可以获取每天交易日期 ,该变量保存日期文件
  18. file_date='/root/workspace/stock/src/dt_'+timest+'.csv'
  19. ##df_date 若果想获取多天数据 修改 start_date=timest, end_date=timest 中变量则可以
  20. df_date=pro.query('trade_cal', start_date=timest, end_date=timest)
  21. ##把日期文件信息保存到csv文件
  22. df_date.to_csv(file_date,index=False, mode='w',header=False, encoding='gbk')
  23. 文件内容如下SSE,20190307,1 其中 1 表示为交易当天有交易。0表示当天没交易
  24. ##filename = '/root/workspace/stock/src/dt_'+timest+'.csv'
  25. ##下面代码打开日期文件,循环读取日期,并下载有交易日期到数据
  26. with open(file_date) as f:
  27. reader = csv.reader(f)
  28. dt_dates = []
  29. for row in reader:
  30. dt_dates.append([row[1],row[2]])
  31. print (dt_dates)
  32. file_name='/root/workspace/stock/src/stock_datas_'+timest+'.csv'
  33. for dt_date, act_flag in dt_dates :
  34. ##若干当天为交易日期则连接平台获取交易数据并保存到本地
  35. if act_flag == '1' :
  36. df = pro.daily(trade_date=dt_date)
  37. df.to_csv(file_name ,index=False, mode='w',header=False, encoding="utf-8",sep='|')
  38. ###下面把数据保持到mysql
  39. if os.path.exists(file_name) :
  40. db = pymysql.connect(host='127.0.0.1', user='mysql用户', passwd='mysql密码', db='mysql数据库', charset='utf8',local_infile=1)
  41. cursor = db.cursor()
  42. sql_load_datas="""LOAD DATA LOCAL INFILE '%s'
  43. INTO TABLE tb_tock_daily
  44. FIELDS TERMINATED BY '|'
  45. LINES TERMINATED BY '\n'
  46. ;
  47. """%(file_name)
  48. sql_ddl=""" truncate table tb_tock_daily ;"""
  49. sql_delete="""delete from tb_tock_daily_his where trade_date ='%s' """%(timest)
  50. sql_insert="""insert into tb_tock_daily_his select a.* from tb_tock_daily a where trade_date ='%s' """%(timest)
  51. cursor.execute(sql_ddl)
  52. cursor.execute("commit;")
  53. cursor.execute(sql_load_datas)
  54. cursor.execute("commit;")
  55. cursor.execute(sql_delete)
  56. cursor.execute("commit;")
  57. cursor.execute(sql_insert)
  58. cursor.execute("commit;")
  59. cursor.close()
  60. db.close()

 

调通上面代码后,则可以通过linux 的 crontab 每天定时抽取相关数据了

(0)

相关推荐