Пример #1
0

def get_ddsts_by_date(date_str):
    """
     取出某天的所有大单统计数据
    :param date_str:
    :return:
    """
    ddstss = session.query(DaDanSts).filter(DaDanSts.date == date_str).all()
    return ddstss


if __name__ == '__main__':
    argv = len(sys.argv)
    starttime = datetime.datetime.now()
    hour = starttime.hour
    delta = datetime.timedelta(days=2)
    today = datetime.date.today()
    end_date_str = today.strftime('%Y-%m-%d')

    if is_holiday(end_date_str) or hour < 10:
        end_date_str = get_pre_transact_date(today.strftime('%Y-%m-%d'))

    end_date = datetime.datetime.strptime(end_date_str, "%Y-%m-%d")
    ndays_before = end_date - delta
    start_date_str = ndays_before.strftime('%Y-%m-%d')
    logging.info("%s ~ %s", start_date_str, end_date_str)
    get_continually_in(start_date_str, end_date_str)
    endtime = datetime.datetime.now()
    logging.info((endtime - starttime).seconds)
Пример #2
0
                build_by_hist_data(hist_data, serie)

                stock_hist_data.append(hist_data)
        save_list(stock_hist_data)
        logging.info("%s %s %s~%s hist data save ok", code, name, start_date, end_date)


def get_start_date():
    max_date_indb = session.query(func.max(HistData.date)).first()
    max_date_indb = max_date_indb[0] if max_date_indb is not None else "2005-12-31"

    return max_date_indb if max_date_indb == datetime.date.today().strftime('%Y-%m-%d') \
        else(datetime.datetime.strptime(max_date_indb, '%Y-%m-%d') + datetime.timedelta(days=1)).strftime('%Y-%m-%d')


if __name__ == '__main__':
    start_date = get_start_date()
    delta = datetime.timedelta(days=0)
    current_hour = datetime.datetime.now().hour
    today = datetime.date.today()
    end_date = today.strftime('%Y-%m-%d')
    if current_hour < 15:
        end_date = get_pre_transact_date(end_date)

    argv = len(sys.argv)
    if argv > 2:
        start_date = sys.argv[1]
        end_date = sys.argv[2]
    logging.info("%s %s", start_date, end_date)
    dump_hist_data(start_date, end_date)
Пример #3
0
def get_top_dd_sts(date_str):
    top20 = session.query(DaDanSts).filter(DaDanSts.date == date_str).order_by(
        desc(DaDanSts.net)).limit(20).all()
    lhhtop30 = session.query(DaDanSts).filter(
        DaDanSts.date == date_str).order_by(desc(
            DaDanSts.lhh_net)).limit(30).all()
    fhhtop30 = session.query(DaDanSts).filter(
        DaDanSts.date == date_str).order_by(desc(
            DaDanSts.fhh_net)).limit(30).all()
    ratiotop20 = session.query(DaDanSts).filter(
        DaDanSts.date == date_str).order_by(desc(
            DaDanSts.ratio)).limit(20).all()
    lhhratiotop20 = session.query(DaDanSts).filter(
        DaDanSts.date == date_str).order_by(desc(
            DaDanSts.lhh_ratio)).limit(20).all()

    lhhtop30_codes = []
    fhhtop30_codes = []
    for lhhdata in lhhtop30:
        lhhtop30_codes.append(lhhdata.code)
    for fhhdata in fhhtop30:
        fhhtop30_codes.append(fhhdata.code)

    pre_tran_date = get_pre_transact_date(date_str)
    pre_two_tran_date = get_pre_transact_date(pre_tran_date)
    pre_three_tran_date = get_pre_transact_date(pre_two_tran_date)
    pre_four_tran_date = get_pre_transact_date(pre_three_tran_date)

    index = 0
    for data in top20:
        index += 1
        lhh_index = -1
        fhh_index = -1
        try:
            lhh_index = lhhtop30_codes.index(data.code)
        except ValueError as err:
            pass
        try:
            fhh_index = fhhtop30_codes.index(data.code)
        except ValueError as err:
            pass

        handle_one(data, date_str, index, fhh_index, lhh_index, pre_tran_date,
                   pre_two_tran_date, pre_three_tran_date, pre_four_tran_date)

    logging.info(
        "------------------------------------------------------------------")
    ratiolhhtop20_codes = []
    for lhhdata in lhhratiotop20:
        ratiolhhtop20_codes.append(lhhdata.code)
    index2 = 0
    for data in ratiotop20:
        index2 += 1
        fhh_index2 = -1
        lhh_index2 = -1
        try:
            lhh_index2 = ratiolhhtop20_codes.index(data.code)
            lhh_index2 = ratiolhhtop20_codes.index(data.code)
        except ValueError as err:
            pass

        handle_one(data, date_str, index2, fhh_index2, lhh_index2,
                   pre_tran_date, pre_two_tran_date, pre_three_tran_date,
                   pre_four_tran_date)

    i2 = 1
Пример #4
0

if __name__ == '__main__':
    starttime = datetime.datetime.now()
    hour = starttime.hour

    loop_time = 30
    delta = datetime.timedelta(days=loop_time)
    today = datetime.date.today()
    if hour <= 15:
        today -= datetime.timedelta(days=1)
    ndays_before = today - delta
    while ndays_before <= today:
        date_str = ndays_before.strftime('%Y-%m-%d')
        if holiday_util.is_holiday(date_str):
            date_str = holiday_util.get_pre_transact_date(date_str)
            ndays_before = datetime.datetime.strptime(date_str, '%Y-%m-%d')

        next_date_str = (ndays_before +
                         datetime.timedelta(days=1)).strftime('%Y-%m-%d')

        if holiday_util.is_holiday(next_date_str):
            next_date_str = holiday_util.get_next_transact_date(next_date_str)

        get_zhangting_stocks(date_str, next_date_str)
        ndays_before = datetime.datetime.strptime(next_date_str,
                                                  '%Y-%m-%d').date()

    endtime = datetime.datetime.now()
    logging.info((endtime - starttime).seconds)
Пример #5
0

def get_start_date():
    max_date_indb = session.query(func.max(DaDanSts.date)).first()
    max_date_indb = max_date_indb[0] if max_date_indb is not None else "2005-12-31"
    return datetime.datetime.strptime(max_date_indb, '%Y-%m-%d') + datetime.timedelta(days=1)


if __name__ == '__main__':
    starttime = datetime.datetime.now()
    hour = starttime.hour

    endday = datetime.date.today()
    if hour < 15:
        # 9点前dump前一天的,否则默认dump今天的
        endday = datetime.datetime.strptime(get_pre_transact_date(endday.strftime('%Y-%m-%d')), '%Y-%m-%d')

    startday = get_start_date()

    argv = len(sys.argv)
    if argv > 2:
        startday = datetime.datetime.strptime(sys.argv[1], '%Y-%m-%d')
        endday = datetime.datetime.strptime(sys.argv[2], '%Y-%m-%d')

    logging.info("startday: %s, endday: %s", startday, endday)
    while startday <= endday:
        date_str = startday.strftime('%Y-%m-%d')
        if is_holiday(date_str):
            startday += datetime.timedelta(days=1)
            continue
        logging.info("date: %s", date_str)