tushare

#-*- coding:utf-8 -*-
import requests
import tushare as ts
import pandas as pd
import datetime
import pymysql
import time
pymysql.install_as_MySQLdb()
from sqlalchemy import create_engine

def macro_index():
'''
SHIBOR利率数据
接口:shibor
描述:shibor利率
限量:单次最大2000,总量不限制,可通过设置开始和结束日期分段获取
积分:用户积累120积分可以调取,具体请参阅积分获取办法
'''
# 获取某一段时间shibor利率数据
shibor_rate = pro.shibor(start_date='20190101', end_date='20191013')

# 获取当天shibor利率
# shibor_rate = pro.shibor(data=now)

# 追加数据到现有表shibor
shibor_rate.to_sql('shibor_data',engine,if_exists='append')

def market_data():
'''
沪深港通资金流向
接口:moneyflow_hsgt
描述:获取沪股通、深股通、港股通每日资金流向数据,每次最多返回300条记录,总量不限制。

融资融券交易汇总
接口:margin
描述:获取融资融券每日交易汇总数据

两市交易汇总
描述:获取沪深两市成交总额
'''
# 获取某一段时间北向资金数据
north_fund = pro.moneyflow_hsgt(start_date='20190101', end_date='20191013',fields='trade_date,hgt,sgt,north_money')
# 获取当天北向资金数据
# north_fund = pro.moneyflow_hsgt(trade_date=now,fields='trade_date,hgt,sgt,north_money')
# 追加数据到现有表shibor
north_fund.to_sql('north_fund_data', engine, if_exists='append')

# 获取某一段时间两融数据
margin_fund = pro.margin(start_date='20190101', end_date='20191013',fields='trade_date,exchange_id,rzye,rqye,rzrqye')
# 获取当天两融数据
# margin_fund = pro.margin(trade_date='20191011',fields='trade_date,exchange_id,rzye,rqye,rzrqye')
margin_fund_data.to_sql('margin_fund_data', engine, if_exists='append')

def stock_data():
'''
上市公司基本信息
接口:stock_company
描述:获取上市公司基础信息
积分:用户需要至少120积分才可以调取,具体请参阅积分获取办法

股票列表
接口:stock_basic
描述:获取基础信息数据,包括股票代码、名称、上市日期、退市日期等

股东人数
接口:stk_holdernumber
描述:获取上市公司股东户数数据,数据不定期公布
限量:单次最大3000,总量不限制
积分:600积分可调取,基础积分每分钟调取100次,5000积分以上无限制。具体请参阅积分获取办法

概念股列表
接口:concept_detail
描述:获取概念股分类明细数据
积分:用户需要至少300积分才可以调取,具体请参阅积分获取办法

每日指标
接口:daily_basic
更新时间:交易日每日15点~17点之间
描述:获取全部股票每日重要的基本面指标,可用于选股分析、报表展示等。
积分:用户需要至少300积分才可以调取,具体请参阅积分获取办法

前十大流通股东
接口:top10_floatholders
描述:获取上市公司前十大流通股东数据。

股权质押统计数据
接口:pledge_stat
描述:获取股权质押统计数据
限量:单次最大1000
积分:用户需要至少300积分才可以调取,具体请参阅积分获取办法

限售股解禁
接口:share_float
描述:获取限售股解禁
限量:单次最大5000条,总量不限制
积分:120分可调取,每分钟内限制次数,超过5000积分无限制,具体请参阅积分获取办法
'''
company_detail = pro.stock_company(fields='ts_code,province,city,employees,main_business')
company_detail.to_sql('company_detail_data', engine, if_exists='append')

stcok_list = pro.stock_basic(list_status='L', fields='ts_code,name,industry,market,exchange,list_date')
print(df4)

stockholder_info = pro.stk_holdernumber(ts_code='300199.SZ', start_date='20160101', end_date='20181231')

concept_info = pro.concept_detail(id='TS2', fields='ts_code,name')

stock_info = pro.daily_basic(trade_date='20191011', fields='trade_date,ts_code,close,total_share,float_share')
print(df6)

floatholder = pro.top10_floatholders(ts_code='300033.SZ', fields='ts_code,end_date,holder_name,hold_amount')
print(df7)

pledge = pro.pledge_stat(ts_code='300033.SZ',fields='ts_code,end_date,pledge_count,unrest_pledge,rest_pledge,pledge_ratio')
print(df8)

restricted_stock = pro.share_float(ts_code='300033.SZ', fields='ts_code,holder_name,float_date,float_share')
print(df9)

if __name__ == '__main__':
ts.set_token('ac16b470869c5d82db5033ae9288f77b282d2b5519507d6d2c72fdd7')
pro = ts.pro_api()
now = datetime.datetime.now().strftime("%Y%m%d")
engine = create_engine('mysql://root:[email protected]/stock?charset=utf8')
data()

你可能感兴趣的:(tushare)