Пример #1
0
Файл: Query.py Проект: lifetea/s
 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
Пример #2
0
Файл: Yin.py Проект: lifetea/s
 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()
Пример #3
0
    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
Пример #4
0
Файл: Zt.py Проект: lifetea/s
    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
Пример #5
0
Файл: Yin.py Проект: lifetea/s
    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