ptype = 'low'
 # op, ra, duration_date, days = pct.get_linear_model_status('999999', filter='y', dl=dl, ptype=ptype, days=1)
 # duration_date = int(ct.duration_date * 1.4)
 duration_date = ct.duration_date_l
 #    duration_date = 120
 # duration_date = 300
 du_date = duration_date
 newdays = 5
 end_date = None
 ptype = 'low'
 filter = 'y'
 percent_status = 'n'
 if len(str(duration_date)) < 4:
     # duration_date = tdd.get_duration_price_date('999999', dl=duration_date, end=end_date, ptype='dutype')
     du_date = tdd.get_duration_Index_date('999999', dl=duration_date)
     if cct.get_today_duration(du_date) <= 3:
         duration_date = 5
         print("duaration: %s duration_date:%s" %
               (cct.get_today_duration(du_date), duration_date))
     log.info("duaration: %s duration_date:%s" %
              (cct.get_today_duration(du_date), duration_date))
 set_duration_console(du_date)
 # all_diffpath = tdd.get_tdx_dir_blocknew() + '062.blk'
 parser = cct.MoniterArgmain()
 parserDuraton = cct.DurationArgmain()
 market_sort_value = ct.Market_sort_idx['1']
 market_sort_value_key = eval(market_sort_value + '_key')
 while 1:
     try:
         # df = sina_data.Sina().all
         # top_now = tdd.getSinaAlldf(market='cx', vol=ct.json_countVol, type=ct.json_countType)
Beispiel #2
0
def get_tdx_append_now_df(code, type="f", start=None, end=None):
    # start=cct.day8_to_day10(start)
    # end=cct.day8_to_day10(end)
    df = get_tdx_Exp_day_to_df(code, type, start, end).sort_index(ascending=True)
    # print df[:1]
    if not end == None:
        if not end == df.index[-1]:
            print (end, df.index[-1])
        return df
    today = cct.get_today()
    if len(df) > 0:
        tdx_last_day = df.index[-1]
        duration = cct.get_today_duration(tdx_last_day)
        log.debug("duration:%s" % duration)
    else:
        tdx_last_day = None
        duration = 1
    log.debug("tdx_last_day:%s" % tdx_last_day)
    index_status = False
    if code == "999999":
        code = "sh"
        index_status = True
    elif code.startswith("399"):
        index_status = True
        for k in INDEX_LIST.keys():
            if INDEX_LIST[k].find(code) > 0:
                code = k

    log.debug("duration:%s" % duration)
    if duration >= 1:
        ds = ts.get_hist_data(code, start=tdx_last_day, end=today)
        if ds is not None and len(ds) > 1:
            ds = ds[: len(ds) - 1]
            ds["code"] = code
            ds["vol"] = 0
            ds = ds.loc[:, ["code", "open", "high", "low", "close", "vol", "volume"]]
            ds.rename(columns={"volume": "amount"}, inplace=True)
            ds.sort_index(ascending=True, inplace=True)
            log.debug("ds:%s" % ds[:1])
            df = df.append(ds)
            # pd.concat([df,ds],axis=0, join='outer')
            # result=pd.concat([df,ds])
        if cct.get_work_time() and not index_status:
            dm = rl.get_sina_Market_json("all", showtime=False).set_index("code")
            # dm=dm.drop_duplicates()
            log.debug("dm:%s" % dm[-1:])
            dm.rename(columns={"volume": "amount", "trade": "close"}, inplace=True)
            # c_name=dm.loc[code,['name']]
            dm_code = dm.loc[code, ["open", "high", "low", "close", "amount"]]
            log.debug("dm_code:%s" % dm_code["amount"])
            dm_code["amount"] = round(float(dm_code["amount"]) / 100, 2)
            dm_code["code"] = code
            dm_code["vol"] = 0
            # dm_code['date']=today
            dm_code.name = today
            df = df.append(dm_code)
            # df['name']=c_name
            # log.debug("c_name:%s"%(c_name))
            log.debug("df[-3:]:%s" % (df[-2:]))
            df["name"] = dm.loc[code, "name"]
        log.debug("df:%s" % df[-2:])
    return df
Beispiel #3
0
    status_change = False
    lastpTDX_DF = pd.DataFrame()
    # dl=30
    ptype = 'low'
    # op, ra, duration_date, days = pct.get_linear_model_status('999999', filter='y', dl=dl, ptype=ptype, days=1)
    # duration_date = ct.duration_date
    duration_date = ct.duration_date_l
    du_date = duration_date
    end_date = None
    ptype = 'low'
    filter = 'y'
    percent_status = 'n'
    if len(str(duration_date)) < 4:
        # duration_date = tdd.get_duration_price_date('999999', dl=duration_date, end=end_date, ptype='dutype')
        du_date = tdd.get_duration_Index_date('999999', dl=duration_date)
        if cct.get_today_duration(du_date) <= 3:
            duration_date = 5
            print("duaration: %s duration_date:%s" % (cct.get_today_duration(du_date), duration_date))
        log.info("duaration: %s duration_date:%s" % (cct.get_today_duration(du_date), duration_date))
    set_duration_console(du_date)
    # all_diffpath = tdd.get_tdx_dir_blocknew() + '062.blk'
    parser = cct.MoniterArgmain()
    parserDuraton = cct.DurationArgmain()
    market_sort_value = ct.Market_sort_idx['1']
    market_sort_value_key = eval(market_sort_value + '_key')
    while 1:
        try:
            # df = sina_data.Sina().all
            time_Rt = time.time()
            top_now = tdd.getSinaAlldf(market='rzrq', vol=ct.json_countVol, vtype=ct.json_countType)
#            top_now = tdd.getSinaAlldf(market='all', vol=ct.json_countVol, vtype=ct.json_countType)
Beispiel #4
0
def get_tdx_append_now_df_api(code, type="f", start=None, end=None):
    import sina_data

    # start=cct.day8_to_day10(start)
    # end=cct.day8_to_day10(end)
    df = get_tdx_Exp_day_to_df(code, type, start, end).sort_index(ascending=True)
    # print df[:1]
    if not end == None:
        if end < df.index[-1]:
            print (end, df.index[-1])
            return df
    today = cct.get_today()
    if len(df) > 0:
        tdx_last_day = df.index[-1]
        duration = cct.get_today_duration(tdx_last_day)
        log.debug("duration:%s" % duration)
    else:
        tdx_last_day = None
        duration = 1
    log.debug("tdx_last_day:%s" % tdx_last_day)
    index_status = False
    if code == "999999":
        code = "sh"
        index_status = True
    elif code.startswith("399"):
        index_status = True
        for k in INDEX_LIST.keys():
            if INDEX_LIST[k].find(code) > 0:
                code = k

    log.debug("duration:%s" % duration)
    if duration >= 1:
        try:
            ds = ts.get_hist_data(code, start=tdx_last_day, end=today)
            # ds = ts.get_h_data('000001', start=tdx_last_day, end=today,index=index_status)
            # df.index = pd.to_datetime(df.index)
        except (IOError, EOFError, Exception) as e:
            print "Error duration", e
            if index_status:
                code_t = INDEX_LIST[code][2:]
            ds = ts.get_h_data(code_t, start=tdx_last_day, end=today, index=index_status)
            df.index = pd.to_datetime(df.index)
        if ds is not None and len(ds) > 1:
            ds = ds[: len(ds) - 1]
            if index_status:
                code_t = INDEX_LIST[code][2:]
                if code == "sh":
                    code = "999999"
                else:
                    code = code_t
                ds["code"] = code
            else:
                ds["code"] = code
            # ds['vol'] = 0
            ds = ds.loc[:, ["code", "open", "high", "low", "close", "volume", "amount"]]
            # ds.rename(columns={'volume': 'amount'}, inplace=True)
            ds.rename(columns={"volume": "vol"}, inplace=True)
            ds.sort_index(ascending=True, inplace=True)
            log.debug("ds:%s" % ds[:1])
            df = df.append(ds)
            # pd.concat([df,ds],axis=0, join='outer')
            # result=pd.concat([df,ds])
        if cct.get_work_time():
            # dm = rl.get_sina_Market_json('all').set_index('code')
            if index_status:
                code = INDEX_LIST[code]
            dm = sina_data.Sina().get_stock_code_data(code).set_index("code")
            if dm is not None and not dm.empty:
                # dm=dm.drop_duplicates()
                log.debug("dm:%s" % dm[-1:])
                dm.rename(columns={"volume": "amount", "turnover": "vol"}, inplace=True)
                # c_name=dm.loc[code,['name']]
                dm_code = dm.loc[:, ["open", "high", "low", "close", "amount"]]
                log.debug("dm_code:%s" % dm_code["amount"])
                dm_code["amount"] = round(float(dm_code["amount"]) / 100, 2)
                dm_code["code"] = code
                dm_code["vol"] = 0
                # dm_code['date']=today
                dm_code.name = today
                df = df.append(dm_code)
                # df['name']=c_name
                # log.debug("c_name:%s"%(c_name))
                log.debug("df[-3:]:%s" % (df[-2:]))
                # df['name'] = dm.loc[code, 'name']
        log.debug("df:%s" % df[-2:])
    return df
Beispiel #5
0
 def get_linear_model_ratio(asset):
     log.info("asset:%s" % asset[-1:])
     duration = asset[-1:].index.values[0]
     log.debug("duration:%s" % duration)
     log.debug("duration:%s" % cct.get_today_duration(duration))
     # log.debug("duration:%s"%cct.get_duration_date(duration))
     asset = asset.dropna()
     X = np.arange(len(asset))
     x = sm.add_constant(X)
     model = regression.linear_model.OLS(asset, x).fit()
     a = model.params[0]
     b = model.params[1]
     log.info("X:%s a:%0.1f b:%0.1f" % (len(asset), a, b))
     Y = np.append(X, X[-1] + int(days))
     log.debug("X:%s Y:%s" % (X[-1], Y[-1]))
     # print ("X:%s" % (X[-1]))
     Y_hat = X * b + a
     # Y_hat_t = Y * b + a
     # log.info("Y_hat:%s " % (Y_hat))
     # log.info("asset:%s " % (asset.values))
     ratio = b / a * 100
     operation = 0
     if Y_hat[-1] > Y_hat[1]:
         log.debug("u-Y_hat[-1]:%0.1f" % (Y_hat[-1]))
         log.debug("price:%0.1f" % asset.iat[-1])
         log.debug("u:%0.1f" % Y_hat[1])
         log.debug("price:%0.1f" % asset.iat[1])
         if type.upper() == "M":
             Y_Future = Y * b + a
             # ratio = b/a*100
             log.info("ratio: %0.1f %0.1f Y_Mid: %0.1f" % (b, ratio, Y_Future[-1]))
             # diff = asset.iat[-1] - Y_hat[-1]
             # if diff > 0:
             # return True, len(asset), diff
             # else:
             # return False, len(asset), diff
         elif type.upper() == "L":
             i = (asset.values.T - Y_hat).argmin()
             c_low = X[i] * b + a - asset.values[i]
             # Y_hatlow = X * b + a - c_low
             Y_Future = Y * b + a - c_low
             log.info("b: %0.1f ratio:%0.1f Y_Mid: %0.1f" % (b, ratio, Y_Future[-1]))
             # diff = asset.iat[-1] - Y_hatlow[-1]
             # if asset.iat[-1] - Y_hatlow[-1] > 0:
             # return True, len(asset), diff
             # else:
             # return False, len(asset), diff
         elif type.upper() == "H":
             i = (asset.values.T - Y_hat).argmax()
             c_high = X[i] * b + a - asset.values[i]
             # Y_hathigh = X * b + a - c_high
             Y_Future = Y * b + a - c_high
             log.info("ratio: %0.1f %0.1f Y_Mid: %0.1f" % (b, ratio, Y_Future[-1]))
         diff = asset[-1] - Y_Future[-1]
         # print ("as:%s Y:%s"%(asset[-1] ,Y_Future[-1]))
         if diff > 0:
             operation += 1
             log.info("UP !!%s Y_Future: %0.1f b:%0.1f ratio:%0.1f " % (type.upper(), Y_Future[-1], b, ratio))
         else:
             log.info("Down %s Y_Future: %0.1f b:%0.1f ratio:%0.1f" % (type.upper(), Y_Future[-1], b, ratio))
         return operation, ratio
     else:
         log.debug("down !!! d:%s" % Y_hat[1])
         print ("down !!! d:%s" % Y_hat[1])
         return 0, 0