def get_data(token=''): if token == '' or token is None: token = upass.get_token() if token is not None and token != '': pro = client.DataApi(token,timeout=60) return pro token=upass.get_token() tool=ts.pro.client.DataApi(token) engine=create_engine('postgresql://*****:*****@10.0.0.4:5432/stock',echo=False) saved_date=pd.read_sql_query('select distinct trade_date from daily',con=engine) saved_date=saved_date.sort_values('trade_date',ascending=False) t1=datetime.datetime.now() start_date='20191221' end_date='20200215' # trade_date='' tables=['daily','stk_limit','limit_list'] trade_cal=tool.query('trade_cal',start_date=start_date,end_date=end_date,is_open='1') count_dict=dict.fromkeys(tables,0) for date in trade_cal['cal_date']: if date in saved_date['trade_date'].values: continue print(date) for table in tables: data=tool.query(table,trade_date=date) if data.empty: continue data.to_sql(table,con=engine,if_exists='append',index=False) count_dict[table]+=data.shape[0] t2=datetime.datetime.now() print(t2-t1)
def pro_api(token=''): """ 初始化pro API,第一次可以通过ts.set_token('your token')来记录自己的token凭证,临时token可以通过本参数传入 """ if token == '' or token is None: token = upass.get_token() if token is not None and token != '': pro = client.DataApi(token) return pro else: raise Exception('api init error.')
def pro_api(token=''): """ 初始化pro API,第一次可以通过ts.set_token('your token')来记录自己的token凭证,临时token可以通过本参数传入 """ if token == '' or token is None: token = upass.get_token() if token is not None and token != '': pro = client.DataApi(token) return pro else: raise Exception('api init error.')
def __init__(self, client=None): if client is None: self.client = Client(up.get_token()) else: self.client = client
def __init__(self, client=None): if not client: self.client = Client(up.get_token()) else: self.client = client
def subs(token=''): if token == '' or token is None: token = upass.get_token() app = Subs(token=token) return app
import os import sys import datetime import time import calendar as cal from dateutil.parser import parse from sqlalchemy import create_engine import numpy as np import pandas as pd from functools import partial from sqlalchemy import create_engine import pandas as pd import tushare as ts from tushare.util import upass token = upass.get_token() tool = ts.pro.client.DataApi(token) engine = create_engine('postgresql://*****:*****@10.0.0.4:5432/stock', echo=False) def days(start_date, end_date=''): end_date = datetime.datetime.strptime(end_date, '%Y%m%d') if end_date else datetime.datetime.today() start_date = datetime.datetime.strptime(start_date, '%Y%m%d') # print(start_date,end_date,(end_date-start_date).days) return (end_date - start_date).days def download_data(start_date=None, end_date=None, trade_date=None, days=4, tables=['daily', 'stk_limit', 'limit_list']): if trade_date is None: if not end_date: end_date = str(datetime.datetime.today().date()).replace('-', '')