600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 通达信行情数据获取--python

通达信行情数据获取--python

时间:2018-11-15 13:56:29

相关推荐

通达信行情数据获取--python

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

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

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

#coding=utf-8'''Created on Nov 13, @author: root'''##import pandas as pdimport pymysqlimport osimport tushare as tsimport csvimport time# input date#获取当天系统日期 如0308timest=time.strftime("%Y%m%d")pro = ts.pro_api('输入注册平台上自己注册到id')##获取交易日期##平台上到接口,可以获取每天交易日期 ,该变量保存日期文件file_date='/root/workspace/stock/src/dt_'+timest+'.csv'##df_date 若果想获取多天数据 修改 start_date=timest, end_date=timest 中变量则可以df_date=pro.query('trade_cal', start_date=timest, end_date=timest)##把日期文件信息保存到csv文件df_date.to_csv(file_date,index=False, mode='w',header=False, encoding='gbk')文件内容如下SSE,0307,1 其中 1 表示为交易当天有交易。0表示当天没交易##filename = '/root/workspace/stock/src/dt_'+timest+'.csv'##下面代码打开日期文件,循环读取日期,并下载有交易日期到数据with open(file_date) as f:reader = csv.reader(f)dt_dates = []for row in reader:dt_dates.append([row[1],row[2]])print (dt_dates)file_name='/root/workspace/stock/src/stock_datas_'+timest+'.csv'for dt_date, act_flag in dt_dates :##若干当天为交易日期则连接平台获取交易数据并保存到本地if act_flag == '1' :df = pro.daily(trade_date=dt_date)df.to_csv(file_name ,index=False, mode='w',header=False, encoding="utf-8",sep='|')###下面把数据保持到mysqlif os.path.exists(file_name) :db = pymysql.connect(host='127.0.0.1', user='mysql用户', passwd='mysql密码', db='mysql数据库', charset='utf8',local_infile=1)cursor = db.cursor()sql_load_datas="""LOAD DATA LOCAL INFILE '%s' INTO TABLE tb_tock_daily FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n';"""%(file_name)sql_ddl=""" truncate table tb_tock_daily ;"""sql_delete="""delete from tb_tock_daily_his where trade_date ='%s' """%(timest)sql_insert="""insert into tb_tock_daily_his select a.* from tb_tock_daily a where trade_date ='%s' """%(timest)cursor.execute(sql_ddl)cursor.execute("commit;") cursor.execute(sql_load_datas)cursor.execute("commit;")cursor.execute(sql_delete)cursor.execute("commit;")cursor.execute(sql_insert)cursor.execute("commit;")cursor.close()db.close()

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。