def Get_margin(self): try: if int(self.code)>=60000 and int(self.code)<610000: each_margin=ts.sh_margin_details(start=self.starttime,end=self.endtime,symbol=self.code) if each_margin.empty: return else: self.margin=each_margin.sort_values(by='opDate',ascending=True) elif int(self.code)>0 and int(self.code)<3000: self.Get_Margin_sz() print(sorted(margin_dict.keys())) margin_list=[margin_dict[k] for k in sorted(margin_dict.keys())] self.margin=pd.concat(margin_list) #margin_list=[] #for date in self.data.index: # each_margin=ts.sz_margin_details(date) # each_margin=each_margin[each_margin.stockCode==self.code] # margin_list.append(each_margin) #self.margin=pd.concat(margin_list) else: print('code error') except Exception,e: print('getting margin failed,reason:',e)
def getShMarginDetails(cursor): for i in range(1992, 2017+1): try: df = ts.sh_margin_details(start=str(i)+'-01-01', end=str(i)+'-12-31', pause=0.01) # 处理缺失值 df = df.fillna(0) print(df) dfLen = len(df) uuidList = [] # 添加uuid for l in range(0, dfLen): uuidList.append(uuid.uuid1()) df['uuid'] = uuidList for k in range(0, dfLen): df2 = df[k:k+1] cursor.execute("insert into stock_sh_margin_details(uuid, op_date, code, name, rzye, rzmre, " "rzche, rqyl, rqmcl, rqchl) " "values(:uuid, to_date(:op_date, 'yyyy-MM-dd'), :code, :name, :rzye, :rzmre, " ":rzche, :rqyl, :rqmcl, :rqchl)", (str(list(df2['uuid'])[0]), str(list(df2['opDate'])[0]), str(list(df2['stockCode'])[0]), str(list(df2['securityAbbr'])[0]), round(float(df2['rzye']), 4), round(float(df2['rzmre']), 4), round(float(df2['rzche']), 4), round(float(df2['rqyl']), 4), round(float(df2['rqmcl']), 4), round(float(df2['rqchl']), 4)) ) cursor.execute("commit") except Exception: pass
def get_rzrq_sh_details(date_start, date_end): """ 获取沪市融资融券明细数据 Parameters -------- date_start 开始日期,e.g. '2010-03-31' date_end 截止日期,e.g. '2017-03-28' Return -------- DataFrame date 日期 code 股票代码 name 股票名称 rzye 融资余额(元) rzmre 融资买入额(元) rzche 融资偿还额(元) rqyl 融券余量 rqmcl 融券卖出量 rqchl 融券偿还量 rqylje 融券余量金额(元) rzrqye 融资融券余额(元) """ rzrq = ts.sh_margin_details(start=date_start, end=date_end) # Rename Columns columns_map = { 'opDate': 'date', 'stockCode': 'code', 'securityAbbr': 'name' } rzrq.rename(columns=columns_map, inplace=True) # Add Missing Columns rzrq['rqylje'] = np.nan rzrq['rzrqye'] = np.nan return rzrq
def sh_margin_details(request): try: date = request.POST.get('date', '') symbol = request.POST.get('symbol', '') start = request.POST.get('start', '') end = request.POST.get('end', '') data = ts.sh_margin_details(start, end, symbol) res = { 'columns': [ '信用交易日期', '标的证券代码', '标的证券简称', '本日融资余额(元)', '本日融资买入额(元)', '本日融资偿还额(元)', '本日融券余量', '本日融券卖出量', '本日融券偿还量', ], 'data': json.loads(json.dumps(data.values, cls=DateEncoder)) } except (BaseException): return HttpResponse(BaseException) else: return HttpResponse(json.dumps(res), content_type="application/json")
def setShMarginDetails(self,endTime =None,number =1, isSave = False,tableName = REFERENCE_SH_MARGINS_DETAILS): [startTime,endTime] = getStartTime(endTime = endTime, number=number) try: df = ts.sh_margin_details(start = startTime,end = endTime) if isSave is True: df.to_sql(tableName,self.engine_sql, if_exists='append') except IOError,e: print e
def sh_margin_details(start, end, **kwargs): if end < _rzrq_start: return None args = { "start": start.strftime("%Y-%m-%d"), "end": end.strftime("%Y-%m-%d") } return ts.sh_margin_details(**args)
def margin_sh_dtl(engine, sdate, edate): tbl = "invest_margin_sh_dtl" tsl.log(tbl + " start...") try: df = ts.sh_margin_details(start=sdate, end=edate) df = df.set_index('opDate', drop='true') df.to_sql(tbl, engine, if_exists='append') print tsl.log(tbl + " done") except BaseException, e: print print e tsl.log(tbl + " error")
def get_margin_details(start, end): logging.info('geting sh_margin data') sh_margin = ts.sh_margin_details(start=start, end=end) logging.info('sh_margin data getted') logging.info(end + ' length is ' + str(len(sh_margin[sh_margin['opDate']==end]))) period_range = pd.period_range(start=start, end=end, freq='D') sz_margin_list = [] for d in period_range: logging.info('geting ' + str(d) + ' data') sz_margin_detail = ts.sz_margin_details(str(d)) sz_margin_detail['opDate'] = str(d) sz_margin_list.append(sz_margin_detail) sz_margin = pd.concat(sz_margin_list) return pd.concat([sh_margin, sz_margin])
def get_sh_margin_details(date='', symbol='', start=''): """ 投资参考 系列 融资融券(沪市):沪市融资融券明细数据 """ df = ts.sh_margin_details(date, symbol, start) print(df) if df is not None: res = df.to_sql(invest_stock_ref_sh_margin_details, engine, if_exists='replace') msg = 'ok' if res is None else res print('获取沪市融资融券明细数据 {0}: 开始时间:{1} 结束时间:{2} 股票代码: {3}'. format(msg, start, date, symbol) + '\n') else: print('获取沪市融资融券明细数据 {0}: 开始时间:{1} 结束时间:{2} 股票代码: {3}'. format('None', start, date, symbol) + '\n')
def getByCode(self, mongo, func): if (func == 'HS300'): cursor = mongo.stockcodes.HS300.find() elif (func == 'IT'): cursor = mongo.stockcodes.IT.find() else: cursor = {} list = [] for item in cursor: code = item['stockcode'] df = ts.sh_margin_details(self.start, self.end, code) tmpJson = json.loads(df.to_json(orient='records')) for i in range(len(tmpJson)): tmpJson[i][u'code'] = int(code) coll = mongo.reference[func] coll.insert(tmpJson)
def load_data_stock(stock_code): ''' :param stock_code:传递股票代码,将其装载进入mysql :return: ''' start_date = get_date_add_days(get_max_date_sh_margins_detail(stock_code), 1) #获取股票最大日期 rs = ts.sh_margin_details(start=start_date, end=end_date, symbol=stock_code) #获取数据 pd.DataFrame.to_sql(rs, table_name, con=conn, flavor='mysql', if_exists='append', index=False)
def MarginDetails(tradeDate): selectedCol = ['stockCode','opDate','rzye','rzmre','rqyl','rqmcl']; df = ts.sh_margin_details(start=tradeDate,end=tradeDate); if df.shape[0]>0: df = df[selectedCol]; pass; dfSz = ts.sz_margin_details(date=tradeDate); if dfSz.shape[0]>0: df = df.append(dfSz[selectedCol]); pass; if df.shape[0]==0: return df; df.rename(columns = {'opDate':'tradeDate'}, inplace=True); df['secID'] = df['stockCode'].apply(lambda x: gTicker2SecID[x] if x in gTicker2SecID else None); df = df[df['secID'].map(lambda x:x is not None)]; df.drop('stockCode',axis=1,inplace=True); #df.set_index(['secID','tradeDate'],inplace=True); return df;
def MarginDetails(tradeDate): selectedCol = ['stockCode', 'opDate', 'rzye', 'rzmre', 'rqyl', 'rqmcl'] df = ts.sh_margin_details(start=tradeDate, end=tradeDate) if df.shape[0] > 0: df = df[selectedCol] pass dfSz = ts.sz_margin_details(date=tradeDate) if dfSz.shape[0] > 0: df = df.append(dfSz[selectedCol]) pass if df.shape[0] == 0: return df df.rename(columns={'opDate': 'tradeDate'}, inplace=True) df['secID'] = df['stockCode'].apply(lambda x: gTicker2SecID[x] if x in gTicker2SecID else None) df = df[df['secID'].map(lambda x: x is not None)] df.drop('stockCode', axis=1, inplace=True) #df.set_index(['secID','tradeDate'],inplace=True); return df
def shmargindetails((code,start_date,end_date)): DTS = ts.sh_margin_details(start=start_date , end=end_date , symbol= code) return DTS
def Getshmargins(self): datateeeeee = ts.sh_margin_details() self.SaveCSV(datateeeeee, 'shmargindetails.csv')
二级:基金持股、融资融券 其它:新股上市 ''' #业绩预告(2017年第4季度) Forecast_data = ts.forecast_data(2017, 4) #分配预案(最近公布60条数据) Profit_data = ts.profit_data(top=60) #限售解禁(2017-12解禁股票) Xsg_data = ts.xsg_data(year=2017, month=12) #基金持股(2017年第4季度) Fund_holdings = ts.fund_holdings(2017, 3) #融资融券 Sh_margins = ts.sh_margins(start='2017-12-01', end='2017-12-15') #总的 Sh_margin_details = ts.sh_margin_details(start='2017-12-01', end='2017-12-15', symbol='601989') #指定股票 Sz_margins = ts.sz_margins(start='2017-12-01', end='2017-12-14') #总 Sz_margin_details = ts.sz_margin_details('2017-12-14') #个股列表 #新股上市 New_stocks = ts.new_stocks() ''' 数据储存:csv,mysql ''' #csv import os filename = 'D:/VNPY/bigfile.csv' for code in ['000875', '600848', '000981']: df = ts.get_hist_data(code) if os.path.exists(filename):
import sys sys.path.append('/home/renlei/work/stock/tushare' ) import tushare as ts # This program accept 3 parameters: # python3 index_sh.py <start_date> <end_date> <data_file> start = sys.argv[1] end = sys.argv[2] data_file = sys.argv[3] results = ts.sh_margin_details(start=start, end=end ) results.to_json(data_file, orient='records' )
def dealMarginData(self, startDate, endDate): dbtable_sh = self.magin_sh dbtable_sz = self.magin_sz engine = self.engine #生成目录字典 allTimedf = self.getAllTrdingDate(startDate, endDate) if len(allTimedf) > 0: allTimelist = list(allTimedf) #获取每天融资融券数据 for atl in allTimelist: #上海融资融券数据 marginSh_df = pd.DataFrame() #深圳融资融券数据 marginSz_df = pd.DataFrame() #深圳融资融券数据 marginTmp_df = pd.DataFrame() #获取沪市融资融券汇总数据 allsh_df = ts.sh_margins(start=atl, end=atl) marginTmp_df['mt_rzye'] = allsh_df['rzye'] marginTmp_df['mt_rzmre'] = allsh_df['rzmre'] marginTmp_df['mt_rzche'] = 0 marginTmp_df['mt_rqyl'] = allsh_df['rqyl'] marginTmp_df['mt_rqylje'] = allsh_df['rqylje'] marginTmp_df['mt_rqmcl'] = allsh_df['rqmcl'] marginTmp_df['mt_rqchl'] = 0 marginTmp_df['mt_rzrqjyzl'] = allsh_df['rzrqjyzl'] marginTmp_df['mt_code'] = '000002' marginTmp_df['mt_name'] = u'上海A股' marginTmp_df['mt_date'] = atl marginSh_df = marginSh_df.append(marginTmp_df) #获取沪市融资融券个股数据 allsh_df = ts.sh_margin_details(start=atl, end=atl) marginTmp_df = pd.DataFrame() marginTmp_df['mt_code'] = allsh_df['stockCode'] marginTmp_df['mt_name'] = allsh_df['securityAbbr'] marginTmp_df['mt_date'] = allsh_df['opDate'] marginTmp_df['mt_rzye'] = allsh_df['rzye'] marginTmp_df['mt_rzmre'] = allsh_df['rzmre'] marginTmp_df['mt_rzche'] = allsh_df['rzche'] marginTmp_df['mt_rqyl'] = allsh_df['rqyl'] marginTmp_df['mt_rqylje'] = 0 marginTmp_df['mt_rqmcl'] = allsh_df['rqmcl'] marginTmp_df['mt_rqchl'] = allsh_df['rqchl'] marginTmp_df['mt_rzrqjyzl'] = 0 marginSh_df = marginSh_df.append(marginTmp_df) marginSh_series = marginSh_df['mt_date'].astype('str') marginSh_index = marginSh_series.values marginSh_df = marginSh_df.set_index(marginSh_index) #获取深市融资融券汇总数据 allsz_df = ts.sz_margins(start=atl, end=atl) marginTmp_df = pd.DataFrame() marginTmp_df['mt_rzmre'] = allsz_df['rzmre'] marginTmp_df['mt_rzye'] = allsz_df['rzye'] marginTmp_df['mt_rqmcl'] = allsz_df['rqmcl'] marginTmp_df['mt_rqyl'] = allsz_df['rqyl'] marginTmp_df['mt_rqye'] = allsz_df['rqye'] marginTmp_df['mt_rzrqye'] = allsz_df['rzrqye'] marginTmp_df['mt_code'] = '399107' marginTmp_df['mt_name'] = u'深圳A股' marginTmp_df['mt_date'] = atl marginSz_df = marginSz_df.append(marginTmp_df) #获取深市融资融券个股数据 allsz_df = ts.sz_margin_details(atl) #清空tmp表 marginTmp_df = pd.DataFrame() marginTmp_df['mt_code'] = allsz_df['stockCode'] marginTmp_df['mt_name'] = allsz_df['securityAbbr'] marginTmp_df['mt_date'] = allsz_df['opDate'] marginTmp_df['mt_rzmre'] = allsz_df['rzmre'] marginTmp_df['mt_rzye'] = allsz_df['rzye'] marginTmp_df['mt_rqmcl'] = allsz_df['rqmcl'] marginTmp_df['mt_rqyl'] = allsz_df['rqyl'] marginTmp_df['mt_rqye'] = allsz_df['rqye'] marginTmp_df['mt_rzrqye'] = allsz_df['rzrqye'] marginSz_df = marginSz_df.append(marginTmp_df) marginSz_series = marginSz_df['mt_date'].astype('str') marginSz_index = marginSz_series.values marginSz_df = marginSz_df.set_index(marginSz_index) marginSh_df.to_sql(dbtable_sh, con=engine, if_exists='append') marginSz_df.to_sql(dbtable_sz, con=engine, if_exists='append') print atl m = 1
#==============================================================================指数成分============================================================================== '''获取指数成分''' 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') '''深交所融资融券总额''' #==============================================================================新闻============================================================================== ts.get_latest_news() #默认获取最近80条新闻数据,只提供新闻类型、链接和标题 ts.get_latest_news(top=5,show_content=True) #显示最新5条新闻,并打印出新闻内容 '''即时新闻''' ts.get_notices('600028') '''个股新闻''' ts.guba_sina(True) '''新浪股吧''' #==============================================================================海外数据源============================================================================== import pandas.io.data as web DAX = web.DataReader(name='^GDAXI',data_source='yahoo',start='2000-1-1')#读取德国DAX指数
SZRZRQ = ts.sz_margin_details(date=nDay) if len(SZRZRQ) > 2: print(SZRZRQ[-5:]) SZRZRQ.to_csv(ndayfilename, sep=',', encoding='utf-8') print(ndayfilename) else: print('Len <2, no margin data for ' + nDay) else: print(ndayfilename + ' available,no need to download!!') except: pass try: ndayfilename = SZfolder + 'sh' + nDay.replace('-', '') + '.txt' if not (os.path.exists(ndayfilename)): SHRZRQ = ts.sh_margin_details(start=nDay, end=nDay) if len(SZRZRQ) > 2: print(SHRZRQ[-5:]) SHRZRQ.to_csv(ndayfilename, sep=',', encoding='utf-8') print(ndayfilename) else: print('Len <2, no margin data for ' + nDay) else: print(ndayfilename + ' available,no need to download!!') except: pass filesnlist = os.listdir(SZfolder) filesnlist.sort() path = SZfolder
#coding=utf-8 ''' Created on 2015年6月4日 @author: Administrator ''' import tushare as ts # 分配预案 #每到季报、年报公布的时段,就经常会有上市公司利润分配预案发布,而一些高送转高分红的股票往往会成为市场炒作的热点。 df = ts.profit_data(top=60) df.sort('shares',ascending=False) df[df.shares>=10]#选择每10股送转在10以上的 # 业绩预告 ts.forecast_data(2014,2)#获取2014年中报的业绩预告数据 # 限售股解禁 # 以月的形式返回限售股解禁情况,通过了解解禁股本的大小,判断股票上行的压力。可通过设定年份和月份参数获取不同时段的数据。 ts.xsg_data() # 新股数据 ts.new_stocks() # 融资融券 ts.sh_margins(start='2015-01-01', end='2015-04-19') ts.sz_margins(start='2015-01-01', end='2015-04-19') #如果不设symbol参数或者开始和结束日期时段设置过长,数据获取可能会比较慢,建议分段分步获取,比如一年为一个周期 ts.sh_margin_details(start='2015-01-01', end='2015-04-19', symbol='601989') ts.sz_margin_details('2015-04-20')
def get_financing_securities_detail_sh(date=None, start_date=None, end_date=None, retry_count=RETRY_COUNT, pause=PAUSE): # 1. 参数全为空; 2. 只有date 3. 只有start_date和end_date # logger.info('Begin get financing securities details sh data. Date is %s,' # ' start_date is %s, end_date is %s' % (date, start_date, end_date)) if date is not None: logger.info( 'Begin get financing securities details sh data. Date is %s' % date) try: data_df = ts.sh_margin_details(date=date, retry_count=retry_count, pause=pause) except Exception: logger.exception( 'Begin get financing securities details sh data. Date is %s' % date) return None elif start_date is not None and end_date is not None: logger.info('Begin get financing securities details sh data.' ' Start_date is %s, end_date is %s.' % (start_date, end_date)) try: data_df = ts.sh_margin_details(start=start_date, end=end_date, retry_count=retry_count, pause=pause) except Exception: logger.exception( 'Error get financing securities details sh data.' ' Start_date is %s, end_date is %s.' % (start_date, end_date)) return None elif not date and not start_date and not end_date: logger.info('Begin get financing securities details sh data.') try: data_df = ts.sh_margin_details(date='', start='', end='', retry_count=retry_count, pause=pause) except Exception: logger.exception( 'Begin get financing securities details sh data.') return None else: raise TypeError('1. 参数全为空; 2. 只有date 3. 只有start_date和end_date') data_dicts = [] if data_df is None or data_df.empty: logger.warn( 'Empty get financing securities details sh data. date is: %s, ' 'start_date is %s, end_date is: %s' % (date, start_date, end_date)) else: data_dicts = [{ 'op_date': row[0], 'stock_code': row[1], 'security_abbr': row[2], 'rzye': row[3], 'rzmre': row[4], 'rzche': row[5], 'rqyl': row[6], 'rqmcl': row[7], 'rqchl': row[8] } for row in data_df.values] logger.info( 'Success get financing securities details sh data. date is %s,' 'start_date is %s, end_date is: %s' % (date, start_date, end_date)) return data_dicts
def dump_margin_data(start, end, symbol): df = ts.sh_margin_details(start=start, end=end, symbol=symbol) folder = os.path.dirname(__file__) filepath = os.path.join(folder, "margindata") df.to_csv(filepath, encoding="utf-8")
import tushare as tf ret = tf.sh_margin_details(start='2015-01-01', end='2018-01-01', symbol='600276') ret.to_csv('600276', encoding='utf8')
import talib import numpy as np import pandas as pd import tushare as ts # 沪市融资融券汇总数据 # opDate:信用交易日期 rzye:本日融资余额(元) rzmre: 本日融资买入额(元) rqyl: 本日融券余量 # rqylje: 本日融券余量金额(元) rqmcl: 本日融券卖出量 rzrqjyzl:本日融资融券余额(元) open('rzrq_sz1.csv', 'w') df = ts.sh_margins(start='2015-01-01', end='2015-06-01') df.to_csv('rzrq_sz1.csv') open('rzrq_sz2.csv', 'w') df = ts.sh_margin_details(start='2015-06-01', end='2015-12-31') df.to_csv('rzrq_sz2.csv') # 深市融资融券汇总数据 open('rzrq_ss1.csv', 'w') df = ts.sz_margins(start='2015-01-01', end='2015-06-01') df.to_csv('rzrq_ss1.csv') open('rzrq_ss2.csv', 'w') df = ts.sz_margins(start='2015-06-01', end='2015-12-31') df.to_csv('rzrq_ss2.csv') # 沪市融资融券明细数据 # opDate:信用交易日期,stockCode:标的证券代码,securityAbbr:标的证券简称,rzye:本日融资余额(元),rzmre: 本日融资买入额(元) # rzche:本日融资偿还额(元),rqyl: 本日融券余量,rqmcl: 本日融券卖出量,rqchl: 本日融券偿还量 # open('rzrq.csv', 'w') # df = ts.sh_margin_details(start='2015-01-01', end='2015-06-31', symbol='601989') # df.to_csv('rzrq.csv')
user='******', passwd='admin', db='stock', charset='utf8') cursor = db.cursor() sql_date = "select prevTradeDate from stock_tradecalall a where a.calendarDate >= '%s' and a.exchangeCD = 'XSHG' and isOpen = 1 order by a.prevTradeDate asc" % ( '2016-01-01') cursor.execute(sql_date) done_set_date = cursor.fetchall() date_seq = [x[0] for x in done_set_date] for date in date_seq: try: temp_day = ts.sh_margin_details(start=date, end=date) temp_daymid = np.array(temp_day) print(date + '---part 1') for i in range(len(temp_daymid)): resu0 = temp_daymid[i] try: sql_insert = "insert into stock_rzrq_detail(state_dt,bd_code,rzye,rqyl)values('%s','%s','%.2f','%.2f')" % ( str(date), str(resu0[1]), float( resu0[3]), float(resu0[6])) cursor.execute(sql_insert) db.commit() except Exception as exp: print(exp) continue temp = ts.sz_margin_details(date)
# 600547:山东黄金 # 600362:江西铜业 # 600312:平高电气 # 600499:科达洁能 # 603993:洛阳钼业 db = "InvestInfos" coll = "sh_margins" ty = "600547" market = 'SH' conn = pymongo.MongoClient('127.0.0.1', port=27017) if ty == 'all': df = ts.sh_margins(start='2017-01-01', end='2017-12-22') else: df = ts.sh_margin_details(start='2016-01-01', end='2017-01-01', symbol=ty) # index data columns(14 columns) dicIndex = json.loads(df.to_json(orient='split')) for i, ind in enumerate(dicIndex['index']): jsonstr = { '_id': dicIndex['data'][i][0] + "-" + ty, 'type': ty, 'market': market, dicIndex['columns'][0]: dicIndex['data'][i][0], dicIndex['columns'][1]: dicIndex['data'][i][1], dicIndex['columns'][2]: dicIndex['data'][i][2], dicIndex['columns'][3]: dicIndex['data'][i][3], dicIndex['columns'][4]: dicIndex['data'][i][4], dicIndex['columns'][5]: dicIndex['data'][i][5], dicIndex['columns'][6]: dicIndex['data'][i][6], dicIndex['columns'][7]: dicIndex['data'][i][7],
#中通客车实时报价 # ztkcrealtime = ts.get_realtime_quotes('000957') # print(ztkcrealtime[['code','name','price','bid','ask','volume','amount','time']]) #中通客车大单交易,大单为500手 # ztkcdd=ts.get_sina_dd('000957',date='2017-04-28',vol=100) # ztkcdd.to_excel("./中通客车20160805大单交易.xlsx") #新股 # newts = ts.new_stocks() # print(newts) #沪市融资融券数据 zgpa_margin = ts.sh_margin_details(start='2017-01-01', end='2017-04-28', symbol='601318') # print zgpa_margin.tail(10) zgpa_history = ts.get_hist_data('601318', start='2017-01-01', end='2017-04-28') # print zgpa_history.tail(10) result = zgpa_margin.join(zgpa_history, on='opDate') result.plot(legend=True, figsize=(10, 4)) plt.show() result.to_excel('./沪市融资融券数据.xlsx') # print(ztkc_margin) #信息地雷 # guba = ts.guba_sina(True) # print(guba) # print(guba.ix[1]['content'])
def getShMarginsDetails(self): file_name = self.startDate+'_'+self.endDate+'_sh_margins_details.csv' path = self.index + self.index_sh_margins_details + file_name data = ts.sh_margin_details(start = self.startDate, end = self.endDate, symbol=self.code) data.to_csv(path, encoding='utf-8') print(file_name)