Beispiel #1
0
def test_add_field():
    dv = DataView()
    dv.load_dataview(folder_path=daily_path)
    nrows, ncols = dv.data_d.shape
    n_securities = len(dv.data_d.columns.levels[0])

    ds = RemoteDataService()
    ds.init_from_config(data_config)
    dv.add_field('total_share', ds)
    assert dv.data_d.shape == (nrows, ncols + 1 * n_securities)
Beispiel #2
0
def test_add_field():
    dv = DataView()
    dv.load_dataview(folder_path=daily_path)
    nrows, ncols = dv.data_d.shape
    n_securities = len(dv.data_d.columns.levels[0])
    
    ds = RemoteDataService()
    ds.init_from_config(data_config)
    dv.add_field('total_share', ds)
    assert dv.data_d.shape == (nrows, ncols + 1 * n_securities)
Beispiel #3
0
def get_dv(start=20170101, end=20180101):
    import jaqs_fxdayu
    jaqs_fxdayu.patch_all()
    from jaqs.data import DataView
    from jaqs_fxdayu.data.dataservice import LocalDataService

    import warnings
    warnings.filterwarnings("ignore")

    #--------------------------------------------------------

    #define
    factor_list = [
        'volume', 'tot_profit', 'plus_non_oper_rev', 'less_non_oper_exp',
        'net_cash_flows_oper_act', 'total_oper_rev', 'tot_oper_cost',
        'fin_exp', 'less_selling_dist_exp', 'less_gerl_admin_exp', 'oper_rev',
        'less_oper_cost', 'turnover'
    ]
    check_factor = ','.join(factor_list)

    dataview_folder = 'G:\GSICE\DATA\data'
    ds = LocalDataService(fp=dataview_folder)

    ZZ800_id = ds.query_index_member("000906.SH", start, end)
    stock_symbol = list(set(ZZ800_id))

    dv_props = {
        'start_date': start,
        'end_date': end,
        'symbol': ','.join(stock_symbol),
        'fields': check_factor,
        'freq': 1,
        "prepare_fields": True
    }

    dv = DataView()
    dv.init_from_config(dv_props, data_api=ds)
    dv.prepare_data()

    data_config = {
        "remote.data.address":
        "tcp://data.tushare.org:8910",
        "remote.data.username":
        "******",
        "remote.data.password":
        "******"
    }

    from jaqs_fxdayu.data import RemoteDataService
    Ds = RemoteDataService()
    Ds.init_from_config(data_config)
    dv.add_field('pe', Ds)

    return dv
Beispiel #4
0
def test_q_add_field():
    dv = DataView()
    dv.load_dataview(folder_path=quarterly_path)
    nrows, ncols = dv.data_q.shape
    n_securities = len(dv.data_d.columns.levels[0])

    ds = RemoteDataService()
    ds.init_from_config(data_config)
    dv.add_field('net_inc_other_ops', ds)
    """
    dv.add_field('oper_rev', ds)
    dv.add_field('turnover', ds)
    """
    assert dv.data_q.shape == (nrows, ncols + 1 * n_securities)
Beispiel #5
0
def test_q_add_field():
    dv = DataView()
    dv.load_dataview(folder_path=quarterly_path)
    nrows, ncols = dv.data_q.shape
    n_securities = len(dv.data_d.columns.levels[0])
    
    ds = RemoteDataService()
    ds.init_from_config(data_config)
    dv.add_field('net_inc_other_ops', ds)
    """
    dv.add_field('oper_rev', ds)
    dv.add_field('turnover', ds)
    """
    assert dv.data_q.shape == (nrows, ncols + 1 * n_securities)
Beispiel #6
0
    "tcp://gw.quantos.org:8901",
    "remote.trade.username":
    "******",
    "remote.trade.password":
    "******"
}

dataview_dir_path = '***'  #dataview存储路径
backtest_result_dir_path = '***'  #回测结果存储路径

api = DataApi(addr='tcp://data.quantos.org:8910')
api.login("phone", "token")

dv = DataView()
dv.load_dataview(folder_path=dataview_dir_path)
dv.add_field('turnover_ratio', ds)
dv.save_dataview(folder_path=dataview_dir_path)
dv.update_snapshot()

#在已经保存dataview之后,需要添加某项指标(dataview.py里面可以找这些指标,不是因子!),如turnover_ratio,使用这段代码,添加完之后下一次运行就可以注释掉


def my_selector(context, user_options=None):
    #筛选僵尸股和ST股
    df = context.dataview.data_inst['name']
    result = pd.DataFrame(df, columns=['ST'], index=df.index, dtype='bool')
    selector_volume = context.snapshot[
        'mean_turnover'] > 50000000  #这里要先add('ts_mean(turnover, 5)', 'mean_turnover')
    names = list(df)
    for i in range(len(df)):
        if 'ST' in names[i]:
ds = LocalDataService(fp=dataview_folder)

dv_props = {
    'start_date': start,
    'end_date': end,
    'symbol': ','.join(stock_symbol),
    'fields': check_factor,
    'freq': 1,
    "prepare_fields": True
}

dv.init_from_config(dv_props, data_api=ds)
dv.prepare_data()

#获取行业情况
dv.add_field('sw1')
sw1 = dv.get_ts('sw1')
dict_classify = {
    '480000': '银行',
    '430000': '房地产',
    '460000': '休闲服务',
    '640000': '机械设备',
    '240000': '有色金属',
    '510000': '综合',
    '410000': '公用事业',
    '450000': '商业贸易',
    '730000': '通信',
    '330000': '家用电器',
    '720000': '传媒',
    '630000': '电气设备',
    '270000': '电子',
Beispiel #8
0
print(dv.get_ts('roe_pb').head())  #这里用get_ts的方法输入新的名称即可

#5_从数据服务添加新数据至本地
#先设置Config
data_config = {
    "remote.data.address":
    "tcp://data.tushare.org:8910",  #地址统一,暂不做修改
    "remote.data.username":
    "******",  #quantos账号(手机号码)
    #quantos账号的API令牌号码
    "remote.data.password":
    "******"
}
ds = RemoteDataService()  #DataService启动
ds.init_from_config(data_config)  #data_config启动

dv.add_field('eps_basic', ds)  #添加新数据(eps_basic)至本地(ds)
print(dv.get_ts('eps_basic').head())
A = dv.get_ts('eps_basic').head()  #get_ts为数据获取

dv.remove_field('eps_basic')  #删除数据(eps_basic)
dv.add_field('volume', ds)  #添加新数据至本地(ds)
A = dv.get_ts('volume').head()

dv.save_dataview('G:/data/hs300')  #保存
dv.save_dataview('G:/data/hs300_1')  #这相当于另存为

print(dv.fields)  #查看dv中取得的数据

dv.add_field('roe', ds)  #添加新数据至本地(ds)
Beispiel #9
0
    'end_date': end,
    'symbol': ','.join(stock_symbol),
    'fields': check_factor,
    'freq': 1,
    "prepare_fields": True
}

dv.init_from_config(dv_props, data_api=ds)

# In[10]:

dv.prepare_data()

# In[11]:

dv.add_field('sw1')
sw1 = dv.get_ts('sw1')
dict_classify = {
    '480000': '银行',
    '430000': '房地产',
    '460000': '休闲服务',
    '640000': '机械设备',
    '240000': '有色金属',
    '510000': '综合',
    '410000': '公用事业',
    '450000': '商业贸易',
    '730000': '通信',
    '330000': '家用电器',
    '720000': '传媒',
    '630000': '电气设备',
    '270000': '电子',