コード例 #1
0
def get_random_price(price,
                     code='rb1905',
                     tradingDay='20181119',
                     mu=0,
                     sigma=0.2,
                     theta=0.15,
                     dt=1e-2,
                     ifprint=False,
                     weight=0.1,
                     callback=None):
    ou_noise = OrnsteinUhlenbeckActionNoise(mu=np.array(mu))

    data = []
    tick_pickle = {
        'InstrumentID':
        str(code),
        'UpdateTime':
        '',
        'UpdateMillisec':
        '',
        'LastPrice':
        '',
        'Volume':
        0,
        'TradingDay':
        tradingDay,
        'ActionDay':
        QA_util_date_str2int(
            QA_util_get_last_day(QA_util_date_int2str(tradingDay)))
    }

    for item in time_index:
        x = str(item).split()[2]
        if '.' in x:
            tick_pickle['UpdateMillisec'] = 500
        else:
            tick_pickle['UpdateMillisec'] = 0

        tick_pickle['UpdateTime'] = x.split('.')[0]
        if item.seconds >= 75600:
            tick_pickle['ActionDay'] = QA_util_date_str2int(
                QA_util_get_last_day(
                    QA_util_date_int2str(tick_pickle['TradingDay'])))
        else:
            tick_pickle['ActionDay'] = tick_pickle['TradingDay']
        tick_pickle['Volume'] += random.randint(50, 5000)
        tick_pickle['LastPrice'] = (ou_noise() + 1) * \
                                   weight * price + (1 - weight) * price
        data.append(copy.deepcopy(tick_pickle))
        if ifprint:
            print(tick_pickle)
        if callback is not None:
            callback(tick_pickle)
    return pd.DataFrame(data)
コード例 #2
0
def QA_fetch_get_sh_margin(date):
    """return shanghai margin data

    Arguments:
        date {str YYYY-MM-DD} -- date format

    'code','name','leveraged_balance','leveraged_buyout','leveraged_payoff','margin_left','margin_sell','margin_repay',


    标的证券代码	标的证券简称	本日融资余额(元) leveraged_balance	
    本日融资买入额(元)leveraged_buyout	本日融资偿还额(元) leveraged_payoff
    本日融券余量margin_left	本日融券卖出量 margin_sell	本日融券偿还量 margin_repay


    Returns:
        pandas.DataFrame -- res for margin data
    """
    if date in trade_date_sse:
        data = pd.read_excel(_sh_url.format(QA_util_date_str2int(date)),
                             1).assign(date=date).assign(sse='sh')

        data.columns = [
            'code', 'name', 'leveraged_balance', 'leveraged_buyout',
            'leveraged_payoff', 'margin_left', 'margin_sell', 'margin_repay',
            'date', 'sse'
        ]
        data.code = data.code.apply(lambda x: str(x)[0:6])
        return data
    else:
        pass
コード例 #3
0
ファイル: QACrawler.py プロジェクト: sjtututu/QUANTAXIS
def QA_fetch_get_sh_margin(date):
    """return shanghai margin data

    Arguments:
        date {str YYYY-MM-DD} -- date format

    Returns:
        pandas.DataFrame -- res for margin data
    """
    if date in trade_date_sse:
        data= pd.read_excel(_sh_url.format(QA_util_date_str2int
                                            (date)), 1).assign(date=date).assign(sse='sh')             
        data.columns=['code','name','leveraged_balance','leveraged_buyout','leveraged_payoff','margin_left','margin_sell','margin_repay','date','sse']
        return data
    else:
        pass
コード例 #4
0
def get_random_price(price,
                     code='rb1905',
                     tradingDay='20181119',
                     mu=0,
                     sigma=0.2,
                     theta=0.15,
                     dt=1e-2,
                     ifprint=False,
                     weight=0.1,
                     market_type=None):
    ou_noise = OrnsteinUhlenbeckActionNoise(mu=np.array(mu))

    data = []
    tick_pickle = {
        'InstrumentID':
        str(code),
        'UpdateTime':
        '',
        'UpdateMillisec':
        '',
        'LastPrice':
        '',
        'Volume':
        0,
        'TradingDay':
        tradingDay,
        'ActionDay':
        QA_util_date_str2int(
            QA_util_get_last_day(QA_util_date_int2str(tradingDay)))
    }

    if market_type is None:
        market_type = MARKET_TYPE.FUTURE_CN if re.search(
            r'[a-zA-z]+', code) else MARKET_TYPE.STOCK_CN

    if market_type == MARKET_TYPE.FUTURE_CN:
        time_index = time_index_future
    else:
        time_index = time_index_stock

    for item in time_index:
        x = str(item).split()[2]
        if '.' in x:
            tick_pickle['UpdateMillisec'] = 500
        else:
            tick_pickle['UpdateMillisec'] = 0

        tick_pickle['UpdateTime'] = x.split('.')[0]
        if (item.seconds >= 75600) & (market_type == MARKET_TYPE.FUTURE_CN):
            tick_pickle['ActionDay'] = QA_util_date_str2int(
                QA_util_get_last_day(
                    QA_util_date_int2str(tick_pickle['TradingDay'])))
        else:
            tick_pickle['ActionDay'] = tick_pickle['TradingDay']
        tick_pickle['Volume'] += random.randint(50, 5000)
        tick_pickle['LastPrice'] = (ou_noise()+1) * \
            weight*price + (1-weight)*price
        data.append(copy.deepcopy(tick_pickle))
        if ifprint:
            print(tick_pickle)
    return pd.DataFrame(data)