def classification(class_types):
    if class_types == 'industry':
        industry_classified = ts.get_industry_classified()
        industry_classified.to_csv('D:\\ts\\classification\\industry_classified.csv', encoding='gbk')
    elif class_types == 'concept':
        concept_classified = ts.get_concept_classified()
        concept_classified.to_csv('D:\\ts\\classification\\concept_classified.csv', encoding='gbk')
    elif class_types == 'area':
        area_classified = ts.get_area_classified()
        area_classified.to_csv('D:\\ts\\classification\\area_classified.csv', encoding='gbk')
    elif class_types == 'sme':
        sme_classified = ts.get_sme_classified()
        sme_classified.to_csv('D:\\ts\\classification\\sme_classified.csv', encoding='gbk')
    elif class_types == 'gem':
        gem_classified = ts.get_gem_classified()
        gem_classified.to_csv('D:\\ts\\classification\\gem_classified.csv', encoding='gbk')
    elif class_types == 'st':
        st_classified = ts.get_st_classified()
        st_classified.to_csv('D:\\ts\\classification\\st_classified.csv', encoding='gbk')
    elif class_types == 'hs300':
        hs300s = ts.get_hs300s()
        hs300s.to_csv('D:\\ts\\classification\\hs300s.csv', encoding='gbk')
    elif class_types == 'sz50':
        sz50s = ts.get_sz50s()
        sz50s.to_csv('D:\\ts\\classification\\sz50s.csv', encoding='gbk')
    elif class_types == 'zz500':
        zz500s = ts.get_zz500s()
        zz500s.to_csv('D:\\ts\\classification\\zz500s.csv', encoding='gbk')
    elif class_types == 'terminated':
        terminated = ts.get_terminated()
        terminated.to_csv('D:\\ts\\classification\\terminated.csv', encoding='gbk')
    elif class_types == 'suspended':
        suspended = ts.get_suspended()
        suspended.to_csv('D:\\ts\\classification\\suspended.csv', encoding='gbk')
Example #2
0
def get_zz500s():
    try:
        df = ts.get_zz500s();
        engine = create_engine('mysql://*****:*****@127.0.0.1/stock?charset=utf8')
        # df.insert(0,'code','600848')
        df.to_sql('zz500s', engine, if_exists='append')
    except Exception, e:
        e.message
Example #3
0
def gen_zz800_stock_list():
    '''
    :return: 生成中证800股票代码,[code, name, weight, date]
    '''

    zz500 = ts.get_zz500s()
    hs300 = ts.get_hs300s()
    zz800 = zz500.append(hs300)
    zz800 = zz800[['code', 'name', 'weight', 'date']]
    zz800.columns = zz800.columns.str.upper()
    zz800.to_csv(config.rootPath + '/data/gen_data/zz800_codes.csv', index=False)
Example #4
0
 def storagepool(self):
     #storage zz500
     df=ts.get_zz500s()
     self.pool['zz500'].insert_many(json.loads(df.to_json(orient='records')))
     #hs300
     df=ts.get_hs300s()
     self.pool['hz300'].insert_many(json.loads(df.to_json(orient='records')))
     #zh50
     df=ts.get_sz50s()
     self.pool['sz'].insert_many(json.loads(df.to_json(orient='records')))
     #st
     df=ts.get_st_classified()
     self.pool['st'].insert_many(json.loads(df.to_json(orient='records')))
Example #5
0
 def list(self, stock_block_type):
     stock_block = None
     if stock_block_type == self.industry:
         stock_block = db.get(STOCK_BLOCK_INDUSTRY)
         if stock_block is None:
             stock_block = ts.get_industry_classified()
             db.save(STOCK_BLOCK_INDUSTRY, stock_block)
     elif stock_block_type == self.concept:
         stock_block = db.get(STOCK_BLOCK_CONCEPT)
         if stock_block is None:
             stock_block = ts.get_concept_classified()
             db.save(STOCK_BLOCK_CONCEPT, stock_block)
     elif stock_block_type == self.area:
         stock_block = db.get(STOCK_BLOCK_AREA)
         if stock_block is None:
             stock_block = ts.get_area_classified()
             db.save(STOCK_BLOCK_AREA, stock_block)
     elif stock_block_type == self.sme:
         stock_block = db.get(STOCK_BLOCK_SME)
         if stock_block is None:
             stock_block = ts.get_sme_classified()
             db.save(STOCK_BLOCK_SME, stock_block)
     elif stock_block_type == self.gem:
         stock_block = db.get(STOCK_BLOCK_GEM)
         if stock_block is None:
             stock_block = ts.get_gem_classified()
             db.save(STOCK_BLOCK_GEM, stock_block)
     elif stock_block_type == self.st:
         stock_block = db.get(STOCK_BLOCK_ST)
         if stock_block is None:
             stock_block = ts.get_st_classified()
             db.save(STOCK_BLOCK_ST, stock_block)
     elif stock_block_type == self.hs300s:
         stock_block = db.get(STOCK_BLOCK_HS300S)
         if stock_block is None:
             stock_block = ts.get_hs300s()
             db.save(STOCK_BLOCK_HS300S, stock_block)
     elif stock_block_type == self.sz50s:
         stock_block = db.get(STOCK_BLOCK_SZ50S)
         if stock_block is None:
             stock_block = ts.get_sz50s()
             db.save(STOCK_BLOCK_SZ50S, stock_block)
     elif stock_block_type == self.zz500s:
         stock_block = db.get(STOCK_BLOCK_ZZ500S)
         if stock_block is None:
             stock_block = ts.get_zz500s()
             db.save(STOCK_BLOCK_ZZ500S, stock_block)
     else:
         return None
     return stock_block
Example #6
0
 def preload():
     stock_block = ts.get_industry_classified()
     db.save(STOCK_BLOCK_INDUSTRY, stock_block)
     stock_block = ts.get_concept_classified()
     db.save(STOCK_BLOCK_CONCEPT, stock_block)
     stock_block = ts.get_area_classified()
     db.save(STOCK_BLOCK_AREA, stock_block)
     stock_block = ts.get_sme_classified()
     db.save(STOCK_BLOCK_SME, stock_block)
     stock_block = ts.get_gem_classified()
     db.save(STOCK_BLOCK_GEM, stock_block)
     stock_block = ts.get_st_classified()
     db.save(STOCK_BLOCK_ST, stock_block)
     stock_block = ts.get_hs300s()
     db.save(STOCK_BLOCK_HS300S, stock_block)
     stock_block = ts.get_sz50s()
     db.save(STOCK_BLOCK_SZ50S, stock_block)
     stock_block = ts.get_zz500s()
     db.save(STOCK_BLOCK_ZZ500S, stock_block)
def spr():
    """
    Main interface
    :return: a filtered stock list
    """
    global count
    today = date.today().strftime('%Y-%m-%d').encode()
    trx_date = ts.get_hist_data('sh').index

    if today in trx_date:
        # four days included today
        begin = trx_date[2].encode()
    else:
        # four days excluded today
        begin = trx_date[3].encode()
    print 'Starting from %s ...' % str(begin)

    # get full stock list
    print 'Getting stock list ...',
    stock_list = ts.get_zz500s().code
    print 'Done: %s stocks' % len(stock_list)
    # filtering process
    count = 0
    return filter(lambda x: stock_filter(x, begin), stock_list)
Example #8
0
		end_day = now
	else:
		end_day = now - datetime.timedelta(days=1)

	try:
		stock_basics = ts.get_stock_basics()
	except:
		print('get_stock_basics timeout!')
		sys.exit(1)

	try:
	    list_code = sys.argv[1]

	    if int(list_code) == 500:
	        try:
	            stock_500 = ts.get_zz500s()
	        except:
	            print('get_zz500s timeout!')
	            sys.exit(1)
	        stock_list = stock_500.code.values
	    else:
	        sys.exit(1)
	except:
	    stock_list = stock_basics.index.values

	pool = multiprocessing.Pool(processes=4)
	for stock_code in sorted(stock_list):
		pool.apply_async(job2weight,(stock_code,end_day,stock_basics))
	pool.close()
	pool.join()
Example #9
0
def get_zz500s_history():
    zz500s = ts.get_zz500s()
    return get_data_by_column(zz500s)
Example #10
0
# ST Enterprise
ST = ts.get_st_classified()
ST.to_csv('./ASHR/DATA/ST.csv', index = False)

ts.get_h_data()

# HS 300
HS300S = ts.get_hs300s()
HS300S.to_csv('./ASHR/DATA/HS300S.csv', index = False)

# SZ 50
SZ50S = ts.get_sz50s()
SZ50S.to_csv('./ASHR/DATA/SZ50S.csv', index = False)

# ZZ 500
ZZ500S = ts.get_zz500s()
ZZ500S.to_csv('./ASHR/DATA/ZZ500S.csv', index = False)

#################
# Fund Holdings #
#################

# TODO Data is available quarterly
FundHolding = ts.fund_holdings(CURRENT.year, np.floor((CURRENT.month+2)/3))


####################
# Financial Report #
####################

# FinancialReport: EPS, EPS_YOY, ROE, net_profits, profits_yoy
Example #11
0
#-*- coding: utf-8 -*-
import tushare as ts
import pandas as pd
import numpy as np
import datetime
import uniout
from sqlalchemy import create_engine

stock_concept = ts.get_concept_classified()
stock_hs300s = ts.get_hs300s()
stock_sz50s = ts.get_sz50s()
stock_zz500s = ts.get_zz500s()

stock_list = ts.get_stock_basics()

stock_list['concept_name'] = ''
stock_list['ishs300s'] = 0
stock_list['issz50s'] = 0
stock_list['iszz500s'] = 0
for code in stock_list.index:
    temp_con = stock_concept[stock_concept['code'] == code]
    temp_hs300s = stock_hs300s[stock_hs300s['code'] == code]
    temp_sz50s = stock_sz50s[stock_sz50s['code'] == code]
    temp_zz500s = stock_zz500s[stock_zz500s['code'] == code]
    if len(temp_con) > 0:
        stock_list.loc[code]['concept_name'] = temp_con['c_name']
    else:
        stock_list.loc[code]['concept_name'] = ''
        print 'concept_name insert'

    if len(temp_hs300s) == 0:
Example #12
0
返回值说明:

code:股票代码
name:股票名称'''
print('上证50成份股')
print(ts.get_sz50s())

'''获取中证500成份股

返回值说明:

code:股票代码
name:股票名称'''

print('中证500成份股')
print(ts.get_zz500s())

'''获取已经被终止上市的股票列表,数据从上交所获取,目前只有在上海证券交易所交易被终止的股票。

返回值说明:

code:股票代码
name:股票名称
oDate:上市日期
tDate:终止上市日期'''
print('终止上市股票列表')
print(ts.get_terminated())

''''获取被暂停上市的股票列表,数据从上交所获取,目前只有在上海证券交易所交易被终止的股票。

返回值说明:
Example #13
0
print("#0", df)
df = ts.get_hist_data('600848',start='2016-08-05',end='2016-08-23')
print("#1", df)
df = ts.get_hist_data('600848',start='2016-08-05',end='2016-08-23', ktype='W')
print("#2", df)
df = ts.get_hist_data('600848',start='2016-08-05',end='2016-08-23', ktype='M')
print("#3", df)
df = ts.get_hist_data('600848',start='2016-08-05',end='2016-08-23', ktype='5')
print("#4", df)
df = ts.get_hist_data('600848',start='2016-08-05',end='2016-08-23', ktype='15')
print("#5", df)
df = ts.get_hist_data('600848',start='2016-08-05',end='2016-08-23', ktype='30')
print("#6", df)
df = ts.get_hist_data('600848',start='2016-08-05',end='2016-08-23', ktype='60')
print("#7", df)

df = ts.get_index()
printD("ts.get_index", df)

df = ts.get_suspended()
printD("ts.get_suspended()", df)

df = ts.get_sz50s()
printD("ts.get_sz50s", df)

df = ts.get_terminated()
printD("ts.get_terminated", df)

df = ts.get_zz500s()
printD("ts.get_zz500s", df)
Example #14
0
def stat_all(tmp_datetime):
    # 存款利率
    # data = ts.get_deposit_rate()
    # common.insert_db(data, "ts_deposit_rate", False, "`date`,`deposit_type`")
    #
    # # 贷款利率
    # data = ts.get_loan_rate()
    # common.insert_db(data, "ts_loan_rate", False, "`date`,`loan_type`")
    #
    # # 存款准备金率
    # data = ts.get_rrr()
    # common.insert_db(data, "ts_rrr", False, "`date`")
    #
    # # 货币供应量
    # data = ts.get_money_supply()
    # common.insert_db(data, "ts_money_supply", False, "`month`")
    #
    # # 货币供应量(年底余额)
    # data = ts.get_money_supply_bal()
    # common.insert_db(data, "ts_money_supply_bal", False, "`year`")
    #
    # # 国内生产总值(年度)
    # data = ts.get_gdp_year()
    # common.insert_db(data, "ts_gdp_year", False, "`year`")
    #
    # # 国内生产总值(季度)
    # data = ts.get_gdp_quarter()
    # common.insert_db(data, "ts_get_gdp_quarter", False, "`quarter`")
    #
    # # 三大需求对GDP贡献
    # data = ts.get_gdp_for()
    # common.insert_db(data, "ts_gdp_for", False, "`year`")
    #
    # # 三大产业对GDP拉动
    # data = ts.get_gdp_pull()
    # common.insert_db(data, "ts_gdp_pull", False, "`year`")
    #
    # # 三大产业贡献率
    # data = ts.get_gdp_contrib()
    # common.insert_db(data, "ts_gdp_contrib", False, "`year`")
    #
    # # 居民消费价格指数
    # data = ts.get_cpi()
    # common.insert_db(data, "ts_cpi", False, "`month`")
    #
    # # 工业品出厂价格指数
    # data = ts.get_ppi()
    # common.insert_db(data, "ts_ppi", False, "`month`")

    #############################基本面数据 http://tushare.org/fundamental.html
    # 股票列表
    data = ts.get_stock_basics()
    # print(data.index)
    # 解决ESP 小数问题。
    data["esp"] = data["esp"].round(2)  # 数据保留2位小数
    common.insert_db(data, "ts_stock_basics", True, "`code`")

    # http://tushare.org/classifying.html#id9

    # # 行业分类 必须使用 PRO 接口查询。
    # data = ts.get_industry_classified()
    # common.insert_db(data, "ts_industry_classified", True, "`code`")
    #
    # # 概念分类 必须使用 PRO 接口查询。
    # data = ts.get_concept_classified()
    # common.insert_db(data, "ts_concept_classified", True, "`code`")

    # 沪深300成份股及权重
    data = ts.get_hs300s()
    data = data.drop(columns=["date"])  # 删除日期
    data = data.set_index("code")  # 替换索引
    common.insert_db(data, "ts_stock_hs300s", True, "`code`")

    # # 上证50成份股 没有数据??
    # data = ts.get_sz50s()
    # common.insert_db(data, "ts_sz50s", True, "`code`")

    # 中证500成份股
    data = ts.get_zz500s()
    data = data.drop(columns=["date"])  # 删除日期
    data = data.set_index("code")  # 替换索引
    common.insert_db(data, "ts_stock_zz500s", True, "`code`")
Example #15
0
# -*- coding: utf-8 -*-
"""
Created on Wed Apr 13 21:39:24 2016

@author: Administrator
"""

import tushare as ts
import pandas as pd 
import numpy as np

from pandas import DataFrame,Series


zz500s = ts.get_zz500s()

#==============================================================================
# for stock in zz500s['code']:
#     hisdata = ts.get_hist_data(stock,start ='20140101' )
#     hisdata.to_csv('D:\\pythonTest\\stockfile\\'+ stock +  '.csv' )
#==============================================================================

stocklist = []

for stock in zz500s['code']:
    hisdata = ts.get_hist_data(stock,start ='2016-04-01')
    
    if (abs(hisdata['close']-hisdata['ma5'])/hisdata['ma5']<0.02).all() \
    and (hisdata['ma5'] > hisdata['ma10']).all() \
    and (hisdata['ma10'] > hisdata['ma20']).all() \
    and (abs(hisdata['high']-hisdata['close'])/hisdata['close']<0.02).all():
Example #16
0
gc = ts.get_gem_classified()
print(gc)

# 风险警示板分类
# 获取风险警示板股票数据,即查找所有st股票
st = ts.get_st_classified()
print(st)

# 沪深300成份及权重
# 获取沪深300当前成份股及所占权重
# FIXME 有bug
h3 = ts.get_hs300s()
print(h3)

# 上证50成份股
# 获取上证50成份股
# FIXME 有bug
ts.get_sz50s()

# 中证500成份股
# FIXME 有bug
ts.get_zz500s()

# 终止上市股票列表
t = ts.get_terminated()
print(t)

# 暂停上市股票列表
# 获取被暂停上市的股票列表,数据从上交所获取,目前只有在上海证券交易所交易被终止的股票。
s = ts.get_suspended()
print(s)
Example #17
0
import tushare as ts

# 中证500成份股
# 获取中证500成份股
#
# 返回值说明:
#
# code:股票代码
# name:股票名称

df = ts.get_zz500s()
print(df)

#           date    code  name  weight
# 0   2019-09-30  600006  东风汽车    0.10
# 1   2019-09-30  600008  首创股份    0.20
# 2   2019-09-30  600017   日照港    0.14
# 3   2019-09-30  600021  上海电力    0.22
# 4   2019-09-30  600022  山东钢铁    0.25
# ..         ...     ...   ...     ...
# 495 2019-09-30  300376   易事特    0.11
# 496 2019-09-30  300383  光环新网    0.45
# 497 2019-09-30  300418  昆仑万维    0.19
# 498 2019-09-30  300450  先导智能    0.47
# 499 2019-09-30  300459  金科文化    0.08
#
# [500 rows x 4 columns]

Example #18
0
def get_stock_zz500():
    """
        获取中证500成份股
    """
    return ts.get_zz500s()
Example #19
0
                db.commit()
            else:
                sql8 = "update stock_classify w set w.sz50 = '%s' where w.stock_code = '%s'" % (
                    str(1), str(resu8[0]))
                cursor.execute(sql8)
                db.commit()
        except Exception as ex:
            print(ex)
            continue

    con_sql8 = "select distinct stock_code from stock_classify"
    cursor.execute(con_sql8)
    done_set8 = cursor.fetchall()
    db.commit()
    con8 = [x[0] for x in done_set8]
    temp9 = ts.get_zz500s()
    temp9mid = np.array(temp9)
    print('Init_Classify  ===>> 9 of 9. ZZ500')
    for q in range(len(temp9mid)):
        resu9 = temp9mid[q]
        try:
            if resu9[0] not in con8:
                sql9 = "insert into stock_classify(stock_code,zz500)values('%s','%s')" % (
                    str(resu9[0]), str(1))
                cursor.execute(sql9)
                db.commit()
            else:
                sql9 = "update stock_classify w set w.zz500 = '%s' where w.stock_code = '%s'" % (
                    str(1), str(resu9[0]))
                cursor.execute(sql9)
                db.commit()
Example #20
0
def classified():

    #在现实交易中,经常会按行业统计股票的涨跌幅或资金进出,本接口按照sina财经对沪深股票进行的行业分类,返回所有股票所属行业的信息。
    #注意:有的股票属于两个行业:如000587
    industry = ts.get_industry_classified()
    industry = industry.drop_duplicates()
    industry_new = data_pro(industry)
    industry_new.rename(columns={'c_name': 'industry'}, inplace=True)

    #返回股票概念的分类数据,现实的二级市场交易中,经常会以”概念”来炒作,在数据分析过程中,可根据概念分类监测资金等信息的变动情况。
    concept = ts.get_concept_classified()
    concept = concept.drop_duplicates()
    concept_new = data_pro(concept)
    concept_new.rename(columns={'c_name': 'concept'}, inplace=True)

    #按地域对股票进行分类,即查找出哪些股票属于哪个省份。
    area = ts.get_area_classified()
    area = area.drop_duplicates()
    area_new = data_pro(area)

    #获取中小板股票数据,即查找所有002开头的股票
    sme = ts.get_sme_classified()
    sme['belong_bk'] = '中小板'
    #获取创业板股票数据,即查找所有300开头的股票
    gem = ts.get_gem_classified()
    gem['belong_bk'] = '创业板'
    #获取风险警示板股票数据,即查找所有st股票
    st = ts.get_st_classified()
    st['belong_bk'] = '风险警示板'
    bk = pd.concat([sme, gem, st], join='outer', axis=0)
    bk = bk.drop_duplicates()
    bk = data_pro(bk)

    # 获取沪深300当前成份股及所占权重
    hs300s = ts.get_hs300s()
    hs300s = hs300s.iloc[:, 1:-1]
    hs300s['belong_cfg'] = '沪深300成份股'
    # 获取上证50成份股
    sz50s = ts.get_sz50s()
    sz50s = sz50s.iloc[:, 1:]
    sz50s['belong_cfg'] = '上证50成份股'
    # 获取中证500成份股
    zz500s = ts.get_zz500s()
    zz500s = zz500s.iloc[:, 1:-1]
    zz500s['belong_cfg'] = '中证500成份股'
    cfg = pd.concat([hs300s, sz50s, zz500s], join='outer', axis=0)
    cfg = cfg.drop_duplicates()
    cfg = data_pro(cfg)

    # 获取已经被终止上市的股票列表,数据从上交所获取,目前只有在上海证券交易所交易被终止的股票。
    terminated = ts.get_terminated()
    if terminated != None:
        terminated['终止上市'] = '终止上市'

    # 获取被暂停上市的股票列表,数据从上交所获取,目前只有在上海证券交易所交易被终止的股票。
    suspended = ts.get_suspended()
    if suspended != None:
        suspended['暂停上市'] = '暂停上市'

    # 数据拼接
    table_list = [industry_new, concept_new, area_new, bk, cfg]
    for i in range(len(table_list)):
        if i == 0:
            classified_data = table_list[i]
        else:
            classified_data = pd.merge(classified_data,
                                       table_list[i],
                                       how='outer',
                                       on=['code', 'name'])
    classified_data = classified_data.fillna('未知')

    #一个代码对应多个名称的数据整理
    classified_temp = classified_data.groupby(['code'])
    classified_new = classified_temp.agg(lambda x: '|'.join(x))
    classified_dict = {
        'industry': '所属行业',
        'name': '名称',
        'concept': '概念',
        'area': '区域',
        'belong_bk': '所属板块',
        'belong_cfg': '所属成分股'
    }
    classified_new.columns = classified_new.columns.map(classified_dict)

    industry_list = classified_new['所属行业']
    industry_list = [i.split('|')[0] for i in industry_list]

    classified_new['所属行业'] = industry_list
    return classified_new
Example #21
0
 def init_zz500s_class(self):
     df = ts.get_zz500s()
     df.to_csv(self.zz500_class_file)
Example #22
0
File: stock.py Project: rainly/hq
def update_stock_info():

    trade_cal(True)

    for _ in range(5):
        try:
            time.sleep(0.1)
            df = ts.get_stock_basics()
            fle = os.path.join(CURDIR, 'stock.basics.csv')
            df.to_csv(fle, encoding="utf-8")
            df = df.set_index(df.index.astype(int))
            df.to_sql('stock_list',
                      engine,
                      if_exists='replace',
                      index=True,
                      index_label='code')
            ytrack.info('update 股票列表 save to sql')

            time.sleep(0.1)
            df = ts.get_today_all()
            fle = os.path.join(CURDIR, 'stock.today.csv')
            df.to_csv(fle, encoding="utf-8")
            df = df.set_index('code')
            df = df.set_index(df.index.astype(int))
            df.to_sql('stock_today',
                      engine,
                      if_exists='replace',
                      index=True,
                      index_label='code')
            ytrack.info('update stock_today')
            break
        except Exception as e:
            ytrack.error(traceback.format_exc())

    for _ in range(5):
        try:
            time.sleep(0.1)
            df = ts.get_industry_classified()
            df = df.set_index('code')
            df = df.set_index(df.index.astype(int))
            df.to_sql('stock_industry',
                      engine,
                      if_exists='replace',
                      index=True,
                      index_label='code')
            ytrack.info('update 股票行业 save to sql')
            break
        except Exception as e:
            ytrack.error(traceback.format_exc())
    # ytrack.info('成功 股票基本信息 from network..')
    # ynotice.send(ytrack.get_logs(), style='stock', title='更新股票基础数据和交易日期')

    # return
    for _ in range(5):
        try:
            time.sleep(0.1)
            df = ts.get_concept_classified()
            df = df.set_index('code')
            df = df.set_index(df.index.astype(int))
            df.to_sql('stock_concept',
                      engine,
                      if_exists='replace',
                      index=True,
                      index_label='code')
            ytrack.info('update 股票概念 save to sql')
            break
        except Exception as e:
            ytrack.error(traceback.format_exc())

    for _ in range(5):
        try:
            time.sleep(0.1)
            df = ts.get_area_classified()
            df = df.set_index('code')
            df = df.set_index(df.index.astype(int))
            df.to_sql('stock_area',
                      engine,
                      if_exists='replace',
                      index=True,
                      index_label='code')
            ytrack.info('update 股票地域 save to sql')
            break
        except Exception as e:
            ytrack.error(traceback.format_exc())

    for _ in range(5):
        try:
            time.sleep(0.1)
            df = ts.get_sme_classified()
            df = df.set_index('code')
            df = df.set_index(df.index.astype(int))
            df.to_sql('stock_sme',
                      engine,
                      if_exists='replace',
                      index=True,
                      index_label='code')
            ytrack.info('update 中小板股票 save to sql')
            break
        except Exception as e:
            ytrack.error(traceback.format_exc())

    for _ in range(5):
        try:
            time.sleep(0.1)
            df = ts.get_gem_classified()
            df = df.set_index('code')
            df = df.set_index(df.index.astype(int))
            df.to_sql('stock_gem',
                      engine,
                      if_exists='replace',
                      index=True,
                      index_label='code')
            ytrack.info('update 创业板股票 save to sql')
            break
        except Exception as e:
            ytrack.error(traceback.format_exc())

    for _ in range(5):
        try:
            time.sleep(0.1)
            df = ts.get_st_classified()
            df = df.set_index('code')
            df = df.set_index(df.index.astype(int))
            df.to_sql('stock_st',
                      engine,
                      if_exists='replace',
                      index=True,
                      index_label='code')
            ytrack.info('update st股票 save to sql')
            break
        except Exception as e:
            ytrack.error(traceback.format_exc())

    for _ in range(5):
        try:
            time.sleep(0.1)
            df = ts.get_hs300s()
            df = df.set_index('code')
            df = df.set_index(df.index.astype(int))
            df.to_sql('stock_hs300',
                      engine,
                      if_exists='replace',
                      index=True,
                      index_label='code')
            ytrack.info('update hs300股票 save to sql')
            break
        except Exception as e:
            ytrack.error(traceback.format_exc())

    for _ in range(5):
        try:
            time.sleep(0.1)
            df = ts.get_sz50s()
            df = df.set_index('code')
            df = df.set_index(df.index.astype(int))
            df.to_sql('stock_sz50s',
                      engine,
                      if_exists='replace',
                      index=True,
                      index_label='code')
            ytrack.info('update sz50s股票 save to sql')
            break
        except Exception as e:
            ytrack.error(traceback.format_exc())

    for _ in range(5):
        try:
            time.sleep(0.1)
            df = ts.get_zz500s()
            df = df.set_index('code')
            df = df.set_index(df.index.astype(int))
            df.to_sql('stock_zz500s',
                      engine,
                      if_exists='replace',
                      index=True,
                      index_label='code')
            ytrack.info('update zz500s股票 save to sql')
            break
        except Exception as e:
            ytrack.error(traceback.format_exc())

    ytrack.info('成功 股票基本信息 from network..')
    ynotice.send(ytrack.get_logs(), style='stock', title='更新股票基础数据和交易日期')
Example #23
0
def classification_type(class_types):
    if class_types == 'classification_industry':
        industry_classified = ts.get_industry_classified('sw')
        industry_classified.to_sql('classification_industry',
                                   engine,
                                   flavor='mysql',
                                   if_exists='replace')
    elif class_types == 'concept':
        concept_classified = ts.get_concept_classified()
        concept_classified.to_sql('classification_concept',
                                  engine,
                                  flavor='mysql',
                                  if_exists='replace')
    elif class_types == 'area':
        area_classified = ts.get_area_classified()
        area_classified.to_sql('classification_area',
                               engine,
                               flavor='mysql',
                               if_exists='replace')
    elif class_types == 'sme':
        sme_classified = ts.get_sme_classified()
        sme_classified.to_sql('classification_sme',
                              engine,
                              flavor='mysql',
                              if_exists='replace')
    elif class_types == 'gem':
        gem_classified = ts.get_gem_classified()
        gem_classified.to_sql('classification_gem',
                              engine,
                              flavor='mysql',
                              if_exists='replace')
    elif class_types == 'st':
        st_classified = ts.get_st_classified()
        st_classified.to_sql('classification_st',
                             engine,
                             flavor='mysql',
                             if_exists='replace')
    elif class_types == 'hs300':
        hs300s = ts.get_hs300s()
        hs300s.to_sql('classification_hs300s',
                      engine,
                      flavor='mysql',
                      if_exists='replace')
    elif class_types == 'sz50':
        sz50s = ts.get_sz50s()
        sz50s.to_sql('classification_sz50s',
                     engine,
                     flavor='mysql',
                     if_exists='replace')
    elif class_types == 'zz500':
        zz500s = ts.get_zz500s()
        zz500s.to_sql('classification_zz500s',
                      engine,
                      flavor='mysql',
                      if_exists='replace')
    elif class_types == 'terminated':
        terminated = ts.get_terminated()
        terminated.to_sql('classification_terminated',
                          engine,
                          flavor='mysql',
                          if_exists='replace')
    elif class_types == 'suspended':
        suspended = ts.get_suspended()
        suspended.to_sql('classification_suspended',
                         engine,
                         flavor='mysql',
                         if_exists='replace')
Example #24
0
                              time.localtime(time.time() - 24 * 3600 * 30))
    endDate = time.strftime("%Y-%m-%d", time.localtime(time.time()))
    # print(startDate)
    # print(endDate)
    df = ts.get_hist_data(code, startDate, endDate)

    closeList = df['close'].to_list()

    def add(x, y):
        return x + y

    sum = reduce(add, closeList)
    return round(sum / len(closeList), 2)


stockList = ts.get_zz500s()
startDate = time.strftime("%Y-%m-%d",
                          time.localtime(time.time() - 24 * 3600 * 5))
endDate = time.strftime("%Y-%m-%d", time.localtime(time.time()))
goodStock1 = goodStock2 = {}
for index, row in stockList.iterrows():
    code = row["code"]
    name = row["name"]
    print(name)
    print(code)
    m30 = m30(code)
    print(m30)
    df = ts.get_hist_data(code, startDate, endDate)
    closeList = df['close'].to_list()
    result = list(filter(lambda x: x > m30, closeList))
    if len(result) == len(closeList):
Example #25
0
import pymongo
import datetime
import tushare as ts
code_list = ts.get_zz500s().code.tolist()

print('unasync-mongo')
time2 = datetime.datetime.now()
clientx = pymongo.MongoClient('192.168.4.253', 27017).quantaxis.stock_day
data = []


def get_data(codelist):
    for code in codelist:
        for message in clientx.find({'code': code}):
            data.append(message)


get_data(code_list)
print(datetime.datetime.now() - time2)
Example #26
0
def get_zz500s_history():
    zz500s = ts.get_zz500s()
    return get_data_by_column(zz500s)
Example #27
0
'''最近周k线'''
D_recent_k_data = ts.get_k_data(target_stock_code, ktype='D')
'''最近日k线'''
recent_k60_data = ts.get_k_data(target_stock_code, ktype='60')
'''最近小时线'''
recent_k30_data = ts.get_k_data(target_stock_code, ktype='30')
'''最近30min线'''
recent_k15_data = ts.get_k_data(target_stock_code, ktype='15')
'''最近15min线'''
recent_k5_data = ts.get_k_data(target_stock_code, ktype='5')
'''最近5min线'''
#==============================================================================指数成分==============================================================================
'''获取指数成分'''
df_hs300 = ts.get_hs300s() #获取沪深300当前成份股及所占权重
df_sz50 = ts.get_sz50s() #获取上证50成份股
df_zz500 = ts.get_zz500s() #获取中证500成份股
#==============================================================================投资参考==============================================================================
df_dividend = ts.profit_data(top=60)
df_dividend.sort('shares',ascending=False)
'''分配预案'''
df_forecast = ts.forecast_data(2017,4)
'''业绩预告'''
df_restrict = ts.xsg_data()
'''限售股解禁'''
df_fund = ts.fund_holdings(2017, 2)
'''基金持股'''
df_sh = ts.sh_margin_details(start='2015-01-01', end='2015-04-19', symbol='601989')
'''上交所融资融券明细'''
df_sz = ts.sz_margins(start='2015-01-01', end='2015-04-19')
df_sz_detail = ts.sz_margin_details('2015-04-20')
'''深交所融资融券总额'''
Example #28
0
def capture_stock_data():
    capture_date = datetime.datetime.now().strftime("%Y%m%d")
    current_dir = os.getcwd()
    save_dir = os.path.join(current_dir, capture_date)

    if not os.path.exists(save_dir):
        os.mkdir(save_dir)
        print("The save directory is created successfully!\n", save_dir)
    else:
        print("The save directory is already exist!\n", save_dir)

    # ======================Daily Command================================================================
    # get the boxoffcie data of the last day and save as csvfile named as the capture command

    ts.day_boxoffice().to_csv(
        save_dir + "/" + capture_date + "_day_boxoffice.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("day_boxoffice data capture completed!")

    # get the cinema data of the last day and save as csvfile named as the capture command
    ts.day_cinema().to_csv(
        save_dir + "/" + capture_date + "_day_cinema.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("day_cinema data capture completed!")
    '''ts.month_boxoffice().to_csv(
        save_dir + "/" + capture_date + "_month_boxoffice.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("month_boxoffice data capture completed!")'''

    ts.realtime_boxoffice().to_csv(
        save_dir + "/" + capture_date + "_realtime_boxoffice.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("realtime_boxoffice data capture completed!")

    # get the stock data index of the last day and save as csvfile named as the capture command
    ts.get_index().to_csv(
        save_dir + "/" + capture_date + "_get_index.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("get_index data capture completed!")

    # get the history cpi data and save as csvfile named as the capture command
    ts.get_cpi().to_csv(
        save_dir + "/" + capture_date + "_get_cpi.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("get_cpi data capture completed!")

    # get the history gdp data  by month and save as csvfile named as the capture command
    ts.get_gdp_year().to_csv(
        save_dir + "/" + capture_date + "_get_gdp_year.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("get_gdp_year data capture completed!")

    # get today all stock data and save as csvfile named as the capture command
    # ts.get_today_all().to_csv(save_dir+'/'+capture_date+'_get_today_all.csv',header=True,sep=',',index=False)

    # get detail information of the top brokers today and save as csvfile named as the capture command
    ts.broker_tops().to_csv(
        save_dir + "/" + capture_date + "_broker_tops.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("broker_tops data capture completed!")

    # get detail information of the top brokers today and save as csvfile named as the capture command
    ts.cap_tops().to_csv(
        save_dir + "/" + capture_date + "_cap_tops.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("cap_tops data capture completed!")

    ts.get_area_classified().to_csv(
        save_dir + "/" + capture_date + "_get_area_classified.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("get_area_classified data capture completed!")

    # ts.get_balance_sheet(code='').to_csv(save_dir+'/'+capture_date+'_get_balance_sheet.csv',header=True,sep=',',index=False)
    # print('get_balance_sheet data capture completed!')

    # ts.get_cash_flow(code='').to_csv(save_dir+'/'+capture_date+'_get_cash_flow.csv',header=True,sep=',',index=False)
    # print('get_cash_flow data capture completed!')

    ts.get_day_all().to_csv(
        save_dir + "/" + capture_date + "_get_day_all.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("get_day_all data capture completed!")
    ts.get_cashflow_data(2018, 3).to_csv(
        save_dir + "/" + capture_date + "_get_cashflow_data.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("get_cashflow_data data capture completed!")
    ts.get_concept_classified().to_csv(
        save_dir + "/" + capture_date + "_get_concept_classified.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("get_concept_classified data capture completed!")
    ts.get_debtpaying_data(2018, 3).to_csv(
        save_dir + "/" + capture_date + "_get_debtpaying_data.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("get_debtpaying_data data capture completed!")
    ts.get_deposit_rate().to_csv(
        save_dir + "/" + capture_date + "_get_deposit_rate.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("get_deposit_rate data capture completed!")

    ts.get_gdp_contrib().to_csv(
        save_dir + "/" + capture_date + "_get_gdp_contrib.csv",
        header=True,
        sep=",",
        index=False,
    )
    ts.get_gdp_for().to_csv(
        save_dir + "/" + capture_date + "_get_gdp_for.csv",
        header=True,
        sep=",",
        index=False,
    )
    ts.get_gdp_pull().to_csv(
        save_dir + "/" + capture_date + "_get_gdp_pull.csv",
        header=True,
        sep=",",
        index=False,
    )
    ts.get_gdp_quarter().to_csv(
        save_dir + "/" + capture_date + "_get_gdp_quarter.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("get_gdp_ data capture completed!")
    # ts.get_gdp_year().to_csv(save_dir+'/'+capture_date+'_get_gdp_year.csv',header=True,sep=',',index=False)
    ts.get_gem_classified().to_csv(
        save_dir + "/" + capture_date + "_get_gem_classified.csv",
        header=True,
        sep=",",
        index=False,
    )
    ts.get_gold_and_foreign_reserves().to_csv(
        save_dir + "/" + capture_date + "_get_gold_and_foreign_reserves.csv",
        header=True,
        sep=",",
        index=False,
    )
    ts.get_growth_data(2018, 3).to_csv(
        save_dir + "/" + capture_date + "_get_growth_data.csv",
        header=True,
        sep=",",
        index=False,
    )
    ts.get_industry_classified().to_csv(
        save_dir + "/" + capture_date + "_get_industry_classified.csv",
        header=True,
        sep=",",
        index=False,
    )
    ts.get_hs300s().to_csv(
        save_dir + "/" + capture_date + "_get_hs300s.csv",
        header=True,
        sep=",",
        index=False,
    )
    # =============================================================================
    #     ts.get_sz50s().to_csv(
    #         save_dir + "/" + capture_date + "_get_sz50s.csv",
    #         header=True,
    #         sep=",",
    #         index=False,
    #     )
    # =============================================================================
    ts.get_zz500s().to_csv(
        save_dir + "/" + capture_date + "_get_zz500s.csv",
        header=True,
        sep=",",
        index=False,
    )
    ts.get_operation_data(2018, 3).to_csv(
        save_dir + "/" + capture_date + "_get_operation_data.csv",
        header=True,
        sep=",",
        index=False,
    )
    ts.get_stock_basics().to_csv(
        save_dir + "/" + capture_date + "_get_stock_basics.csv",
        header=True,
        sep=",",
        index=False,
    )
    ts.get_report_data(2018, 3).to_csv(
        save_dir + "/" + capture_date + "_get_report_data.csv",
        header=True,
        sep=",",
        index=False,
    )
    ts.inst_detail().to_csv(
        save_dir + "/" + capture_date + "_inst_detail.csv",
        header=True,
        sep=",",
        index=False,
    )
    ts.inst_tops().to_csv(
        save_dir + "/" + capture_date + "_inst_tops.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("inst_tops data capture completed!")
    # =============================================================================
    #     ts.new_stocks().to_csv(
    #         save_dir + "/" + capture_date + "_new_stocks.csv",
    #         header=True,
    #         sep=",",
    #         index=False,
    #     )
    #     print("new_stocks data capture completed!")
    # =============================================================================
    ts.top_list().to_csv(
        save_dir + "/" + capture_date + "_top_list.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("top_list data capture completed!")
    ts.get_k_data('sh', start='1990-01-01').to_csv(
        save_dir + "/" + capture_date + "_get_k_data.csv",
        header=True,
        sep=",",
        index=False,
    )
    print("get_k_data capture completed!")
Example #29
0
from sqlalchemy import create_engine
import tushare as ts

stock_basics = ts.get_stock_basics() #所有股票列表    stock_basic
industry = ts.get_industry_classified()  # 行业分类                industry
concept = ts.get_concept_classified()  # 概念分类                concept
area = ts.get_area_classified()  # 地域分类                 area
#sme = ts.get_sme_classified()  # 中小板                sme
#gem = ts.get_gem_classified()  # 创业板                    gem
#st = ts.get_st_classified()  # ST风险警示板            st
hs300s = ts.get_hs300s()  # 沪深300               hs300s

sz50s = ts.get_sz50s()  # 上证50                        sz50s
zz500s = ts.get_zz500s()  # 中证500                zz500s
terminated = ts.get_terminated()  # 终止上市    terminated
suspended = ts.get_suspended()  # 暂停上市    suspended


engine = create_engine('mysql://*****:*****@10.20.116.107/CN_BASSOON?charset=utf8')
#sme.to_sql('sme', engine, if_exists='append')
#gem.to_sql('gem', engine, if_exists='append')
#st.to_sql('st', engine, if_exists='append')
hs300s.to_sql('hs300s', engine, if_exists='append')
sz50s.to_sql('sz50s', engine, if_exists='append')
zz500s.to_sql('zz500s', engine, if_exists='append')
terminated.to_sql('terminated', engine, if_exists='append')
suspended.to_sql('suspended', engine, if_exists='append')
stock_basics.to_sql('stock_basics', engine, if_exists='append')
industry.to_sql('industry', engine, if_exists='append')
concept.to_sql('concept', engine, if_exists='append')
area.to_sql('area', engine, if_exists='append')
def get_zz500s_info(file_path):
    zz500s_info = ts.get_zz500s()
    zz500s_info.to_csv(file_path, encoding='utf-8')
    print '\ndownload zz500s info finished\n'
Example #31
0
import tushare as ts
import storage as storage

storage.save_sql(ts.get_industry_classified(), "basics/industry_classified")
storage.save_sql(ts.get_concept_classified(), "basics/concept_classified")
storage.save_sql(ts.get_area_classified(), "basics/area_classified")
storage.save_sql(ts.get_st_classified(), "basics/st_classified")
storage.save_sql(ts.get_hs300s(), "basics/hs300s")
storage.save_sql(ts.get_sz50s(), "basics/sz50s")
storage.save_sql(ts.get_zz500s(), "basics/zz500s")
storage.save_sql(ts.get_terminated(), "basics/terminated")
storage.save_sql(ts.get_suspended(), "basics/suspended")
storage.save_sql(ts.get_sme_classified(), "basics/sme_classified")
storage.save_sql(ts.get_gem_classified(), "basics/gem_classified")
Example #32
0
@author: Administrator
'''
import tushare as ts
# 行业分类
ts.get_industry_classified()

# 概念分类
ts.get_concept_classified()

# 地域分类
ts.get_area_classified()

# 获取沪深300当前成份股及所占权重
ts.get_hs300s()

# 获取中小板股票数据,即查找所有002开头的股票
ts.get_sme_classified()

# 获取创业板股票数据,即查找所有300开头的股票
ts.get_gem_classified()

# 获取风险警示板股票数据,即查找所有st股票
ts.get_st_classified()

# 获取上证50成份股
ts.get_sz50s()

# 获取中证500成份股
ts.get_zz500s()
Example #33
0
def syncZZ500S():
    zz500s_df = ts.get_zz500s()
    zz500s_df.to_csv(config.ZZ500_CodePath, encoding="utf-8")
    saveDataFileByCode(zz500s_df)
    print("sync and save ZZ500 done!")
Example #34
0
def load_company_industry_info(): 
    #下载加载行业分类数据
    try:
        rs=ts.get_industry_classified()
        sql.write_frame(rs, "company_industry_classified", con=conn_company_classified , flavor='mysql', if_exists='replace',index=True)
        print("下载公司行业分类信息ok")
    except:
        print("下载公司行业分类信息出错")
    #下载加载概念分类数据
    try:
        rs=ts.get_concept_classified()
        sql.write_frame(rs, "company_concept_classified", con=conn_company_classified , flavor='mysql', if_exists='replace',index=True)
        print("载公司概念分类信息ok")
    except:
        print("下载公司概念分类信息出错")
    #下载加载地域分类数据
    try:
        rs=ts.get_area_classified()
        sql.write_frame(rs, "company_area_classified", con=conn_company_classified , flavor='mysql', if_exists='replace',index=True)
        print("下载公司区域分类信息ok")
    except:
        print("下载公司区域分类信息出错")
    #下载加载中小板分类数据
    try:
        rs=ts.get_sme_classified()
        sql.write_frame(rs, "company_sme_classified", con=conn_company_classified , flavor='mysql', if_exists='replace',index=True)
        print("下载中小板分类数据ok")
    except:
        print("下载中小板分类数据出错")
    #下载加载创业板分类数据
    try:
        rs=ts.get_gem_classified()
        sql.write_frame(rs, "company_gem_classified", con=conn_company_classified , flavor='mysql', if_exists='replace',index=True)
        print("下载创业板分类数据ok")
    except:
        print("下载创业板分类数据出错")
    #下载加载st板分类数据
    try:
        rs=ts.get_st_classified()
        sql.write_frame(rs, "company_st_classified", con=conn_company_classified , flavor='mysql', if_exists='replace',index=True)
        print("下载st板分类数据ok")
    except:
        print("下载st板分类数据出错")
    #下载加载沪深300板分类数据
    try:
        rs=ts.get_hs300s()
        sql.write_frame(rs, "company_hs300_classified", con=conn_company_classified , flavor='mysql', if_exists='replace',index=True)
        print("下载加载沪深300板分类数据ok")
    except:
        print("下载加载沪深300板分类数据出错")
    #下载加载上证50板分类数据
    try:
        rs=ts.get_sz50s()
        sql.write_frame(rs, "company_sz50_classified", con=conn_company_classified , flavor='mysql', if_exists='replace',index=True)
        print("下载加载上证50板分类数据ok")
    except:
        print("下载加载上证50板分类数据出错")
    #下载加载中证500板分类数据
    try:
        rs=ts.get_zz500s()
        sql.write_frame(rs, "company_zz500_classified", con=conn_company_classified , flavor='mysql', if_exists='replace',index=True)
        print("下载加载中证500板分类数据ok")
    except:
        print("下载加载中证500板分类数据出错")
    #下载加载终止上市分类数据
    try:
        rs=ts.get_terminated()
        sql.write_frame(rs, "company_terminated_classified", con=conn_company_classified , flavor='mysql', if_exists='replace',index=True)
        print("下载加载终止上市分类数据ok")
    except:
        print("下载加载终止上市分类数据出错")
    #下载加载暂停上市分类数据
    try:
        rs=ts.get_suspended()
        sql.write_frame(rs, "company_suspended_classified", con=conn_company_classified , flavor='mysql', if_exists='replace',index=True)
        print("下载加载暂停上市分类数据ok")
    except:
        print("下载加载暂停上市分类数据出错")
Example #35
0
    cur.execute('show tables')  # 罗列所有当前库里面的所有表格
    tables = cur.fetchall()
    selectab = re.compile(r'\w*\w*')
    tabnames = selectab.findall(str(tables))
    res = tab_name in tabnames
    return res


stk_concept_class = ts.get_concept_classified()
stk_area_class = ts.get_area_classified()
stk_sme_class = ts.get_sme_classified()
stk_gem_class = ts.get_gem_classified()
stk_st_class = ts.get_st_classified()
stk_hs300_class = ts.get_hs300s()
stk_sz50_class = ts.get_sz50s()
stk_zz500_class = ts.get_zz500s()
stk_terminated_class = ts.get_terminated()
stk_sus_class = ts.get_suspended()

while True:
    #hostname = input('Please enter the hostname: ')
    pw = input('Please enter the password: '******'Please enter the number of datebase: ')
    try:
        conn = mysql.connector.connect(host='10.23.0.2',
                                       port=3306,
                                       user='******',
                                       password=pw,
                                       database=dbname)
        cur = conn.cursor()
        break
# 参见 https://github.com/sherlockhoatszx/Stock_Pickup_and_Reminding/issues/7
#filter_funcs = [stock_filter, ver_hammer,feature3]'''
filter_funcs = [feature3]   
    
def spr(filter_func, begin):
    """
    Main interface
    :param filter_func: 股票筛选函数,返回 True or False
    :param begin: beginning date
    :return: a filtered stock list
    """
    global count

    # get full stock list
    # print 'Getting stock list ...',
    stock_list = ts.get_zz500s().code
    # print 'Done: %s stocks' % len(stock_list)
    # filtering process
    count = 0
    print "筛选方式 %s" % filter_func.__name__
    return filter(lambda x: filter_func(x, begin), stock_list)


if __name__ == '__main__':
    today = date.today().strftime('%Y-%m-%d').encode()
    trx_date = ts.get_hist_data('sh').index

    if today in trx_date:
        # four days included today
        _begin = trx_date[3].encode()
    else:
Example #37
0
 def stock_list_update(self,type='all'):
     '''
     股票基本面板更新
     :param type:
     :return:
     '''
     type_list =['all',
                 'industry',
                 'concept',
                 'area',
                 'sme',
                 'gem',
                 'st',
                 'hs300s',
                 'ss50s',
                 'zz500s',
                 'terminated',
                 'suspended']
     #输入类型检查
     if not isinstance(type,str):
         raise TypeError,'stock_type must be string'
     elif isinstance(type,str) and type not in type_list:
         raise ValueError,'%s is not a valid type' % (type)
     #更新数据
     if type == 'all':
         temp = ts.get_stock_basics()
         path = os.path.join(StockDataControler().stock_basis_init(),
                             'global.csv')
         temp.to_csv(path)
         return temp
     if type == 'industry':
         temp = ts.get_industry_classified()
         #temp['name'] = temp['name'].map(lambda x: x.encode('utf-8'))
         path = os.path.join(StockDataControler().stock_basis_init(),
                             'industry.csv')
         temp.to_csv(path)
     if type == 'concept':
         temp = ts.get_concept_classified()
         #temp['name'] = temp['name'].map(lambda x: x.encode('utf-8'))
         path = os.path.join(StockDataControler().stock_basis_init(),
                             'concept.csv')
         temp.to_csv(path)
     if type == 'area':
         temp = ts.get_area_classified()
         #temp['name'] = temp['name'].map(lambda x: x.encode('utf-8'))
         path = os.path.join(StockDataControler().stock_basis_init(),
                             'area.csv')
         temp.to_csv(path)
     if type == 'sme':
         temp = ts.get_sme_classified()
         #temp['name'] = temp['name'].map(lambda x: x.encode('utf-8'))
         path = os.path.join(StockDataControler().stock_basis_init(),
                             'sme.csv')
         temp.to_csv(path)
     if type == 'gem':
         temp = ts.get_gem_classified()
         #temp['name'] = temp['name'].map(lambda x: x.encode('utf-8'))
         path = os.path.join(StockDataControler().stock_basis_init(),
                             'gem.csv')
         temp.to_csv(path)
     if type == 'st':
         temp = ts.get_st_classified()
         # temp['name'] = temp['name'].map(lambda x: x.encode('utf-8'))
         path = os.path.join(StockDataControler().stock_basis_init(),
                             'st.csv')
         temp.to_csv(path)
     if type == 'hs300s':
         temp = ts.get_hs300s()
         temp['name'] = temp['name'].map(lambda x: x.encode('utf-8'))
         path = os.path.join(StockDataControler().stock_basis_init(),
                             'hs300s.csv')
         temp.to_csv(path)
     if type == 'sz50s':
         temp = ts.get_sz50s()
         temp['name'] = temp['name'].map(lambda x: x.encode('utf-8'))
         path = os.path.join(StockDataControler().stock_basis_init(),
                             'sz50s.csv')
         temp.to_csv(path)
     if type == 'zz500s':
         temp = ts.get_zz500s()
         temp['name'] = temp['name'].map(lambda x: x.encode('utf-8'))
         path = os.path.join(StockDataControler().stock_basis_init(),
                             'zz500s.csv')
         temp.to_csv(path)
     if type == 'terminated':
         temp = ts.get_terminated()
         temp['name'] = temp['name'].map(lambda x: x.encode('utf-8'))
         path = os.path.join(StockDataControler().stock_basis_init(),
                             'terminated.csv')
         temp.to_csv(path)
     if type == 'suspended':
         temp = ts.get_suspended()
         temp['name'] = temp['name'].map(lambda x: x.encode('utf-8'))
         path = os.path.join(StockDataControler().stock_basis_init(),
                             'suspended.csv')
         temp.to_csv(path)
Example #38
0
this file help to fill the database table, such as Classified
hs300 sz50 zz500
"""
import sys
sys.path.append('../publicstuff')
import tushare as ts
import pandas as pd
import config
from mongoModel import *

industry = ts.get_industry_classified()
concept = ts.get_concept_classified()
area = ts.get_area_classified()
hs300 = ts.get_hs300s()
sz50 = ts.get_sz50s()
zz500 = ts.get_zz500s()

res = pd.merge(area, industry, on=['code', 'name'])
res = pd.merge(res, concept, on=['code', 'name'])
# print(res)
# exit()

for stock in config.stolist:
    current = res[res.code == stock]
    print(current)
    name = config.StocksList[stock]
    area_ = list(set(list(current.area)))
    if len(area_) > 0:
        area_ = area_[0]
    else:
        area_ = 'None'
def zz500db():
    zz500 = ts.get_zz500s()
    print(zz500, sep=' ', end='\n', file=sys.stdout, flush=False)
    zz500.to_sql('zz500_data', ENGINE)