Esempio n. 1
0
def get_edb(idx_universe, start_date, end_date, names=None, **options):
    '''
    获取经济数据。
    
    Parameters
    ------------
    idx_universe
        经济指标代码
    start_date
        '20160101'
    end_date
        '20170101'
    names
        list of str,列别名,默认为None
    options
        其他参数
        
    Returns
    --------
    DataFrame
    
    Notes
    ------
    names若不为None,则必须与idx_universe等长对应
    '''
    assert len(names) == len(idx_universe)
    options = dict_2_str(options)
    start_date = date_format_convert(start_date)
    end_date = date_format_convert(end_date)

    idx_universe = ','.join(idx_universe)
    edb = w.edb(idx_universe, start_date, end_date, options)

    df = pd.DataFrame(edb.Data, columns=edb.Times, index=names).T
    return df
Esempio n. 2
0
def get_tdays(start_date, end_date, **options):
    '''
    获取交易日历序列。
    
    Parameters
    ---------------
    start_date
        '20101001'
    end_date
        '20171021'
    options
        其他参数
        
    Returns
    --------
    Series[]-=
    -98
        Datetime64,ASC
    '''
    options = dict_2_str(options)
    start_date = date_format_convert(start_date)
    end_date = date_format_convert(end_date)

    t_days = w.tdays(start_date, end_date, options)
    t_days = pd.Series(t_days.Data[0])
    return t_days
Esempio n. 3
0
def get_wsd(universe,
            factors,
            start_date,
            end_date,
            names=None,
            if_convert=False,
            **options):
    '''
    获取万德日期序列数据。
    
    Parameters
    ----------
    universe
        list ['600340','000001']
    factors
        'pe_ttm,pb_mrq'
    start_date
        '20171011'
    end_date
        '20171021'
    if_convert
        是否将universe转换成wind代码,默认为False,仅支持沪深股票
    names
        list of str,列别名,默认为None,仅对单标的多因素
    options
        其他参数
        
    Returns
    --------
    DataFrame
    
    Notes
    ----------
    universe与factors最多有一个是多维。
    '''

    options = dict_2_str(options)
    start_date = date_format_convert(start_date)
    end_date = date_format_convert(end_date)

    if if_convert:
        universe_wind = code_2_wind_symbol(universe)
        universe_wind = ','.join(universe_wind)
    else:
        universe_wind = ','.join(universe)

    data = w.wsd(universe_wind, factors, start_date, end_date, options)

    if len(universe) == 1:
        if names is not None:
            df = pd.DataFrame(data.Data, columns=data.Times, index=names).T
        else:
            df = pd.DataFrame(data.Data, columns=data.Times,
                              index=data.Fields).T
    else:
        df = pd.DataFrame(data.Data, columns=data.Times, index=data.Codes).T
    return df
Esempio n. 4
0
def get_tdaysoffset(num, date, **options):
    '''
    获取日期端点数据。
    
    Parameters
    -----------
    num
        int,正为面向未来,负为面向过去
    date
        str,'2018-05-10'
        
    Returns
    -------
    datetime
    
    '''
    options = dict_2_str(options)
    date = w.tdaysoffset(num, date, options)
    return date.Data[0][0]
Esempio n. 5
0
def get_wsi(universe,
            factors,
            start_datetime,
            end_datetime,
            names=None,
            **options):
    '''
    获取万德分钟序列数据。
    
    Parameters
    ----------
    universe
        list ['600340.SH','000001.SZ']
    factors
        'close,volume'
    start_datetime
        '2017-10-11 09:00:00'
    end_date
        '2017-10-21 15:00:00'
    names
        list of str,列别名,默认为None,仅对单标的多因素
    options
        其他参数
        
    Returns
    --------
    DataFrame
    
    Notes
    ----------
    universe与factors最多有一个是多维。
    '''

    options = dict_2_str(options)
    universe_wind = ','.join(universe)
    data = w.wsi(universe_wind, factors, start_datetime, end_datetime, options)

    if names is not None:
        df = pd.DataFrame(data.Data, columns=data.Times, index=names).T
    else:
        df = pd.DataFrame(data.Data, columns=data.Times, index=data.Fields).T
    return df
Esempio n. 6
0
def get_wset(set_name, **options):
    '''
    获取数据集数据。
    
    Parameters
    -----------
    set_name
        集合名称
    options
        选项
        
    Returns
    ----------
    DataFrame
    
    '''
    options = dict_2_str(options)
    data = w.wset(set_name, options)
    data = pd.DataFrame(data.Data, index=data.Fields).T
    return data
Esempio n. 7
0
def get_wss(universe, factors, if_convert=False, names=None, **options):
    '''
    获取万德多维数据。
    
    Parameters
    ----------
    universe
        list ['600340','000001']
    factors
        'pe_ttm,pb_mrq'
    if_convert
        是否将universe转换成wind代码,默认为False,仅支持沪深股票
    names
        list of str,列别名,默认为None
    options
        其他参数,如tradeDate = '20171009'
        
    Returns
    --------
    DataFrame    
    '''
    options = dict_2_str(options)

    if names is not None:
        assert len(names) == len(factors.split(','))

    if if_convert:
        universe_wind = code_2_wind_symbol(universe)
        universe_wind = ','.join(universe_wind)
    else:
        universe_wind = ','.join(universe)
    data = w.wss(universe_wind, factors, options)

    if names is not None:
        df = pd.DataFrame(data.Data, index=names, columns=universe).T
    else:
        df = pd.DataFrame(data.Data, index=data.Fields, columns=universe).T

    return df