def get_zt_list(self,startDate,endDate,page,limit,status): stocks = pd.DataFrame(columns=('代码', '名称', '日期', '备注', '状态')) zts = base.get_zt_list(startDate=startDate,endDate=endDate) industry = base.get_industry_list() # print(zts) for code in zts.index: item = { '代码': code, '名称': zts.name[code], '日期': zts.date[code], # '隐单': j['yin'], # '主单': j['zhu'], # '原因': zts.reason[code], '状态': zts.status[code], '备注': zts.remark[code], '行业': industry.industry[code], '概念': industry.concept[code] } stocks = stocks.append(item, ignore_index=True) if status == -1: stocks = stocks[stocks['状态'] < 0] if status == 1: stocks = stocks[stocks['状态'] >= 0] if status == 0: stocks = stocks[stocks['状态'] >= 0] # print(zt) total = len(stocks) str = stocks[(page - 1) * limit:page * limit].to_json(orient='split') res = json.loads(str) res['total'] = total return json.dumps(res) pass
def scrapy_yin_zt_tasks(self,startDate,endDate): stock_list = base.get_zt_list(startDate=startDate, endDate=endDate) code_list = stock_list.index.values self.total = len(code_list) pool = ThreadPool(10)#创建10个容量的线程池并发执行 pool.map(self.stock_yin_scrapy, code_list) pool.close() pool.join()
def scrapy_zt_hs_tasks(self, startDate, endDate): # df = pd.merge(df, base_list,on='日期',how='right') stock_list = base.get_zt_list(startDate=startDate, endDate=endDate) observe_list = observe.query() ob_code_list = observe_list['股票代码'].values zt_code_list = stock_list.index.values code_list = np.unique(np.append(ob_code_list, zt_code_list)) code_list = np.append(code_list, '100000') # print(stock_list) self.total = len(code_list) self.endDate = endDate pool = ThreadPool(10) #创建10个容量的线程池并发执行 pool.map(self.stock_lh_list_scrapy, code_list) pool.close() pool.join() pass
def clear_zt_list(self, startDate, endDate): collection = self.collection stocks = pd.DataFrame(columns=('代码', '名称', '日期', '备注', '状态')) zts = base.get_zt_list(startDate=startDate, endDate=endDate) industry = base.get_industry_list() # print(zts) for code in zts.index: item = { '代码': code, '名称': zts.name[code], '日期': zts.date[code], # '隐单': j['yin'], # '主单': j['zhu'], '原因': zts.reason[code], '状态': zts.status[code], '备注': zts.remark[code], '行业': industry.industry[code], '概念': industry.concept[code] } if 'ST' in zts.name[code]: item = { 'code': code, 'date': zts.date[code], 'status': -1, 'remark': 'ST' } try: collection.update( { 'code': item['code'], 'date': item['date'] }, {"$set": item}) except Exception as e: print(e) else: print("ST") pass if zts.date[code] == endDate: pass else: s = base.get_stock_base(code=code, startDate=zts.date[code], endDate=endDate) s = s.set_index(['日期']) # print(code) if len(s['成交额'].values) >= 2: # print(s['成交额']) pre = s['成交额'].values[-1] next = s['成交额'].values[-2] zf = s['涨幅'].values[-2] # print(pre, next, zf) if float(zf) < 9 and float(next) / float(pre) >= 1.6: print(code, '第二天放量') item = { 'code': code, 'date': zts.date[code], 'status': -1, 'remark': '放量' } try: collection.update( { 'code': item['code'], 'date': item['date'] }, {"$set": item}) except Exception as e: print(e) else: print("成功") pass stocks = stocks.append(item, ignore_index=True) pass
def query_yin_zt_list(self,startDate,endDate): file_name_zt = '../files/yin/' + startDate + '|' + endDate + '-zt.xlsx' if not os.path.exists(file_name_zt): self.stocks = pd.DataFrame(columns=('代码', '名称', '日期', '涨幅', '隐单', '主单','力度','流通股','概念','行业')) industry = base.get_industry_list() base_list = base.get_stock_base_list(endDate) query = { 'yin': { '$gte': 100, # '$lte': time_end }, # 'zhu': { # # '$gte': 0, # '$lte': -100 # }, 'zf': { '$gte': -6.0, '$lte': 6.0 }, 'date': endDate, # 'pCode':i, # 'code': code } res = self.collection.find(query) res_list = list(res) self.total = len(res_list) zt_list = base.get_zt_list(startDate=startDate, endDate=endDate).index for j in res_list: code = j['code'] date = j['date'] yin = float(j['yin']) zhu = float(j['zhu']) zj = float(j['zj']) try: item = { '代码': code, '名称': j['name'], '日期': endDate, '隐单': j['yin'], '主单': j['zhu'], '涨幅': j['zf'], '流通股': long(base_list['流通股数'][j['code']]), '力度': round((long(j['yin']) * 10000) / (long(base_list['流通股数'][j['code']])), 2), '行业': industry.industry[j['code']], '概念': industry.concept[j['code']] } except Exception as e: print("出错"+code) print(e) continue # for i, zf in enumerate(zfs): # # print(i) # item['第' + str(i + 2) + '天涨幅'] = zf # if zhu != 0 and yin / abs(zhu) < 0.3: # continue # if zhu > 0 and zhu > yin: # continue # if abs(zj) <= 100: # continue if code in zt_list: self.stocks = self.stocks.append(item, ignore_index=True) if round((long(j['yin']) * 10000) / (long(base_list['流通股数'][j['code']])), 2) <= -0.01: continue # else: # global stocks # stocks = stocks.append(item, ignore_index=True) # zfs = [] self.index += 1 print(str(self.index)+"/"+str(self.total)) pass file_name_zt = '../files/yin/' + startDate + '|' + endDate + '-zt.xlsx' writer_zt = pd.ExcelWriter(file_name_zt) self.stocks.to_excel(writer_zt, 'Sheet1') writer_zt.save() else: print("存在") self.stocks = pd.read_excel(file_name_zt,dtype={'代码':str}) # print(self.stocks) return self.stocks pass