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
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
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
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
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
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
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
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
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
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
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
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
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