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

本文介绍了一种利用Tushare金融大数据开放社区API自动获取通达信行情数据的方法,通过Python编程实现数据的定时下载及存储,同时详细展示了如何使用crontab进行每日数据同步,以及将数据导入MySQL数据库的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

#coding=utf-8
'''
Created on Nov 13, 2018

@author: root
'''

##import pandas as pd
import pymysql
import os
import tushare as ts
import csv
import time

# input date
#获取当天系统日期 如20190308
timest=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,20190307,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='|')

###下面把数据保持到mysql
if 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 每天定时抽取相关数据了

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值