def handle_hh(argv, argv0):
    try:
        # make sure DB exists
        conn = db_operator.get_db_conn()
        conn.close()

        # get db engine
        engine = db_operator.get_db_engine()

        code = '000300.XSHG'

        i = len(argv)
        if (0 == i):
            start_day = '2008-01-01'
        else:
            start_day = argv[0]

            if (i >= 2):
                code = argv[1]

        get_halfhour_line(engine, start_day, code)

    except Exception as e:
        (t, v, bt) = sys.exc_info()
        traceback.print_exception(t, v, bt)
        print
        print e
        return 1
    finally:
        pass

    return 0
def handle_hha(argv, argv0):
    try:
        # make sure DB exists
        conn = db_operator.get_db_conn()
        conn.close()

        # get db engine
        engine = db_operator.get_db_engine()

        i = len(argv)
        if (0 == i):
            start_day = '2008-01-01'
        else:
            start_day = argv[0]

            if (i >= 2):
                end_day = argv[1]
            else:
                today = datetime.now().date()
                end_day = today

        get_halfhour_line_all(engine, start_day, end_day)

    except Exception as e:
        (t, v, bt) = sys.exc_info()
        traceback.print_exception(t, v, bt)
        print
        print e
        return 1
    finally:
        pass

    return 0
Пример #3
0
def handle_rk(argv, argv0):
    try:
        # make sure DB exists
        conn = db_operator.get_db_conn()
        conn.close()

        # get db engine
        engine = db_operator.get_db_engine()

        i = len(argv)
        if (0 == i):
            start_day = '2019-06-01'
        else:
            start_day = argv[0]

        now = datetime.now()

        rk_ana(engine, start_day, now)  # RSI+KDJ分析

    except Exception as e:
        (t, v, bt) = sys.exc_info()
        traceback.print_exception(t, v, bt)
        print
        print e
        return 1
    finally:
        pass

    return 0
Пример #4
0
def handle_fetch_brk( argv, argv0 ): 
    try:
        # make sure DB exists
        conn = db_operator.get_db_conn()
        conn.close()

        # get db engine
        engine = db_operator.get_db_engine()
        
        start_year = 2005

        i = len(argv)
        now = datetime.now()
        end_year = now.year 

        if ( 0== i  ):
            start_year = now.year - 1
        else:
            start_year = int(argv[0])
            
            if ( i >= 2 ):
                end_year  = int(argv[1])

        # JQ的数据从2005开始
        if start_year < 2005:
            print "开始年份必须不小于2005"
            return 1

        fetch_brk_fundamentals_until_now(engine, start_year, end_year )


        
        # real stuff

    except  Exception as e:
        (t, v, bt) = sys.exc_info()
        traceback.print_exception(t, v, bt)
        print
        print e
        return 1 
    finally:
        pass


    return 0
Пример #5
0
def handle_nofetch2(argv, argv0):
    try:
        # make sure DB exists
        conn = db_operator.get_db_conn()
        conn.close()

        # get db engine
        engine = db_operator.get_db_engine()

        start_year = 2008  # 沪深300从 2004年才开始有

        i = len(argv)
        if (1 == i):
            start_year = int(argv[0])
        else:
            now = datetime.now()
            start_year = now.year - 1

        if start_year < 2008:
            print "开始年份必须不小于2008"
            return 1

        global s_nofetch
        s_nofetch = True

        global MF_MODE
        MF_MODE = 1

        fetch_fundamentals_until_now(engine, start_year - MF2_BACK_TRACE_YEARS)

        #fetch_target_stock_fundamentals(engine, '000651.XSHE', '2017' )

        # real stuff

    except Exception as e:
        (t, v, bt) = sys.exc_info()
        traceback.print_exception(t, v, bt)
        print
        print e
        return 1
    finally:
        pass

    return 0
Пример #6
0
def handle_bt_one_brk( argv, argv0 ): 
    try:
        # make sure DB exists
        conn = db_operator.get_db_conn()
        conn.close()

        # get db engine
        engine = db_operator.get_db_engine()
        
        end_day = ''
        threshold = 2000
        code = '600030.XSHG'

        i = len(argv)
        if ( 0 == i  ):
            start_day = '2014-01-01'  
        else:
            code = argv[0]

            if (i >=2):
                start_day  = argv[1]

                if ( i >= 3 ):
                    end_day  = argv[2]

                    if (i>=4):
                        threshold  = int(argv[3])
 
        bt_one_brk_pb_policy(engine,code, start_day, end_day, GRID_DEPTH  , threshold )


    except  Exception as e:
        (t, v, bt) = sys.exc_info()
        traceback.print_exception(t, v, bt)
        print
        print e
        return 1 
    finally:
        pass


    return 0
def handle_fetch_funda(argv, argv0):
    try:
        # make sure DB exists
        conn = db_operator.get_db_conn()
        conn.close()

        # get db engine
        engine = db_operator.get_db_engine()

        start_year = 2005

        i = len(argv)
        now = datetime.now()
        end_year = now.year

        if (0 == i):
            start_year = now.year - 1
        else:
            start_year = int(argv[0])

            if (i >= 2):
                end_year = int(argv[1])

        # JQ的数据从2005开始
        if start_year < 2005:
            print "开始年份必须不小于2005"
            return 1

        # 逐年抓基本面数据
        for y in range(start_year, end_year + 1):
            fetch_1_year_funda(engine, y)

    except Exception as e:
        (t, v, bt) = sys.exc_info()
        traceback.print_exception(t, v, bt)
        print e
        return 1
    finally:
        pass

    return 0
Пример #8
0
def handle_exper(argv, argv0):
    try:
        # make sure DB exists
        conn = db_operator.get_db_conn()
        conn.close()

        # get db engine
        engine = db_operator.get_db_engine()

        do_some_experiment(engine)

    except Exception as e:

        (t, v, bt) = sys.exc_info()
        traceback.print_exception(t, v, bt)
        print
        print e
        return 1
    finally:
        pass

    return 0
Пример #9
0
def handle_bt_brk( argv, argv0 ): 
    try:
        # make sure DB exists
        conn = db_operator.get_db_conn()
        conn.close()

        # get db engine
        engine = db_operator.get_db_engine()
        
        end_day = ''
        max_hold = 2
        threshold = 500

        i = len(argv)
        if ( 0 == i  ):
            start_day = '2017-01-01'  
        else:
            start_day  = argv[0]

            if ( i >= 2 ):
                end_day  = argv[1]

                if (i>=3):
                    threshold  = int(argv[2])
 
        bt_brk_pb_policy(engine, start_day, end_day,max_hold, threshold )


    except  Exception as e:
        (t, v, bt) = sys.exc_info()
        traceback.print_exception(t, v, bt)
        print
        print e
        return 1 
    finally:
        pass


    return 0
Пример #10
0
def handle_shp2_in_pool(argv, argv0):
    try:
        # make sure DB exists
        conn = db_operator.get_db_conn()
        conn.close()

        # get db engine
        engine = db_operator.get_db_engine()

        end_day = ''
        max_hold = 1
        ma_size = 20

        i = len(argv)
        if (0 == i):
            start_day = '2017-01-01'
        else:
            start_day = argv[0]

            if (i >= 2):
                end_day = argv[1]

                if (i >= 3):
                    ma_size = int(argv[2])

        sh50_buy_worst_ma(engine, start_day, end_day, max_hold, ma_size,
                          POOL_BASE, POOL_BASE_NAME)  # N日涨幅最遭

    except Exception as e:
        (t, v, bt) = sys.exc_info()
        traceback.print_exception(t, v, bt)
        print
        print e
        return 1
    finally:
        pass

    return 0
Пример #11
0
def handle_fetch_in_pool(argv, argv0):
    try:
        # make sure DB exists
        conn = db_operator.get_db_conn()
        conn.close()

        # get db engine
        engine = db_operator.get_db_engine()

        start_year = 2005  # 上证50从 2004年才开始有

        i = len(argv)
        if (1 == i):
            start_year = int(argv[0])
        else:
            now = datetime.now()
            start_year = now.year - 1

        if start_year < 2005:
            print "开始年份必须不小于2005"
            return 1

        pool = POOL_CODES
        pool.append(POOL_BASE)
        #pool = ['601288.XSHG', '601328.XSHG','399951.XSHE' ]

        fetch_dailyline_in_pool_until_now(engine, pool, start_year)

    except Exception as e:
        (t, v, bt) = sys.exc_info()
        traceback.print_exception(t, v, bt)
        print
        print e
        return 1
    finally:
        pass

    return 0
Пример #12
0
def handle_fh50(argv, argv0):
    try:
        # make sure DB exists
        conn = db_operator.get_db_conn()
        conn.close()

        # get db engine
        engine = db_operator.get_db_engine()

        end_day = ''
        ma_size = 5

        i = len(argv)
        if (0 == i):
            start_day = '2017-01-01'
        else:
            start_day = argv[0]

            if (i >= 2):
                end_day = argv[1]

                if (i >= 3):
                    ma_size = int(argv[2])

        fh50_until_now(engine, start_year)  # N日涨幅最强

        #fh50_above_ma(engine, start_day, end_day, ma_size)   # N日均线偏离度最强

    except Exception as e:
        (t, v, bt) = sys.exc_info()
        traceback.print_exception(t, v, bt)
        print
        print e
        return 1
    finally:
        pass

    return 0
Пример #13
0
def handle_fetch50(argv, argv0):
    try:
        # make sure DB exists
        conn = db_operator.get_db_conn()
        conn.close()

        # get db engine
        engine = db_operator.get_db_engine()

        start_year = 2005  # 上证50从 2004年才开始有

        i = len(argv)
        if (1 == i):
            start_year = int(argv[0])
        else:
            now = datetime.now()
            start_year = now.year - 1

        if start_year < 2005:
            print "开始年份必须不小于2005"
            return 1

        fetch_index_dailyline_until_now(engine, FH_BASE_CODE, start_year)

        #fetch_target_stock_fundamentals(engine, '000651.XSHE', '2017' )

        # real stuff

    except Exception as e:
        (t, v, bt) = sys.exc_info()
        traceback.print_exception(t, v, bt)
        print
        print e
        return 1
    finally:
        pass

    return 0
Пример #14
0
def handle_backtest(argv, argv0):
    try:
        # make sure DB exists
        conn = db_operator.get_db_conn()
        conn.close()

        # get db engine
        engine = db_operator.get_db_engine()

        start_year = 2005  # 沪深300从 2004年才开始有

        i = len(argv)
        if (1 == i):
            start_year = int(argv[0])
        else:
            now = datetime.now()
            start_year = now.year - 1

        if start_year < 2005:
            print "开始年份必须不小于2005"
            return 1

        backtest_until_now(engine, start_year)

        global MF_NetValue
        print "== 最终净值 %f ==" % MF_NetValue

    except Exception as e:
        (t, v, bt) = sys.exc_info()
        traceback.print_exception(t, v, bt)
        print
        print e
        return 1
    finally:
        pass

    return 0
Пример #15
0
def handle_dl(argv, argv0):
    try:
        # make sure DB exists
        conn = db_operator.get_db_conn()
        conn.close()

        # get db engine
        engine = db_operator.get_db_engine()

        #code = '000300.XSHG'   # 沪深300

        code = '000001.XSHG'  # 上证综指
        i = len(argv)
        if (0 == i):
            start_day = '2019-01-01'
        else:
            start_day = argv[0]

            if (i >= 2):
                code = argv[1]

        now = datetime.now()

        df_his = data_fetcher.get_daily_line(code, start_day, now)
        db_operator.save_daily_line_to_db(engine, code, df_his)

    except Exception as e:
        (t, v, bt) = sys.exc_info()
        traceback.print_exception(t, v, bt)
        print
        print e
        return 1
    finally:
        pass

    return 0