示例#1
0
def query_rt_wbottom():
    print('in query_rt_wbottom')
    myconf = conf.CConf(str_conf_path)
    myconf.ReadConf()

    db = dbmgr.CDBMgr(myconf.db_host, myconf.db_username, myconf.db_pwd, 'kdata')
    db.connect_db()

    today = GetToday()

    list_ret = db.query_today_rt_strategy(today)

    db.disconnect_db()

    if list_ret is None:
        list_ret=('代码','探测时间')

    ################## 分页 ######################
    req_page = request.args.get("page", 1)
    print('query_chipconcent ... req_page=', req_page)
    pager_obj = Pagination(req_page, len(list_ret), request.path, request.args, per_page_count=20)
    print(request.args)
    #根据分页的参数,截取部分数据显示
    args_ret = list_ret[pager_obj.start:pager_obj.end]
    str_html = pager_obj.page_html()
    print(str_html)
    return render_template('query_realtime_wbottom.html', rt_value=args_ret, html=str_html)
    def __init__(self, str_conf_path, log):
        self.log = log
        #self.name = self.__class__.__name__
        #获取排行榜中多少条热点概念
        myconf = conf.CConf(str_conf_path)
        myconf.ReadConf()
        #redis key值
        self.key_start_day = 'key_w_start_day'
        self.key_end_day = 'key_w_end_day'
        self.key_stock_basic = 'key_stock_basic'
        self.key_today = 'key_today'
        self.cur_open = 0
        self.cur_close = 0
        self.cur_high = 0
        self.cur_low = 0
        self.db = None
        self.re = None

        try:
            self.db = dbmgr.CDBMgr(myconf.db_host, myconf.db_username, myconf.db_pwd, 'kdata')
            self.re = redis.Redis(host='127.0.0.1', port=6379, db=0)
        except Exception as e:
            print(e)
            log_h = os.path.basename(__file__) + ":" + __name__ + ":" + str(sys._getframe().f_lineno) + ":  "
            self.log.error(log_h+str(e))

        self.wbottom = wbottom.CWBotton(self.db, self.log)
示例#3
0
def query_chipconcent():
    print('in query_chipconcent')
    myconf = conf.CConf(str_conf_path)
    myconf.ReadConf()
    db = dbmgr.CDBMgr(myconf.db_host, myconf.db_username, myconf.db_pwd, 'kdata')
    db.connect_db()

    #当天日期
    now_time = datetime.datetime.now()
    today = now_time.strftime('%Y-%m-%d')
    #today = '2019-08-16'

    list_ret = db.query_chipconcent(today)
    db.disconnect_db()
    if list_ret is None:
        list_ret=('代码','名称','间隔','time','day','num')

    ################## 分页 ######################
    req_page = request.args.get("page", 1)
    print('query_chipconcent ... req_page=', req_page)
    pager_obj = Pagination(req_page, len(list_ret), request.path, request.args, per_page_count=20)
    print(request.args)
    #根据分页的参数,截取部分数据显示
    args_ret = list_ret[pager_obj.start:pager_obj.end]
    str_html = pager_obj.page_html()
    print(str_html)
    return render_template('query_chipconcent.html', rt_value=args_ret, html=str_html)
    def __init__(self, str_conf_path, log):
        self.log = log
        # 只处理数据,否则更新实时数据到数据库
        self.just_process = False
        #更新一部分最新的k线数据;否则全部更新
        self.b_updata_part = False

        # 测试获取多少只股票
        self.stockCnt = 3651
        # 从第几支股票开始
        self.stockStart = 0
        self.conf = conf.CConf(str_conf_path)
        self.work_path = os.getcwd()
        # 每次取200只,休眠x秒
        #self.waitTime = 65

        try:
            self.db = dbmgr.CDBMgr(self.conf.db_host, self.conf.db_username,
                                   self.conf.db_pwd, 'kdata')
            self.re = redis.Redis(host='127.0.0.1', port=6379, db=0)
        except Exception as e:
            print(e)
            log_h = os.path.basename(__file__) + ":" + __name__ + ":" + str(
                sys._getframe().f_lineno) + ":  "
            self.log.error(log_h + str(e))

        self.init()
示例#5
0
 def __init__(self, str_conf_path, log):
     self.log = log
     #self.name = self.__class__.__name__
     myconf = conf.CConf(str_conf_path)
     myconf.ReadConf()
     self.db = dbmgr.CDBMgr(myconf.db_host, myconf.db_username,
                            myconf.db_pwd, 'kdata')
     print('CRT_Hotspot ... ', self.db)
    def __init__(self):
        self.log_name = '../../log/backtest_log'
        self.use_mul_process = 0
        # 进程池里进程个数
        self.process_cnt = 3
        self.db = dbmgr.CDBMgr('localhost', 'root', '123', 'kdata')

        #以时间命名日志文件
        cur_time = datetime.datetime.now()
        log_filename = datetime.datetime.strftime(cur_time, '%Y%m%d_%H%M%S')
        my_log_filename = self.log_name + log_filename + ".txt"
        self.log = tools.CLogger('backtest', my_log_filename, 1)
示例#7
0
 def __init__(self, str_conf_path, log):
     self.log = log
     self.db = None
     self.myconf = conf.CConf(str_conf_path)
     self.myconf.ReadConf()
     try:
         self.db = dbmgr.CDBMgr(self.myconf.db_host,
                                self.myconf.db_username, self.myconf.db_pwd,
                                'kdata')
         self.db.connect_db()
     except Exception as e:
         print(e)
         log_h = os.path.basename(__file__) + ":" + __name__ + ":" + str(
             sys._getframe().f_lineno) + ":  "
         self.log.error(log_h + str(e))
示例#8
0
    def __init__(self, str_conf_path, log):
        self.log = log
        #获取排行榜中多少条热点概念
        self.top_ChipC_num = 20
        self.conf = conf.CConf(str_conf_path)
        self.conf.ReadConf()
        self.db = None
        self.re = None

        try:
            self.db = dbmgr.CDBMgr(self.conf.db_host, self.conf.db_username,
                                   self.conf.db_pwd, 'kdata')
            self.re = redis.Redis(host='127.0.0.1', port=6379, db=0)
        except Exception as e:
            print(e)
            log_h = os.path.basename(__file__) + ":" + __name__ + ":" + str(
                sys._getframe().f_lineno) + ":  "
            self.log.error(log_h + e)
示例#9
0
def query_bt_w():
    print('in query_bt_w')
    myconf = conf.CConf(str_conf_path)
    myconf.ReadConf()
    db = dbmgr.CDBMgr(myconf.db_host, myconf.db_username, myconf.db_pwd, 'kdata')
    db.connect_db()

    list_ret = db.query_rangebacktest_wbottom('20190101', GetToday())
    db.disconnect_db()
    ################## 分页 ######################
    req_page = request.args.get("page", 1)
    print('query_bt_w ... req_page=', req_page)
    pager_obj = Pagination(req_page, len(list_ret), request.path, request.args, per_page_count=20)
    print(request.args)
    #根据分页的参数,截取部分数据显示
    args_ret = list_ret[pager_obj.start:pager_obj.end]
    str_html = pager_obj.page_html()
    print(str_html)
    return render_template('query_backtest_wbotton.html', wb_value=args_ret, html=str_html)
    def __init__(self, str_conf_path, log):
        #cur_time = datetime.datetime.now()
        #log_filename = datetime.datetime.strftime(cur_time, '%Y%m%d_%H%M%S')
        #self.log_name = 'log/limitconcept'+log_filename
        self.conf = conf.CConf(str_conf_path)
        self.log = log
        self.db = None
        self.re = None

        try:
            self.db = dbmgr.CDBMgr(self.conf.db_host, self.conf.db_username,
                                   self.conf.db_pwd, 'kdata')
            self.re = redis.Redis(host='127.0.0.1', port=6379, db=0)
        except Exception as e:
            print(e)
            log_h = os.path.basename(__file__) + ":" + __name__ + ":" + str(
                sys._getframe().f_lineno) + ":  "
            self.log.error(log_h + e)

        self.__Init()
示例#11
0
def query_rt_hottrade():
    print('in query_rt_hottrade')
    myconf = conf.CConf(str_conf_path)
    myconf.ReadConf()
    db = dbmgr.CDBMgr(myconf.db_host, myconf.db_username, myconf.db_pwd, 'kdata')
    db.connect_db()

    list_ret = db.query_allhottrade()
    db.disconnect_db()
    if list_ret is None:
        list_ret=('行业','0','000')

    ################## 分页 ######################
    req_page = request.args.get("page", 1)
    print('query_rt_hottrade ... req_page=', req_page)
    pager_obj = Pagination(req_page, len(list_ret), request.path, request.args, per_page_count=20)
    print(request.args)
    #根据分页的参数,截取部分数据显示
    args_ret = list_ret[pager_obj.start:pager_obj.end]
    str_html = pager_obj.page_html()
    print(str_html)
    return render_template('query_realtime_hottrade.html', rt_value=args_ret, html=str_html)
    def __init__(self, str_conf_path, log):
        #self.name = self.__class__.__name__
        #获取排行榜中多少条热点概念
        self.top_consept_num = 20
        self.top_trade_num = 20
        myconf = conf.CConf(str_conf_path)
        myconf.ReadConf()
        self.log = log
        self.db = None
        self.re = None
        self.pBaseInfo = baseinfo.CBaseinfo()

        try:
            self.db = dbmgr.CDBMgr(myconf.db_host, myconf.db_username,
                                   myconf.db_pwd, 'kdata')
            self.re = redis.Redis(host='127.0.0.1', port=6379, db=0)
            self.pBaseInfo.read_excel()
        except Exception as e:
            print(e)
            log_h = os.path.basename(__file__) + ":" + __name__ + ":" + str(
                sys._getframe().f_lineno) + ":  "
            self.log.error(log_h + str(e))
示例#13
0
def GetDB():
    myconf = conf.CConf(str_conf_path)
    myconf.ReadConf()
    db = dbmgr.CDBMgr(myconf.db_host, myconf.db_username, myconf.db_pwd, 'kdata')
    db.connect_db()
    return db
示例#14
0
def query_rt_hotconspt_one(conspt):
    print('query_rt_hotconspt_one...', conspt)
    #数据
    myconf = conf.CConf(str_conf_path)
    myconf.ReadConf()
    db = dbmgr.CDBMgr(myconf.db_host, myconf.db_username, myconf.db_pwd, 'kdata')
    db.connect_db()

    trade_day = db.query_last_tradeday(10)
    #trade_day = pd.DataFrame(list(result), columns=['trade_day'])

    # 加载股票概念
    pBaseInfo = baseinfo.CBaseinfo()
    pBaseInfo.read_excel()

    #conspt_df = pd.DataFrame(columns=['date', 'count'])
    list_date = list()
    list_count = list()
    for day in trade_day:
        codes = db.query_limit(day[0])
        print('limit num=', len(codes))

        count = 0
        #遍历所有code
        for code in codes:
            #去除.SZ .SH的后缀
            str_code = code[0][0:6]
            my_stock_info = pBaseInfo.get_stock_info(str_code)
            if my_stock_info is None:
                print(code, ' is not exist!aps_hotspot')
                continue

            consepts = my_stock_info.get_conseption()
            #查询的概念是否在list中
            if conspt in consepts:
                count = count + 1

        list_date.append(day[0])
        list_count.append(count)
        print(day[0])

    '''
    list_date = ['20190813', '20190814', '20190815', '20190816', '20190819']
    list_count = [8, 8, 6, 11, 19]

    d = {'date': list_date,
         'count': list_count}
    conspt_df = pd.DataFrame(d)
    print(conspt_df)'''

    db.disconnect_db()
    #############################################绘图
    #中文乱码问题
    #myfont = FontProperties(fname=r'/smb/share/hdf5test/venv/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/simhei.ttf')
    #mpl.rcParams['font.sans-serif'] = ['SimHei']
    mpl.rcParams['font.sans-serif'] = ['simhei']
    mpl.rcParams['font.family'] = 'sans-serif'
    mpl.rcParams['axes.unicode_minus'] = False

    # 生成figure对象,相当于准备一个画板
    fig = plt.figure(figsize=(8, 3))

    # 生成axis对象,相当于在画板上准备一张白纸,111,11表示只有一个表格,第3个1,表示在第1个表格上画图
    ax = fig.add_subplot(111)
    plt.title(conspt)
    plt.xlabel(u'交易日')
    plt.ylabel(u'涨停数量')

    #将字符串的日期,转换成日期对象
    xs = [datetime.datetime.strptime(d, '%Y%m%d').date() for d in list_date]

    #日期对象作为参数设置到横坐标,并且使用list_date中的字符串日志作为对象的标签(别名)
    #x坐标的刻度值
    ar_xticks = np.arange(1, len(list_date)+1, step=1)
    plt.xticks(ar_xticks, list_date, rotation=45, fontsize=10)
    plt.yticks(np.arange(0, 30, step=2), fontsize=10)
    ax.plot(ar_xticks, list_count, color='r')

    #下方图片显示不完整的问题
    plt.tight_layout()

    #在点阵上方标明数值
    for x, y in zip(ar_xticks, list_count):
        plt.text(x, y + 0.3, str(y), ha='center', va='bottom', fontsize=10)

    #fmt = mdates.DateFormatter('%Y%m%D')
    #xs = [datetime.datetime.strptime(d, '%Y%m%d').date() for d in conspt_df['date']]
    #plt.plot(xs, conspt_df['count'], 'o-')

    #plt.savefig('ttt.png')
    # figure 保存为二进制文件
    buffer = BytesIO()
    plt.savefig(buffer)
    plot_data = buffer.getvalue()
    # 将matplotlib图片转换为HTML
    imb = base64.b64encode(plot_data)  # 对plot_data进行编码
    ims = imb.decode()
    imd = "data:image/png;base64," + ims
    return render_template('query_realtime_hotconspt_one.html', img=imd)
示例#15
0
# coding=utf-8
import src.realtime.rt_hotspot as rt_hotspot
import src.datamgr.dbmgr as dbmgr
import datetime

def GetToday():
    now_time = datetime.datetime.now()
    day = now_time.strftime('%Y%m%d')
    print('end time is ', day)
    return day

if __name__ == '__main__':
    hotspot = rt_hotspot.CRT_Hotspot()
    hotspot.start()

    db = dbmgr.CDBMgr('localhost', 'root', '123', 'kdata')
    list_ret = db.query_allhotconsept()
    db.disconnect_db()