示例代码

# 示例代码

# 数据标注:

示例代码

start_date='2014-01-01'
split_date='2015-01-01'
instruments=D.instruments(start_date,end_date,market='CN_STOCK_A')
label_expr=[
    #计算收益:5日收盘价(作为卖出价格)除以明日开盘价(作为买入价格)
    'shift(close, -5) / shift(open, -1)',
    # 极值处理:用1%和99%分位的值做clip
    'clip(label, all_quantile(label, 0.01), all_quantile(label, 0.99))',
    # 将分数映射到分类,这里使用20个分类
    'all_wbins(label, 20)',
    # 过滤掉一字涨停的情况 (设置label为NaN,在后续处理和训练中会忽略NaN的label)
    'where(shift(high, -1) == shift(low, -1), NaN, label)'
]
m1 = M.advanced_auto_labeler.v2(
    instruments=instruments, start_date=start_date, end_date=end_date,label_expr=label_expr, benchmark='000300.SHA')

# 基础特征抽取:

# 衍生特征抽取:

示例代码

start_date='2014-01-01'
end_date='2015-01-01'
instruments=D.instruments(start_date, end_date,market='CN_STOCK_A')
features = [
    'return_5',  # 5日收益
    'return_10',  # 10日收益
    'return_20',  # 20日收益
    'avg_amount_0/avg_amount_5',  # 当日/5日平均交易额
    'avg_amount_5/avg_amount_20',  # 5日/20日平均交易额
]   
# 抽取基础特征,比如 return_5, return_10, ..
m2 = M.general_feature_extractor.v7(
    instruments=instruments,
    start_date=start_date, end_date= end_date,
    features=features)
# 计算衍生特征,比如 avg_amount_0/avg_amount_5 ..
m2_1 = M.derived_feature_extractor.v3(input_data=m2.data, features=features)
# 再计算一个衍生特征,比如 rank(return_10 / return_20)
m2_2 = M.derived_feature_extractor.v3(
    input_data=m2.data,
    features=['rank(return_10 / return_20)'])

# 用户自定义函数衍生特征抽取:

示例代码

#使用M.instruments功能模块获取股票代码和起止日期,相当于上例代码中定义的start_date ,end_date和instruments。
m1 = M.instruments.v2(
    start_date='2015-01-01',
    end_date='2017-01-01',
    market='CN_STOCK_A',
    instrument_list='',
    max_count=0
)
#使用M.input_features功能模块指定特征因子,相当于上例代码中定义的features列表
m3 = M.input_features.v1(
    features="""
# #号开始的表示注释
# 多个特征,每行一个,可以包含基础特征和衍生特征
return_0
close_0
"""
)
m2 = M.general_feature_extractor.v6(
    instruments=m1.data,
    features=m3.data,
    start_date='2016-01-01',
    end_date='2017-01-01',
    before_start_days=0
)
#使用M.input_features功能模块自定义因子
m5 = M.input_features.v1(
    features_ds=m3.data,
    features="""
#自定义的因子,这里是一个函数
timex(close_0,10)"""
)

# 定义函数
def timex(df,close_0,y):
    df['close_0']= df['close_0']*y
    return df['close_0']

m4_user_functions_bigquant_run = {
    'timex': timex
}

m4 = M.derived_feature_extractor.v3(
    input_data=m2.data,
    features=m5.data,
    date_col='date',
    instrument_col='instrument',
    user_functions=m4_user_functions_bigquant_run
)