为什么我的策略一直没有选出股票


(anzi89) #1

[2018-01-03 03:52:11.376582] INFO: bigquant: input_features.v1 开始运行…
[2018-01-03 03:52:11.382657] INFO: bigquant: 命中缓存
[2018-01-03 03:52:11.384051] INFO: bigquant: input_features.v1 运行完成[0.007508s].
[2018-01-03 03:52:11.393856] INFO: bigquant: instruments.v2 开始运行…
[2018-01-03 03:52:11.397235] INFO: bigquant: 命中缓存
[2018-01-03 03:52:11.398557] INFO: bigquant: instruments.v2 运行完成[0.004683s].
[2018-01-03 03:52:11.417561] INFO: bigquant: general_feature_extractor.v6 开始运行…
[2018-01-03 03:52:11.420845] INFO: bigquant: 命中缓存
[2018-01-03 03:52:11.422145] INFO: bigquant: general_feature_extractor.v6 运行完成[0.004588s].
[2018-01-03 03:52:11.483184] INFO: bigquant: derived_feature_extractor.v2 开始运行…
[2018-01-03 03:52:11.486139] INFO: bigquant: 命中缓存
[2018-01-03 03:52:11.487155] INFO: bigquant: derived_feature_extractor.v2 运行完成[0.004047s].
[2018-01-03 03:52:11.498100] INFO: bigquant: dropnan.v1 开始运行…
[2018-01-03 03:52:11.501568] INFO: bigquant: 命中缓存
[2018-01-03 03:52:11.502597] INFO: bigquant: dropnan.v1 运行完成[0.004489s].
[2018-01-03 03:52:11.515759] INFO: 滚动运行配置: 生成了 17 次滚动,第一次 {‘start_date’: ‘2012-01-01’, ‘end_date’: ‘2013-12-30’},最后一次 {‘start_date’: ‘2012-01-01’, ‘end_date’: ‘2017-12-25’}
[2018-01-03 03:52:11.517297] INFO: 滚动运行配置: 实盘模式,取最后 1 个滚动: [{‘start_date’: ‘2012-01-01’, ‘end_date’: ‘2017-12-25’}]
[2018-01-03 03:52:11.537444] INFO: bigquant: instruments.v2 开始运行…
[2018-01-03 03:52:11.539682] INFO: bigquant: 命中缓存
[2018-01-03 03:52:11.540935] INFO: bigquant: instruments.v2 运行完成[0.003494s].
[2018-01-03 03:52:11.555074] INFO: bigquant: advanced_auto_labeler.v2 开始运行…
[2018-01-03 03:52:11.557674] INFO: bigquant: 命中缓存
[2018-01-03 03:52:11.558617] INFO: bigquant: advanced_auto_labeler.v2 运行完成[0.003547s].
[2018-01-03 03:52:11.566732] INFO: bigquant: general_feature_extractor.v6 开始运行…
[2018-01-03 03:52:11.569239] INFO: bigquant: 命中缓存
[2018-01-03 03:52:11.570376] INFO: bigquant: general_feature_extractor.v6 运行完成[0.003628s].
[2018-01-03 03:52:11.576999] INFO: bigquant: derived_feature_extractor.v2 开始运行…
[2018-01-03 03:52:11.579390] INFO: bigquant: 命中缓存
[2018-01-03 03:52:11.580175] INFO: bigquant: derived_feature_extractor.v2 运行完成[0.003171s].
[2018-01-03 03:52:11.592532] INFO: bigquant: join.v3 开始运行…
[2018-01-03 03:52:11.595301] INFO: bigquant: 命中缓存
[2018-01-03 03:52:11.596764] INFO: bigquant: join.v3 运行完成[0.00419s].
[2018-01-03 03:52:11.606934] INFO: bigquant: dropnan.v1 开始运行…
[2018-01-03 03:52:11.610130] INFO: bigquant: 命中缓存
[2018-01-03 03:52:11.611408] INFO: bigquant: dropnan.v1 运行完成[0.004474s].
[2018-01-03 03:52:11.623555] INFO: bigquant: 延迟运行 stock_ranker_train.v5
[2018-01-03 03:52:11.634280] INFO: bigquant: rolling_run.v1 开始运行…
[2018-01-03 03:52:11.636972] INFO: bigquant: 命中缓存
[2018-01-03 03:52:11.637927] INFO: bigquant: rolling_run.v1 运行完成[0.003626s].
[2018-01-03 03:52:11.649572] INFO: bigquant: 延迟运行 stock_ranker_predict.v5
[2018-01-03 03:52:11.664763] INFO: bigquant: rolling_run_predict.v1 开始运行…
[2018-01-03 03:52:11.681644] INFO: bigquant: 命中缓存
[2018-01-03 03:52:11.683195] INFO: bigquant: rolling_run_predict.v1 运行完成[0.018475s].
[2018-01-03 03:52:12.005086] INFO: forward_register: start to register
[2018-01-03 03:52:12.061479] INFO: forward_register: done of register
[2018-01-03 03:52:12.449793] INFO: forward_test: last record: <EquityAlgoDaily(run_date=2017-12-29, is_sync=0, cash=100000.0, positions=’[]’, transactions=’[]’, orders=’[]’, extension=’{“order_price_field_buy”: “open”, “order_price_field_sell”: “close”}’, benchmark=’{“000300.SHA”: 0.0029753446578979492}’, portfolio=’{“cum_return”: 0.0, “first_date”: “2017-12-25”, “today_return”: 0.0, “annual_return”: 0.0, “pv”: 0.0, “drawdown”: 0.0, “max_pv”: 100000.0}’, risk_indicator=’{“beta”: 0.0, “volatility”: 0.0, “sharpe”: 0.0, “ir”: -3.955670076052972, “alpha”: -0.03}’, trading_days=‘5’
[2018-01-03 03:52:12.453578] INFO: forward_test: today record: <EquityAlgoDaily(run_date=2018-01-02, is_sync=0, cash=100000.0, positions=’[]’, transactions=’[]’, orders=’[]’, extension=’{“order_price_field_buy”: “open”, “order_price_field_sell”: “close”}’, benchmark=’{“000300.SHA”: 0.014028310775756836}’, portfolio=’{“cum_return”: 0.0, “first_date”: “2017-12-25”, “pv”: 0.0, “max_pv”: 100000.0, “drawdown”: 0.0, “annual_return”: 0.0, “today_return”: 0.0}’, risk_indicator=’{“ir”: -20.362088880488788, “beta”: 0.0, “sharpe”: 0.0, “alpha”: -0.03, “volatility”: 0.0}’, trading_days=‘6’
[2018-01-03 03:52:12.456641] INFO: forward_test: first record: <EquityAlgoDaily(run_date=2017-12-25, is_sync=0, cash=100000.0, positions=’[]’, transactions=’[]’, orders=’[]’, extension=’{“order_price_field_buy”: “open”, “order_price_field_sell”: “close”}’, benchmark=’{“000300.SHA”: -0.0032206177711486816}’, portfolio=’{“cum_return”: 0.0, “max_pv”: 100000.0, “first_date”: “2017-12-25”, “annual_return”: 0.0, “today_return”: 0.0, “drawdown”: 0.0, “pv”: 0.0}’, risk_indicator=’{“sharpe”: 0.0, “ir”: 0.0, “volatility”: 0.0, “beta”: 0.0, “alpha”: 0.0}’, trading_days=‘1’
[2018-01-03 03:52:12.574912] INFO: algo: set price type:original
[2018-01-03 03:52:39.138008] INFO: forward_test: positions len:0
[2018-01-03 03:52:39.144861] INFO: Performance: Simulated 1 trading days out of 1.
[2018-01-03 03:52:39.146024] INFO: Performance: first open: 2018-01-02 01:30:00+00:00
[2018-01-03 03:52:39.147441] INFO: Performance: last close: 2018-01-02 07:00:00+00:00
[2018-01-03 03:52:39.183144] INFO: forward_test: get last row of algo result: algo_volatility algorithm_period_return alpha
2018-01-02 07:00:00+00:00 0 0.0 0

                       benchmark_period_return  benchmark_volatility  \

2018-01-02 07:00:00+00:00 0.014028 0

                       beta  capital_used  ending_cash  ending_exposure  \

2018-01-02 07:00:00+00:00 0 0.0 100000.0 0.0

                       ending_value          ...            \

2018-01-02 07:00:00+00:00 0.0 …

                       short_exposure  short_value  shorts_count  sortino  \

2018-01-02 07:00:00+00:00 0 0 0 0

                       starting_cash  starting_exposure  starting_value  \

2018-01-02 07:00:00+00:00 100000.0 0.0 0.0

                       trading_days  transactions treasury_period_return  

2018-01-02 07:00:00+00:00 1 [] 0.044297

[1 rows x 38 columns]
[2018-01-03 03:52:39.227198] INFO: forward_test: new orders for date 2018-01-02
No display for HTML output
[2018-01-03 03:52:39.261826] INFO: forward_test: forward test result, cash 100000.0, positions [], orders [], extension


(iQuant) #2

您好,你的策略是什么类型的策略?看你的日志,策略运行并没有报错,因此需要结合策略代码来看了。如果方便的话,可以分享到社区,我们来看看~


(anzi89) #3

1. 策略基本参数

m3 = M.input_features.v1(
features="""# #号开始的表示注释

多个特征,每行一个,可以包含基础特征和衍生特征

return_5
return_10
return_20
avg_amount_0/avg_amount_5
avg_amount_5/avg_amount_20
rank_avg_amount_0/rank_avg_amount_5
rank_avg_amount_5/rank_avg_amount_10
rank_return_0
rank_return_5
rank_return_10
rank_return_0/rank_return_5
rank_return_5/rank_return_10
pe_ttm_0
(volume_0+volume_1+volume_2+volume_3+volume_4)/5
rank_market_cap_0
mf_net_amount_10
fs_deducted_profit_0
fs_operating_revenue_yoy_0
fs_net_profit_yoy_0
fs_roe_0
(fs_current_liabilities_0+fs_non_current_liabilities_0)/(fs_current_assets_0+fs_non_current_assets_0)
fs_net_cash_flow_0
sh_holder_avg_pct_3m_chng_0
ta_sma_20_0
list_board_0
"""

)

m9 = M.instruments.v2(
start_date=‘2014-01-01’,
end_date=‘2017-12-26’,
market=‘CN_STOCK_A’,
instrument_list=’’,
max_count=0
)

m10 = M.general_feature_extractor.v6(
instruments=m9.data,
features=m3.data,
start_date=’’,
end_date=’’
)

m11 = M.derived_feature_extractor.v2(
input_data=m10.data,
features=m3.data,
date_col=‘date’,
instrument_col=‘instrument’
)

m14 = M.dropnan.v1(
input_data=m11.data
)

m15 = M.rolling_conf.v1(
start_date=‘2012-01-01’,
end_date= ‘2017-12-26’,
rolling_update_days=91,
rolling_min_days=730,
rolling_max_days=0,
rolling_count_for_live=1
)

m1 = M.instruments.v2(
rolling_conf=m15.data,
start_date=’’,
end_date=’’,
market=‘CN_STOCK_A’,
instrument_list=’’,
max_count=0
)

m2 = M.advanced_auto_labeler.v2(
instruments=m1.data,
label_expr="""# #号开始的表示注释

0. 每行一个,顺序执行,从第二个开始,可以使用label字段

1. 可用数据字段见 https://bigquant.com/docs/data_history_data.html

添加benchmark_前缀,可使用对应的benchmark数据

2. 可用操作符和函数见 表达式引擎 <https://bigquant.com/docs/big_expr.html>_

计算收益: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)

where(st_status != 0, NaN, label)

过滤掉一字涨停的情况 (设置label为NaN,在后续处理和训练中会忽略NaN的label)

where(shift(high, -1) == shift(low, -1), NaN, label)
""",
start_date=’’,
end_date=’’,
benchmark=‘000300.SHA’,
drop_na_label=True,
cast_label_int=True
)

m4 = M.general_feature_extractor.v6(
instruments=m1.data,
features=m3.data,
start_date=’’,
end_date=’’
)

m5 = M.derived_feature_extractor.v2(
input_data=m4.data,
features=m3.data,
date_col=‘date’,
instrument_col=‘instrument’
)

m7 = M.join.v3(
data1=m2.data,
data2=m5.data,
on=‘date,instrument’,
how=‘inner’,
sort=False
)

m13 = M.dropnan.v1(
input_data=m7.data
)

m6 = M.stock_ranker_train.v5(
training_ds=m13.data,
features=m3.data,
learning_algorithm=‘排序’,
number_of_leaves=30,
minimum_docs_per_leaf=1000,
number_of_trees=20,
learning_rate=0.1,
max_bins=1023,
feature_fraction=1,
m_lazy_run=True
)

m16 = M.rolling_run.v1(
run=m6.m_lazy_run,
input_list=m15.data,
param_name=‘rolling_input’
)

m8 = M.stock_ranker_predict.v5(
model=m16.data,
data=m14.data,
m_lazy_run=True
)

m17 = M.rolling_run_predict.v1(
predict=m8.m_lazy_run,
model_param_name=‘model’,
data_param_name=‘data’
)

回测引擎:每日数据处理函数,每天执行一次

def m12_handle_data_bigquant_run(context, data):
# 按日期过滤得到今日的预测数据
ranker_prediction = context.ranker_prediction[
context.ranker_prediction.date == data.current_dt.strftime(’%Y-%m-%d’)]

# 1. 资金分配
# 平均持仓时间是hold_days,每日都将买入股票,每日预期使用 1/hold_days 的资金
# 实际操作中,会存在一定的买入误差,所以在前hold_days天,等量使用资金;之后,尽量使用剩余资金(这里设置最多用等量的1.5倍)
is_staging = context.trading_day_index < context.options['hold_days'] # 是否在建仓期间(前 hold_days 天)
cash_avg = context.portfolio.portfolio_value / context.options['hold_days']
cash_for_buy = min(context.portfolio.cash, (1 if is_staging else 1.5) * cash_avg)
cash_for_sell = cash_avg - (context.portfolio.cash - cash_for_buy)
positions = {e.symbol: p.amount * p.last_sale_price
             for e, p in context.perf_tracker.position_tracker.positions.items()}

# 2. 生成卖出订单:hold_days天之后才开始卖出;对持仓的股票,按StockRanker预测的排序末位淘汰
if not is_staging and cash_for_sell > 0:
    equities = {e.symbol: e for e, p in context.perf_tracker.position_tracker.positions.items()}
    instruments = list(reversed(list(ranker_prediction.instrument[ranker_prediction.instrument.apply(
            lambda x: x in equities and not context.has_unfinished_sell_order(equities[x]))])))
    #print('rank order for sell %s' % instruments)
    for instrument in instruments:
        context.order_target(context.symbol(instrument), 0)
        cash_for_sell -= positions[instrument]
        if cash_for_sell <= 0:
            break

# 3. 生成买入订单:按StockRanker预测的排序,买入前面的stock_count只股票
buy_cash_weights = context.stock_weights
buy_instruments = list(ranker_prediction.instrument[:len(buy_cash_weights)])
max_cash_per_instrument = context.portfolio.portfolio_value * context.max_cash_per_instrument
for i, instrument in enumerate(buy_instruments):
    cash = cash_for_buy * buy_cash_weights[i]
    if cash > max_cash_per_instrument - positions.get(instrument, 0):
        # 确保股票持仓量不会超过每次股票最大的占用资金量
        cash = max_cash_per_instrument - positions.get(instrument, 0)
    if cash > 0:
        current_price = data.current(context.symbol(instrument), 'price')
        amount = math.floor(cash / current_price / 100) * 100
        context.order(context.symbol(instrument), amount)

回测引擎:准备数据,只执行一次

def m12_prepare_bigquant_run(context):
pass

回测引擎:初始化函数,只执行一次

def m12_initialize_bigquant_run(context):
# 加载预测数据
context.ranker_prediction = context.options[‘data’].read_df()

# 系统已经设置了默认的交易手续费和滑点,要修改手续费可使用如下函数
context.set_commission(PerOrder(buy_cost=0.0003, sell_cost=0.0013, min_cost=5))
# 预测数据,通过options传入进来,使用 read_df 函数,加载到内存 (DataFrame)
# 设置买入的股票数量,这里买入预测股票列表排名靠前的5只
stock_count = 5
# 每只的股票的权重,如下的权重分配会使得靠前的股票分配多一点的资金,[0.339160, 0.213986, 0.169580, ..]
context.stock_weights = T.norm([1 / math.log(i + 2) for i in range(0, stock_count)])
# 设置每只股票占用的最大资金比例
context.max_cash_per_instrument = 0.65
context.options['hold_days'] = 5

m12 = M.trade.v3(
instruments=m9.data,
options_data=m17.predictions,
start_date=’’,
end_date=’’,
handle_data=m12_handle_data_bigquant_run,
prepare=m12_prepare_bigquant_run,
initialize=m12_initialize_bigquant_run,
volume_limit=0.025,
order_price_field_buy=‘open’,
order_price_field_sell=‘close’,
capital_base=150000,
benchmark=‘000300.SHA’,
auto_cancel_non_tradable_orders=True,
data_frequency=‘daily’,
price_type=‘real’,
plot_charts=True,
backtest_only=False
)


(小Q) #4

您好,问题已经查明,您在m2策略标注部分没有添加 “#” 号,导致策略无法运行,您可以修改下问题重新运行。

微信图片_20180116115303

克隆策略
In [21]:
# 1. 策略基本参数
m3 = M.input_features.v1(
    features="""# #号开始的表示注释多个特征,每行一个,可以包含基础特征和衍生特征
return_5
return_10
return_20
avg_amount_0/avg_amount_5
avg_amount_5/avg_amount_20
rank_avg_amount_0/rank_avg_amount_5
rank_avg_amount_5/rank_avg_amount_10
rank_return_0
rank_return_5
rank_return_10
rank_return_0/rank_return_5
rank_return_5/rank_return_10
pe_ttm_0
(volume_0+volume_1+volume_2+volume_3+volume_4)/5
rank_market_cap_0
mf_net_amount_10
fs_deducted_profit_0
fs_operating_revenue_yoy_0
fs_net_profit_yoy_0
fs_roe_0
(fs_current_liabilities_0+fs_non_current_liabilities_0)/(fs_current_assets_0+fs_non_current_assets_0)
fs_net_cash_flow_0
sh_holder_avg_pct_3m_chng_0
ta_sma_20_0
list_board_0
"""
)

m9 = M.instruments.v2(
    start_date='2014-01-01',
    end_date='2017-12-26',
    market='CN_STOCK_A',
    instrument_list='',
    max_count=0
)

m10 = M.general_feature_extractor.v6(
    instruments=m9.data,
    features=m3.data,
    start_date='',
    end_date=''
)

m11 = M.derived_feature_extractor.v2(
    input_data=m10.data,
    features=m3.data,
    date_col='date',
    instrument_col='instrument'
)

m14 = M.dropnan.v1(
    input_data=m11.data
)

m15 = M.rolling_conf.v1(
    start_date='2012-01-01',
    end_date= '2017-12-26',
    rolling_update_days=91,
    rolling_min_days=730,
    rolling_max_days=0,
    rolling_count_for_live=1
)

m1 = M.instruments.v2(
    rolling_conf=m15.data,
    start_date='',
    end_date='',
    market='CN_STOCK_A',
    instrument_list='',
    max_count=0
)

m2 = M.advanced_auto_labeler.v2(
    instruments=m1.data,
    label_expr = """# #号开始的表示注释
# 0. 每行一个,顺序执行,从第二个开始,可以使用label字段
# 1. 可用数据字段见 https://bigquant.com/docs/data_history_data.html
# 添加benchmark_前缀,可使用对应的benchmark数据
# 2. 可用操作符和函数见 表达式引擎 <https://bigquant.com/docs/big_expr.html>_

# 计算收益: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)

where(st_status != 0, NaN, label)

# 过滤掉一字涨停的情况 (设置label为NaN,在后续处理和训练中会忽略NaN的label)
where(shift(high, -1) == shift(low, -1), NaN, label)
""",
    start_date='',
    end_date='',
    benchmark='000300.SHA',
    drop_na_label=True,
    cast_label_int=True
)

m4 = M.general_feature_extractor.v6(
    instruments=m1.data,
    features=m3.data,
    start_date='',
    end_date=''
)

m5 = M.derived_feature_extractor.v2(
    input_data=m4.data,
    features=m3.data,
    date_col='date',
    instrument_col='instrument'
)

m7 = M.join.v3(
    data1=m2.data,
    data2=m5.data,
    on='date,instrument',
    how='inner',
    sort=False
)

m13 = M.dropnan.v1(
    input_data=m7.data
)

m6 = M.stock_ranker_train.v5(
    training_ds=m13.data,
    features=m3.data,
    learning_algorithm='排序',
    number_of_leaves=30,
    minimum_docs_per_leaf=1000,
    number_of_trees=20,
    learning_rate=0.1,
    max_bins=1023,
    feature_fraction=1,
    m_lazy_run=True
)

m16 = M.rolling_run.v1(
    run=m6.m_lazy_run,
    input_list=m15.data,
    param_name='rolling_input'
)

m8 = M.stock_ranker_predict.v5(
    model=m16.data,
    data=m14.data,
    m_lazy_run=True
)

m17 = M.rolling_run_predict.v1(
    predict=m8.m_lazy_run,
    model_param_name='model',
    data_param_name='data'
)

# 回测引擎:每日数据处理函数,每天执行一次
def m12_handle_data_bigquant_run(context, data):
# 按日期过滤得到今日的预测数据
    ranker_prediction = context.ranker_prediction[
        context.ranker_prediction.date == data.current_dt.strftime('%Y-%m-%d')]

# 1. 资金分配
# 平均持仓时间是hold_days,每日都将买入股票,每日预期使用 1/hold_days 的资金
# 实际操作中,会存在一定的买入误差,所以在前hold_days天,等量使用资金;之后,尽量使用剩余资金(这里设置最多用等量的1.5倍)
    is_staging = context.trading_day_index < context.options['hold_days'] # 是否在建仓期间(前 hold_days 天)
    cash_avg = context.portfolio.portfolio_value / context.options['hold_days']
    cash_for_buy = min(context.portfolio.cash, (1 if is_staging else 1.5) * cash_avg)
    cash_for_sell = cash_avg - (context.portfolio.cash - cash_for_buy)
    positions = {e.symbol: p.amount * p.last_sale_price
             for e, p in context.perf_tracker.position_tracker.positions.items()}

# 2. 生成卖出订单:hold_days天之后才开始卖出;对持仓的股票,按StockRanker预测的排序末位淘汰
    if not is_staging and cash_for_sell > 0:
        equities = {e.symbol: e for e, p in context.perf_tracker.position_tracker.positions.items()}
        instruments = list(reversed(list(ranker_prediction.instrument[ranker_prediction.instrument.apply(
            lambda x: x in equities and not context.has_unfinished_sell_order(equities[x]))])))
    #print('rank order for sell %s' % instruments)
        for instrument in instruments:
            context.order_target(context.symbol(instrument), 0)
            cash_for_sell -= positions[instrument]
            if cash_for_sell <= 0:
                break

# 3. 生成买入订单:按StockRanker预测的排序,买入前面的stock_count只股票
    buy_cash_weights = context.stock_weights
    buy_instruments = list(ranker_prediction.instrument[:len(buy_cash_weights)])
    max_cash_per_instrument = context.portfolio.portfolio_value * context.max_cash_per_instrument
    for i, instrument in enumerate(buy_instruments):
        cash = cash_for_buy * buy_cash_weights[i]
        if cash > max_cash_per_instrument - positions.get(instrument, 0):
        # 确保股票持仓量不会超过每次股票最大的占用资金量
            cash = max_cash_per_instrument - positions.get(instrument, 0)
        if cash > 0:
            current_price = data.current(context.symbol(instrument), 'price')
            amount = math.floor(cash / current_price / 100) * 100
            context.order(context.symbol(instrument), amount)
#回测引擎:准备数据,只执行一次
def m12_prepare_bigquant_run(context):
    pass

#回测引擎:初始化函数,只执行一次
def m12_initialize_bigquant_run(context):
# 加载预测数据
    context.ranker_prediction = context.options['data'].read_df()

# 系统已经设置了默认的交易手续费和滑点,要修改手续费可使用如下函数
    context.set_commission(PerOrder(buy_cost=0.0003, sell_cost=0.0013, min_cost=5))
# 预测数据,通过options传入进来,使用 read_df 函数,加载到内存 (DataFrame)
# 设置买入的股票数量,这里买入预测股票列表排名靠前的5只
    stock_count = 5
# 每只的股票的权重,如下的权重分配会使得靠前的股票分配多一点的资金,[0.339160, 0.213986, 0.169580, ..]
    context.stock_weights = T.norm([1 / math.log(i + 2) for i in range(0, stock_count)])
# 设置每只股票占用的最大资金比例
    context.max_cash_per_instrument = 0.65
    context.options['hold_days'] = 5

m12 = M.trade.v3(
    instruments=m9.data,
    options_data=m17.predictions,
    start_date='',
    end_date='',
    handle_data=m12_handle_data_bigquant_run,
    prepare=m12_prepare_bigquant_run,
    initialize=m12_initialize_bigquant_run,
    volume_limit=0.025,
    order_price_field_buy='open',
    order_price_field_sell='close',
    capital_base=150000,
    benchmark='000300.SHA',
    auto_cancel_non_tradable_orders=True,
    data_frequency='daily',
    price_type='real',
    plot_charts=True,
    backtest_only=False
)
[2018-01-16 09:57:09.139792] INFO: bigquant: input_features.v1 开始运行..
[2018-01-16 09:57:09.144289] INFO: bigquant: 命中缓存
[2018-01-16 09:57:09.146379] INFO: bigquant: input_features.v1 运行完成[0.006606s].
[2018-01-16 09:57:09.153852] INFO: bigquant: instruments.v2 开始运行..
[2018-01-16 09:57:09.157817] INFO: bigquant: 命中缓存
[2018-01-16 09:57:09.159429] INFO: bigquant: instruments.v2 运行完成[0.005599s].
[2018-01-16 09:57:09.171350] INFO: bigquant: general_feature_extractor.v6 开始运行..
[2018-01-16 09:57:09.174961] INFO: bigquant: 命中缓存
[2018-01-16 09:57:09.176215] INFO: bigquant: general_feature_extractor.v6 运行完成[0.004823s].
[2018-01-16 09:57:09.185424] INFO: bigquant: derived_feature_extractor.v2 开始运行..
[2018-01-16 09:57:09.188445] INFO: bigquant: 命中缓存
[2018-01-16 09:57:09.189779] INFO: bigquant: derived_feature_extractor.v2 运行完成[0.004456s].
[2018-01-16 09:57:09.196653] INFO: bigquant: dropnan.v1 开始运行..
[2018-01-16 09:57:09.199544] INFO: bigquant: 命中缓存
[2018-01-16 09:57:09.200643] INFO: bigquant: dropnan.v1 运行完成[0.003991s].
[2018-01-16 09:57:09.208124] INFO: 滚动运行配置: 生成了 17 次滚动,第一次 {'end_date': '2013-12-30', 'start_date': '2012-01-01'},最后一次 {'end_date': '2017-12-25', 'start_date': '2012-01-01'}
[2018-01-16 09:57:09.224781] INFO: bigquant: instruments.v2 开始运行..
[2018-01-16 09:57:09.227679] INFO: bigquant: 命中缓存
[2018-01-16 09:57:09.229014] INFO: bigquant: instruments.v2 运行完成[0.004253s].
[2018-01-16 09:57:09.238645] INFO: bigquant: advanced_auto_labeler.v2 开始运行..
[2018-01-16 09:57:19.812249] INFO: 自动数据标注: 加载历史数据: 3641283 行
[2018-01-16 09:57:19.813991] INFO: 自动数据标注: 开始标注 ..
[2018-01-16 09:57:33.935839] INFO: bigquant: advanced_auto_labeler.v2 运行完成[24.697182s].
[2018-01-16 09:57:33.947144] INFO: bigquant: general_feature_extractor.v6 开始运行..
[2018-01-16 09:58:03.688658] INFO: 基础特征抽取: 年份 2012, 特征行数=565675
[2018-01-16 09:58:34.509571] INFO: 基础特征抽取: 年份 2013, 特征行数=564168
[2018-01-16 09:58:55.723051] INFO: 基础特征抽取: 年份 2014, 特征行数=569948
[2018-01-16 09:59:17.510900] INFO: 基础特征抽取: 年份 2015, 特征行数=569698
[2018-01-16 09:59:43.412089] INFO: 基础特征抽取: 年份 2016, 特征行数=641546
[2018-01-16 10:00:51.370307] INFO: 基础特征抽取: 年份 2017, 特征行数=730248
[2018-01-16 10:00:51.395601] INFO: 基础特征抽取: 总行数: 3641283
[2018-01-16 10:00:51.421766] INFO: bigquant: general_feature_extractor.v6 运行完成[197.474141s].
[2018-01-16 10:00:51.432444] INFO: bigquant: derived_feature_extractor.v2 开始运行..
[2018-01-16 10:01:03.148777] INFO: derived_feature_extractor: 提取完成 (fs_current_liabilities_0+fs_non_current_liabilities_0)/(fs_current_assets_0+fs_non_current_assets_0), 0.021s
[2018-01-16 10:01:03.172409] INFO: derived_feature_extractor: 提取完成 (volume_0+volume_1+volume_2+volume_3+volume_4)/5, 0.022s
[2018-01-16 10:01:03.189628] INFO: derived_feature_extractor: 提取完成 avg_amount_0/avg_amount_5, 0.016s
[2018-01-16 10:01:03.211542] INFO: derived_feature_extractor: 提取完成 avg_amount_5/avg_amount_20, 0.021s
[2018-01-16 10:01:03.229280] INFO: derived_feature_extractor: 提取完成 rank_avg_amount_0/rank_avg_amount_5, 0.016s
[2018-01-16 10:01:03.329965] INFO: derived_feature_extractor: 提取完成 rank_avg_amount_5/rank_avg_amount_10, 0.099s
[2018-01-16 10:01:03.510664] INFO: derived_feature_extractor: 提取完成 rank_return_0/rank_return_5, 0.179s
[2018-01-16 10:01:03.695795] INFO: derived_feature_extractor: 提取完成 rank_return_5/rank_return_10, 0.183s
[2018-01-16 10:01:17.249466] INFO: derived_feature_extractor: /y_2012, 565675
[2018-01-16 10:01:20.240231] INFO: derived_feature_extractor: /y_2013, 564168
[2018-01-16 10:01:23.478839] INFO: derived_feature_extractor: /y_2014, 569948
[2018-01-16 10:01:28.157681] INFO: derived_feature_extractor: /y_2015, 569698
[2018-01-16 10:01:32.738990] INFO: derived_feature_extractor: /y_2016, 641546
[2018-01-16 10:01:38.703634] INFO: derived_feature_extractor: /y_2017, 730248
[2018-01-16 10:01:48.322199] INFO: bigquant: derived_feature_extractor.v2 运行完成[56.889779s].
[2018-01-16 10:01:48.338170] INFO: bigquant: join.v3 开始运行..
[2018-01-16 10:02:03.801156] INFO: join: /y_2012, 行数=540654/565675, 耗时=10.951423s
[2018-01-16 10:02:16.134919] INFO: join: /y_2013, 行数=550031/564168, 耗时=12.305309s
[2018-01-16 10:02:27.088562] INFO: join: /y_2014, 行数=559265/569948, 耗时=10.924633s
[2018-01-16 10:02:38.749735] INFO: join: /y_2015, 行数=552424/569698, 耗时=11.630849s
[2018-01-16 10:02:49.589919] INFO: join: /y_2016, 行数=626749/641546, 耗时=10.810834s
[2018-01-16 10:03:04.170075] INFO: join: /y_2017, 行数=696520/730248, 耗时=14.554782s
[2018-01-16 10:03:04.334301] INFO: join: 最终行数: 3525643
[2018-01-16 10:03:04.336437] INFO: bigquant: join.v3 运行完成[75.998335s].
[2018-01-16 10:03:04.344805] INFO: bigquant: dropnan.v1 开始运行..
[2018-01-16 10:03:05.544551] INFO: dropnan: /y_2012, 472020/540654
[2018-01-16 10:03:07.264905] INFO: dropnan: /y_2013, 502820/550031
[2018-01-16 10:03:08.918525] INFO: dropnan: /y_2014, 510982/559265
[2018-01-16 10:03:11.392355] INFO: dropnan: /y_2015, 502868/552424
[2018-01-16 10:03:14.331487] INFO: dropnan: /y_2016, 582581/626749
[2018-01-16 10:03:18.811156] INFO: dropnan: /y_2017, 626810/696520
[2018-01-16 10:03:18.830753] INFO: dropnan: 行数: 3198081/3525643
[2018-01-16 10:03:18.877790] INFO: bigquant: dropnan.v1 运行完成[14.53292s].
[2018-01-16 10:03:18.893609] INFO: bigquant: 延迟运行 stock_ranker_train.v5
[2018-01-16 10:03:18.908593] INFO: bigquant: rolling_run.v1 开始运行..
[2018-01-16 10:03:18.927428] INFO: bigquant: stock_ranker_train.v5 开始运行..
[2018-01-16 10:03:29.674497] INFO: df2bin: prepare bins ..
[2018-01-16 10:03:31.448215] INFO: df2bin: prepare data: training ..
[2018-01-16 10:04:12.295981] INFO: df2bin: sort ..
[2018-01-16 10:04:28.742216] INFO: stock_ranker_train: 6c07d558 准备训练: 972740 行数
[2018-01-16 10:06:28.506246] INFO: bigquant: stock_ranker_train.v5 运行完成[189.578809s].
[2018-01-16 10:06:28.517241] INFO: bigquant: stock_ranker_train.v5 开始运行..
[2018-01-16 10:06:43.917207] INFO: df2bin: prepare bins ..
[2018-01-16 10:06:45.908562] INFO: df2bin: prepare data: training ..
[2018-01-16 10:07:42.312062] INFO: df2bin: sort ..
[2018-01-16 10:08:02.549640] INFO: stock_ranker_train: dd09024a 准备训练: 1096146 行数
[2018-01-16 10:09:55.334289] INFO: bigquant: stock_ranker_train.v5 运行完成[206.81701s].
[2018-01-16 10:09:55.344506] INFO: bigquant: stock_ranker_train.v5 开始运行..
[2018-01-16 10:10:08.824570] INFO: df2bin: prepare bins ..
[2018-01-16 10:10:11.080122] INFO: df2bin: prepare data: training ..
[2018-01-16 10:10:19.490794] INFO: df2bin: sort ..
[2018-01-16 10:10:39.450493] INFO: stock_ranker_train: 5851f9d4 准备训练: 1223743 行数
[2018-01-16 10:12:37.423896] INFO: bigquant: stock_ranker_train.v5 运行完成[162.079391s].
[2018-01-16 10:12:37.434813] INFO: bigquant: stock_ranker_train.v5 开始运行..
[2018-01-16 10:12:44.578495] INFO: df2bin: prepare bins ..
[2018-01-16 10:12:47.421073] INFO: df2bin: prepare data: training ..
[2018-01-16 10:12:57.092081] INFO: df2bin: sort ..
[2018-01-16 10:13:20.403316] INFO: stock_ranker_train: b8ed5b08 准备训练: 1357289 行数
[2018-01-16 10:14:43.319550] INFO: bigquant: stock_ranker_train.v5 运行完成[125.884628s].
[2018-01-16 10:14:43.331596] INFO: bigquant: stock_ranker_train.v5 开始运行..
[2018-01-16 10:14:55.438726] INFO: df2bin: prepare bins ..
[2018-01-16 10:14:58.229155] INFO: df2bin: prepare data: training ..
[2018-01-16 10:15:34.908041] INFO: df2bin: sort ..
[2018-01-16 10:16:01.519068] INFO: stock_ranker_train: 03f7a46e 准备训练: 1481679 行数
[2018-01-16 10:17:27.748766] INFO: bigquant: stock_ranker_train.v5 运行完成[164.417173s].
[2018-01-16 10:17:27.761957] INFO: bigquant: stock_ranker_train.v5 开始运行..
[2018-01-16 10:17:41.503556] INFO: df2bin: prepare bins ..
[2018-01-16 10:17:44.639877] INFO: df2bin: prepare data: training ..
[2018-01-16 10:18:05.593514] INFO: df2bin: sort ..
[2018-01-16 10:18:30.917492] INFO: stock_ranker_train: 65f9b2c4 准备训练: 1601079 行数
[2018-01-16 10:19:54.528530] INFO: bigquant: stock_ranker_train.v5 运行完成[146.76657s].
[2018-01-16 10:19:54.539143] INFO: bigquant: stock_ranker_train.v5 开始运行..
[2018-01-16 10:20:09.275881] INFO: df2bin: prepare bins ..
[2018-01-16 10:20:12.469059] INFO: df2bin: prepare data: training ..
[2018-01-16 10:21:00.723915] INFO: df2bin: sort ..
[2018-01-16 10:21:34.227769] INFO: stock_ranker_train: bd78817e 准备训练: 1728811 行数
[2018-01-16 10:23:02.277190] INFO: bigquant: stock_ranker_train.v5 运行完成[187.738029s].
[2018-01-16 10:23:02.287945] INFO: bigquant: stock_ranker_train.v5 开始运行..
[2018-01-16 10:23:25.133787] INFO: df2bin: prepare bins ..
[2018-01-16 10:23:28.685811] INFO: df2bin: prepare data: training ..
[2018-01-16 10:24:18.640381] INFO: df2bin: sort ..
[2018-01-16 10:24:50.526552] INFO: stock_ranker_train: 2d5e6a12 准备训练: 1848782 行数
[2018-01-16 10:26:21.455136] INFO: bigquant: stock_ranker_train.v5 运行完成[199.167158s].
[2018-01-16 10:26:21.465114] INFO: bigquant: stock_ranker_train.v5 开始运行..
[2018-01-16 10:26:37.564537] INFO: df2bin: prepare bins ..
[2018-01-16 10:26:41.294609] INFO: df2bin: prepare data: training ..
[2018-01-16 10:27:49.719639] INFO: df2bin: sort ..
[2018-01-16 10:28:27.268416] INFO: stock_ranker_train: a4165c32 准备训练: 1981723 行数
[2018-01-16 10:30:01.728547] INFO: bigquant: stock_ranker_train.v5 运行完成[220.2634s].
[2018-01-16 10:30:01.740657] INFO: bigquant: stock_ranker_train.v5 开始运行..
[2018-01-16 10:30:23.325935] INFO: df2bin: prepare bins ..
[2018-01-16 10:30:27.263357] INFO: df2bin: prepare data: training ..
[2018-01-16 10:31:42.703411] INFO: df2bin: sort ..
[2018-01-16 10:32:18.572220] INFO: stock_ranker_train: 2761b474 准备训练: 2119187 行数
[2018-01-16 10:33:53.284461] INFO: bigquant: stock_ranker_train.v5 运行完成[231.543799s].
[2018-01-16 10:33:53.312130] INFO: bigquant: stock_ranker_train.v5 开始运行..
[2018-01-16 10:34:13.974155] INFO: df2bin: prepare bins ..
[2018-01-16 10:34:18.315434] INFO: df2bin: prepare data: training ..
[2018-01-16 10:35:48.420623] INFO: df2bin: sort ..
[2018-01-16 10:36:33.618408] INFO: stock_ranker_train: b168b136 准备训练: 2261480 行数
[2018-01-16 10:38:10.756730] INFO: bigquant: stock_ranker_train.v5 运行完成[257.4446s].
[2018-01-16 10:38:10.768171] INFO: bigquant: stock_ranker_train.v5 开始运行..
[2018-01-16 10:38:36.021072] INFO: df2bin: prepare bins ..
[2018-01-16 10:38:40.622582] INFO: df2bin: prepare data: training ..
[2018-01-16 10:39:53.365655] INFO: df2bin: sort ..
[2018-01-16 10:40:39.119424] INFO: stock_ranker_train: 4add4fac 准备训练: 2413294 行数
[2018-01-16 10:42:23.598417] INFO: bigquant: stock_ranker_train.v5 运行完成[252.830236s].
[2018-01-16 10:42:23.610539] INFO: bigquant: stock_ranker_train.v5 开始运行..
[2018-01-16 10:42:47.282121] INFO: df2bin: prepare bins ..
[2018-01-16 10:42:52.148193] INFO: df2bin: prepare data: training ..
[2018-01-16 10:44:51.463239] INFO: df2bin: sort ..
[2018-01-16 10:45:46.074885] INFO: stock_ranker_train: e191fb32 准备训练: 2561320 行数
[2018-01-16 10:47:55.423164] INFO: bigquant: stock_ranker_train.v5 运行完成[331.812606s].
[2018-01-16 10:47:55.435388] INFO: bigquant: stock_ranker_train.v5 开始运行..
[2018-01-16 10:48:28.039772] INFO: df2bin: prepare bins ..
[2018-01-16 10:48:33.418287] INFO: df2bin: prepare data: training ..
[2018-01-16 10:50:15.264238] INFO: df2bin: sort ..
[2018-01-16 10:51:04.297008] INFO: stock_ranker_train: a75aa0a8 准备训练: 2708016 行数
[2018-01-16 10:52:50.482343] INFO: bigquant: stock_ranker_train.v5 运行完成[295.046975s].
[2018-01-16 10:52:50.492332] INFO: bigquant: stock_ranker_train.v5 开始运行..
[2018-01-16 10:53:22.054326] INFO: df2bin: prepare bins ..
[2018-01-16 10:53:28.739872] INFO: df2bin: prepare data: training ..
[2018-01-16 10:55:33.786619] INFO: df2bin: sort ..
[2018-01-16 10:56:27.110341] INFO: stock_ranker_train: 57389e3a 准备训练: 2864814 行数
[2018-01-16 10:58:23.271217] INFO: bigquant: stock_ranker_train.v5 运行完成[332.778835s].
[2018-01-16 10:58:23.282960] INFO: bigquant: stock_ranker_train.v5 开始运行..
[2018-01-16 10:59:04.849492] INFO: df2bin: prepare bins ..
[2018-01-16 10:59:11.305743] INFO: df2bin: prepare data: training ..
[2018-01-16 11:03:25.727054] INFO: df2bin: sort ..
[2018-01-16 11:04:43.278687] INFO: stock_ranker_train: 1d94833c 准备训练: 3040964 行数
[2018-01-16 11:06:48.075775] INFO: bigquant: stock_ranker_train.v5 运行完成[504.792758s].
[2018-01-16 11:06:48.089145] INFO: bigquant: stock_ranker_train.v5 开始运行..
[2018-01-16 11:07:29.962578] INFO: df2bin: prepare bins ..
[2018-01-16 11:07:36.740261] INFO: df2bin: prepare data: training ..
[2018-01-16 11:09:59.527039] INFO: df2bin: sort ..
[2018-01-16 11:11:07.909827] INFO: stock_ranker_train: 4a77efdc 准备训练: 3198081 行数
[2018-01-16 11:13:44.868656] INFO: bigquant: stock_ranker_train.v5 运行完成[416.779479s].
[2018-01-16 11:13:44.965569] INFO: bigquant: rolling_run.v1 运行完成[4226.056969s].
[2018-01-16 11:13:44.979535] INFO: bigquant: 延迟运行 stock_ranker_predict.v5
[2018-01-16 11:13:44.993458] INFO: bigquant: rolling_run_predict.v1 开始运行..
[2018-01-16 11:13:45.001123] INFO: 滚动预测: 滚动预测 ..
[2018-01-16 11:13:45.014398] INFO: bigquant: filter.v3 开始运行..
[2018-01-16 11:13:45.018321] INFO: filter: 使用表达式 "2013-12-31" <= date <= "2014-03-31" 过滤
[2018-01-16 11:13:46.896869] INFO: filter: 过滤 /y_2014, 123049/519276
[2018-01-16 11:13:49.046190] INFO: filter: 过滤 /y_2015, 0/514882
[2018-01-16 11:13:50.469725] INFO: filter: 过滤 /y_2016, 0/592277
[2018-01-16 11:13:52.253144] INFO: filter: 过滤 /y_2017, 0/655962
[2018-01-16 11:13:52.267448] INFO: bigquant: filter.v3 运行完成[7.253019s].
[2018-01-16 11:13:52.268916] INFO: 滚动预测: 预测数据 [2013-12-31, 2014-03-31], 共123049行,对应模型的训练数据 [2012-01-01, 2013-12-30]
[2018-01-16 11:13:52.277682] INFO: bigquant: filter.v3 开始运行..
[2018-01-16 11:13:52.282755] INFO: filter: 使用表达式 "2014-04-01" <= date <= "2014-06-30" 过滤
[2018-01-16 11:13:53.001894] INFO: filter: 过滤 /y_2014, 129739/519276
[2018-01-16 11:13:53.163874] INFO: filter: 过滤 /y_2015, 0/514882
[2018-01-16 11:13:53.344235] INFO: filter: 过滤 /y_2016, 0/592277
[2018-01-16 11:13:54.101642] INFO: filter: 过滤 /y_2017, 0/655962
[2018-01-16 11:13:54.122904] INFO: bigquant: filter.v3 运行完成[1.845506s].
[2018-01-16 11:13:54.124092] INFO: 滚动预测: 预测数据 [2014-04-01, 2014-06-30], 共129739行,对应模型的训练数据 [2012-01-01, 2014-03-31]
[2018-01-16 11:13:54.132115] INFO: bigquant: filter.v3 开始运行..
[2018-01-16 11:13:54.136600] INFO: filter: 使用表达式 "2014-07-01" <= date <= "2014-09-29" 过滤
[2018-01-16 11:13:55.073148] INFO: filter: 过滤 /y_2014, 135862/519276
[2018-01-16 11:13:55.306108] INFO: filter: 过滤 /y_2015, 0/514882
[2018-01-16 11:13:55.480077] INFO: filter: 过滤 /y_2016, 0/592277
[2018-01-16 11:13:56.231402] INFO: filter: 过滤 /y_2017, 0/655962
[2018-01-16 11:13:56.244626] INFO: bigquant: filter.v3 运行完成[2.112507s].
[2018-01-16 11:13:56.245875] INFO: 滚动预测: 预测数据 [2014-07-01, 2014-09-29], 共135862行,对应模型的训练数据 [2012-01-01, 2014-06-30]
[2018-01-16 11:13:56.254436] INFO: bigquant: filter.v3 开始运行..
[2018-01-16 11:13:56.259245] INFO: filter: 使用表达式 "2014-09-30" <= date <= "2014-12-29" 过滤
[2018-01-16 11:13:56.552342] INFO: filter: 过滤 /y_2014, 126413/519276
[2018-01-16 11:13:56.712038] INFO: filter: 过滤 /y_2015, 0/514882
[2018-01-16 11:13:56.884210] INFO: filter: 过滤 /y_2016, 0/592277
[2018-01-16 11:13:57.851363] INFO: filter: 过滤 /y_2017, 0/655962
[2018-01-16 11:13:57.864023] INFO: bigquant: filter.v3 运行完成[1.609524s].
[2018-01-16 11:13:57.865762] INFO: 滚动预测: 预测数据 [2014-09-30, 2014-12-29], 共126413行,对应模型的训练数据 [2012-01-01, 2014-09-29]
[2018-01-16 11:13:57.875532] INFO: bigquant: filter.v3 开始运行..
[2018-01-16 11:13:57.880434] INFO: filter: 使用表达式 "2014-12-30" <= date <= "2015-03-30" 过滤
[2018-01-16 11:13:58.586666] INFO: filter: 过滤 /y_2014, 4213/519276
[2018-01-16 11:13:58.811756] INFO: filter: 过滤 /y_2015, 117246/514882
[2018-01-16 11:13:59.500564] INFO: filter: 过滤 /y_2016, 0/592277
[2018-01-16 11:13:59.692467] INFO: filter: 过滤 /y_2017, 0/655962
[2018-01-16 11:13:59.706502] INFO: bigquant: filter.v3 运行完成[1.830932s].
[2018-01-16 11:13:59.708146] INFO: 滚动预测: 预测数据 [2014-12-30, 2015-03-30], 共121459行,对应模型的训练数据 [2012-01-01, 2014-12-29]
[2018-01-16 11:13:59.718197] INFO: bigquant: filter.v3 开始运行..
[2018-01-16 11:13:59.722274] INFO: filter: 使用表达式 "2015-03-31" <= date <= "2015-06-29" 过滤
[2018-01-16 11:14:00.390423] INFO: filter: 过滤 /y_2014, 0/519276
[2018-01-16 11:14:00.619558] INFO: filter: 过滤 /y_2015, 130848/514882
[2018-01-16 11:14:01.339936] INFO: filter: 过滤 /y_2016, 0/592277
[2018-01-16 11:14:02.112556] INFO: filter: 过滤 /y_2017, 0/655962
[2018-01-16 11:14:02.123614] INFO: bigquant: filter.v3 运行完成[2.405416s].
[2018-01-16 11:14:02.125021] INFO: 滚动预测: 预测数据 [2015-03-31, 2015-06-29], 共130848行,对应模型的训练数据 [2012-01-01, 2015-03-30]
[2018-01-16 11:14:02.135228] INFO: bigquant: filter.v3 开始运行..
[2018-01-16 11:14:02.140114] INFO: filter: 使用表达式 "2015-06-30" <= date <= "2015-09-28" 过滤
[2018-01-16 11:14:02.435466] INFO: filter: 过滤 /y_2014, 0/519276
[2018-01-16 11:14:03.396560] INFO: filter: 过滤 /y_2015, 124372/514882
[2018-01-16 11:14:04.555999] INFO: filter: 过滤 /y_2016, 0/592277
[2018-01-16 11:14:05.676599] INFO: filter: 过滤 /y_2017, 0/655962
[2018-01-16 11:14:05.691057] INFO: bigquant: filter.v3 运行完成[3.555807s].
[2018-01-16 11:14:05.692147] INFO: 滚动预测: 预测数据 [2015-06-30, 2015-09-28], 共124372行,对应模型的训练数据 [2012-01-01, 2015-06-29]
[2018-01-16 11:14:05.700472] INFO: bigquant: filter.v3 开始运行..
[2018-01-16 11:14:05.703717] INFO: filter: 使用表达式 "2015-09-29" <= date <= "2015-12-28" 过滤
[2018-01-16 11:14:06.348941] INFO: filter: 过滤 /y_2014, 0/519276
[2018-01-16 11:14:07.010542] INFO: filter: 过滤 /y_2015, 135336/514882
[2018-01-16 11:14:07.832680] INFO: filter: 过滤 /y_2016, 0/592277
[2018-01-16 11:14:08.676006] INFO: filter: 过滤 /y_2017, 0/655962
[2018-01-16 11:14:08.687278] INFO: bigquant: filter.v3 运行完成[2.98678s].
[2018-01-16 11:14:08.688433] INFO: 滚动预测: 预测数据 [2015-09-29, 2015-12-28], 共135336行,对应模型的训练数据 [2012-01-01, 2015-09-28]
[2018-01-16 11:14:08.695899] INFO: bigquant: filter.v3 开始运行..
[2018-01-16 11:14:08.699513] INFO: filter: 使用表达式 "2015-12-29" <= date <= "2016-03-28" 过滤
[2018-01-16 11:14:09.355933] INFO: filter: 过滤 /y_2014, 0/519276
[2018-01-16 11:14:09.951108] INFO: filter: 过滤 /y_2015, 7080/514882
[2018-01-16 11:14:10.899518] INFO: filter: 过滤 /y_2016, 132531/592277
[2018-01-16 11:14:11.663349] INFO: filter: 过滤 /y_2017, 0/655962
[2018-01-16 11:14:11.678657] INFO: bigquant: filter.v3 运行完成[2.982723s].
[2018-01-16 11:14:11.680104] INFO: 滚动预测: 预测数据 [2015-12-29, 2016-03-28], 共139611行,对应模型的训练数据 [2012-01-01, 2015-12-28]
[2018-01-16 11:14:11.687976] INFO: bigquant: filter.v3 开始运行..
[2018-01-16 11:14:11.704733] INFO: filter: 使用表达式 "2016-03-29" <= date <= "2016-06-27" 过滤
[2018-01-16 11:14:11.920127] INFO: filter: 过滤 /y_2014, 0/519276
[2018-01-16 11:14:12.064531] INFO: filter: 过滤 /y_2015, 0/514882
[2018-01-16 11:14:12.846283] INFO: filter: 过滤 /y_2016, 144497/592277
[2018-01-16 11:14:13.652495] INFO: filter: 过滤 /y_2017, 0/655962
[2018-01-16 11:14:13.664859] INFO: bigquant: filter.v3 运行完成[1.97688s].
[2018-01-16 11:14:13.666146] INFO: 滚动预测: 预测数据 [2016-03-29, 2016-06-27], 共144497行,对应模型的训练数据 [2012-01-01, 2016-03-28]
[2018-01-16 11:14:13.674229] INFO: bigquant: filter.v3 开始运行..
[2018-01-16 11:14:13.678700] INFO: filter: 使用表达式 "2016-06-28" <= date <= "2016-09-26" 过滤
[2018-01-16 11:14:13.935456] INFO: filter: 过滤 /y_2014, 0/519276
[2018-01-16 11:14:14.132202] INFO: filter: 过滤 /y_2015, 0/514882
[2018-01-16 11:14:15.181261] INFO: filter: 过滤 /y_2016, 154465/592277
[2018-01-16 11:14:15.957250] INFO: filter: 过滤 /y_2017, 0/655962
[2018-01-16 11:14:15.970185] INFO: bigquant: filter.v3 运行完成[2.295945s].
[2018-01-16 11:14:15.971232] INFO: 滚动预测: 预测数据 [2016-06-28, 2016-09-26], 共154465行,对应模型的训练数据 [2012-01-01, 2016-06-27]
[2018-01-16 11:14:15.983327] INFO: bigquant: filter.v3 开始运行..
[2018-01-16 11:14:15.987693] INFO: filter: 使用表达式 "2016-09-27" <= date <= "2016-12-26" 过滤
[2018-01-16 11:14:16.610116] INFO: filter: 过滤 /y_2014, 0/519276
[2018-01-16 11:14:16.763232] INFO: filter: 过滤 /y_2015, 0/514882
[2018-01-16 11:14:17.534596] INFO: filter: 过滤 /y_2016, 150651/592277
[2018-01-16 11:14:18.310894] INFO: filter: 过滤 /y_2017, 0/655962
[2018-01-16 11:14:18.322592] INFO: bigquant: filter.v3 运行完成[2.339272s].
[2018-01-16 11:14:18.323624] INFO: 滚动预测: 预测数据 [2016-09-27, 2016-12-26], 共150651行,对应模型的训练数据 [2012-01-01, 2016-09-26]
[2018-01-16 11:14:18.332088] INFO: bigquant: filter.v3 开始运行..
[2018-01-16 11:14:18.336298] INFO: filter: 使用表达式 "2016-12-27" <= date <= "2017-03-27" 过滤
[2018-01-16 11:14:18.986477] INFO: filter: 过滤 /y_2014, 0/519276
[2018-01-16 11:14:19.136330] INFO: filter: 过滤 /y_2015, 0/514882
[2018-01-16 11:14:19.874616] INFO: filter: 过滤 /y_2016, 10133/592277
[2018-01-16 11:14:20.719577] INFO: filter: 过滤 /y_2017, 139224/655962
[2018-01-16 11:14:20.738804] INFO: bigquant: filter.v3 运行完成[2.406654s].
[2018-01-16 11:14:20.740054] INFO: 滚动预测: 预测数据 [2016-12-27, 2017-03-27], 共149357行,对应模型的训练数据 [2012-01-01, 2016-12-26]
[2018-01-16 11:14:20.749165] INFO: bigquant: filter.v3 开始运行..
[2018-01-16 11:14:20.755405] INFO: filter: 使用表达式 "2017-03-28" <= date <= "2017-06-26" 过滤
[2018-01-16 11:14:21.418747] INFO: filter: 过滤 /y_2014, 0/519276
[2018-01-16 11:14:21.573994] INFO: filter: 过滤 /y_2015, 0/514882
[2018-01-16 11:14:22.274560] INFO: filter: 过滤 /y_2016, 0/592277
[2018-01-16 11:14:23.332393] INFO: filter: 过滤 /y_2017, 159561/655962
[2018-01-16 11:14:23.345885] INFO: bigquant: filter.v3 运行完成[2.596683s].
[2018-01-16 11:14:23.347086] INFO: 滚动预测: 预测数据 [2017-03-28, 2017-06-26], 共159561行,对应模型的训练数据 [2012-01-01, 2017-03-27]
[2018-01-16 11:14:23.358119] INFO: bigquant: filter.v3 开始运行..
[2018-01-16 11:14:23.363701] INFO: filter: 使用表达式 "2017-06-27" <= date <= "2017-09-25" 过滤
[2018-01-16 11:14:24.251968] INFO: filter: 过滤 /y_2014, 0/519276
[2018-01-16 11:14:24.454268] INFO: filter: 过滤 /y_2015, 0/514882
[2018-01-16 11:14:25.416199] INFO: filter: 过滤 /y_2016, 0/592277
[2018-01-16 11:14:27.136965] INFO: filter: 过滤 /y_2017, 179160/655962
[2018-01-16 11:14:27.154272] INFO: bigquant: filter.v3 运行完成[3.796169s].
[2018-01-16 11:14:27.155438] INFO: 滚动预测: 预测数据 [2017-06-27, 2017-09-25], 共179160行,对应模型的训练数据 [2012-01-01, 2017-06-26]
[2018-01-16 11:14:27.163406] INFO: bigquant: filter.v3 开始运行..
[2018-01-16 11:14:27.168324] INFO: filter: 使用表达式 "2017-09-26" <= date <= "2017-12-25" 过滤
[2018-01-16 11:14:27.345057] INFO: filter: 过滤 /y_2014, 0/519276
[2018-01-16 11:14:27.499164] INFO: filter: 过滤 /y_2015, 0/514882
[2018-01-16 11:14:28.164661] INFO: filter: 过滤 /y_2016, 0/592277
[2018-01-16 11:14:29.061246] INFO: filter: 过滤 /y_2017, 175075/655962
[2018-01-16 11:14:29.075853] INFO: bigquant: filter.v3 运行完成[1.912436s].
[2018-01-16 11:14:29.077151] INFO: 滚动预测: 预测数据 [2017-09-26, 2017-12-25], 共175075行,对应模型的训练数据 [2012-01-01, 2017-09-25]
[2018-01-16 11:14:29.084938] INFO: bigquant: filter.v3 开始运行..
[2018-01-16 11:14:29.088820] INFO: filter: 使用表达式 "2017-12-26" <= date 过滤
[2018-01-16 11:14:29.276432] INFO: filter: 过滤 /y_2014, 0/519276
[2018-01-16 11:14:29.420386] INFO: filter: 过滤 /y_2015, 0/514882
[2018-01-16 11:14:30.153506] INFO: filter: 过滤 /y_2016, 0/592277
[2018-01-16 11:14:30.943575] INFO: filter: 过滤 /y_2017, 2942/655962
[2018-01-16 11:14:30.953742] INFO: bigquant: filter.v3 运行完成[1.868784s].
[2018-01-16 11:14:30.955189] INFO: 滚动预测: 预测数据 [2017-12-26, None], 共2942行,对应模型的训练数据 [2012-01-01, 2017-12-25]
[2018-01-16 11:14:30.963737] INFO: bigquant: rolling_run.v1 开始运行..
[2018-01-16 11:14:30.980009] INFO: bigquant: stock_ranker_predict.v5 开始运行..
[2018-01-16 11:14:31.207507] INFO: df2bin: prepare data: prediction ..
[2018-01-16 11:14:33.780013] INFO: stock_ranker_predict: 准备预测: 123049 行
[2018-01-16 11:14:35.579629] INFO: bigquant: stock_ranker_predict.v5 运行完成[4.599602s].
[2018-01-16 11:14:35.589746] INFO: bigquant: stock_ranker_predict.v5 开始运行..
[2018-01-16 11:14:35.804785] INFO: df2bin: prepare data: prediction ..
[2018-01-16 11:14:38.298649] INFO: stock_ranker_predict: 准备预测: 129739 行
[2018-01-16 11:14:40.271690] INFO: bigquant: stock_ranker_predict.v5 运行完成[4.68193s].
[2018-01-16 11:14:40.283230] INFO: bigquant: stock_ranker_predict.v5 开始运行..
[2018-01-16 11:14:40.527264] INFO: df2bin: prepare data: prediction ..
[2018-01-16 11:14:43.391786] INFO: stock_ranker_predict: 准备预测: 135862 行
[2018-01-16 11:14:45.455956] INFO: bigquant: stock_ranker_predict.v5 运行完成[5.172682s].
[2018-01-16 11:14:45.482636] INFO: bigquant: stock_ranker_predict.v5 开始运行..
[2018-01-16 11:14:45.737462] INFO: df2bin: prepare data: prediction ..
[2018-01-16 11:14:48.417112] INFO: stock_ranker_predict: 准备预测: 126413 行
[2018-01-16 11:14:50.403624] INFO: bigquant: stock_ranker_predict.v5 运行完成[4.920969s].
[2018-01-16 11:14:50.415852] INFO: bigquant: stock_ranker_predict.v5 开始运行..
[2018-01-16 11:14:50.673050] INFO: df2bin: prepare data: prediction ..
[2018-01-16 11:14:53.208025] INFO: stock_ranker_predict: 准备预测: 121459 行
[2018-01-16 11:14:55.153973] INFO: bigquant: stock_ranker_predict.v5 运行完成[4.73808s].
[2018-01-16 11:14:55.167783] INFO: bigquant: stock_ranker_predict.v5 开始运行..
[2018-01-16 11:14:55.457121] INFO: df2bin: prepare data: prediction ..
[2018-01-16 11:14:58.592929] INFO: stock_ranker_predict: 准备预测: 130848 行
[2018-01-16 11:15:00.610050] INFO: bigquant: stock_ranker_predict.v5 运行完成[5.442244s].
[2018-01-16 11:15:00.621700] INFO: bigquant: stock_ranker_predict.v5 开始运行..
[2018-01-16 11:15:00.851225] INFO: df2bin: prepare data: prediction ..
[2018-01-16 11:15:03.675229] INFO: stock_ranker_predict: 准备预测: 124372 行
[2018-01-16 11:15:05.674070] INFO: bigquant: stock_ranker_predict.v5 运行完成[5.052324s].
[2018-01-16 11:15:05.686437] INFO: bigquant: stock_ranker_predict.v5 开始运行..
[2018-01-16 11:15:05.900215] INFO: df2bin: prepare data: prediction ..
[2018-01-16 11:15:08.448534] INFO: stock_ranker_predict: 准备预测: 135336 行
[2018-01-16 11:15:10.429846] INFO: bigquant: stock_ranker_predict.v5 运行完成[4.743398s].
[2018-01-16 11:15:10.439389] INFO: bigquant: stock_ranker_predict.v5 开始运行..
[2018-01-16 11:15:10.682539] INFO: df2bin: prepare data: prediction ..
[2018-01-16 11:15:14.301214] INFO: stock_ranker_predict: 准备预测: 139611 行
[2018-01-16 11:15:16.473878] INFO: bigquant: stock_ranker_predict.v5 运行完成[6.034407s].
[2018-01-16 11:15:16.487090] INFO: bigquant: stock_ranker_predict.v5 开始运行..
[2018-01-16 11:15:16.773864] INFO: df2bin: prepare data: prediction ..
[2018-01-16 11:15:19.908242] INFO: stock_ranker_predict: 准备预测: 144497 行
[2018-01-16 11:15:21.986326] INFO: bigquant: stock_ranker_predict.v5 运行完成[5.499212s].
[2018-01-16 11:15:21.998422] INFO: bigquant: stock_ranker_predict.v5 开始运行..
[2018-01-16 11:15:22.271085] INFO: df2bin: prepare data: prediction ..
[2018-01-16 11:15:25.684441] INFO: stock_ranker_predict: 准备预测: 154465 行
[2018-01-16 11:15:28.103294] INFO: bigquant: stock_ranker_predict.v5 运行完成[6.104864s].
[2018-01-16 11:15:28.116763] INFO: bigquant: stock_ranker_predict.v5 开始运行..
[2018-01-16 11:15:28.392024] INFO: df2bin: prepare data: prediction ..
[2018-01-16 11:15:31.702771] INFO: stock_ranker_predict: 准备预测: 150651 行
[2018-01-16 11:15:33.735775] INFO: bigquant: stock_ranker_predict.v5 运行完成[5.618997s].
[2018-01-16 11:15:33.747537] INFO: bigquant: stock_ranker_predict.v5 开始运行..
[2018-01-16 11:15:33.993896] INFO: df2bin: prepare data: prediction ..
[2018-01-16 11:15:36.729825] INFO: stock_ranker_predict: 准备预测: 149357 行
[2018-01-16 11:15:38.651164] INFO: bigquant: stock_ranker_predict.v5 运行完成[4.90363s].
[2018-01-16 11:15:38.660318] INFO: bigquant: stock_ranker_predict.v5 开始运行..
[2018-01-16 11:15:38.908972] INFO: df2bin: prepare data: prediction ..
[2018-01-16 11:15:41.712678] INFO: stock_ranker_predict: 准备预测: 159561 行
[2018-01-16 11:15:43.573643] INFO: bigquant: stock_ranker_predict.v5 运行完成[4.912969s].
[2018-01-16 11:15:43.582821] INFO: bigquant: stock_ranker_predict.v5 开始运行..
[2018-01-16 11:15:43.845636] INFO: df2bin: prepare data: prediction ..
[2018-01-16 11:15:46.932423] INFO: stock_ranker_predict: 准备预测: 179160 行
[2018-01-16 11:15:48.957831] INFO: bigquant: stock_ranker_predict.v5 运行完成[5.374961s].
[2018-01-16 11:15:48.967296] INFO: bigquant: stock_ranker_predict.v5 开始运行..
[2018-01-16 11:15:49.211697] INFO: df2bin: prepare data: prediction ..
[2018-01-16 11:15:52.139468] INFO: stock_ranker_predict: 准备预测: 175075 行
[2018-01-16 11:15:54.533950] INFO: bigquant: stock_ranker_predict.v5 运行完成[5.566605s].
[2018-01-16 11:15:54.543593] INFO: bigquant: stock_ranker_predict.v5 开始运行..
[2018-01-16 11:15:54.640057] INFO: df2bin: prepare data: prediction ..
[2018-01-16 11:15:55.016508] INFO: stock_ranker_predict: 准备预测: 2942 行
[2018-01-16 11:15:55.955193] INFO: bigquant: stock_ranker_predict.v5 运行完成[1.411579s].
[2018-01-16 11:15:56.364842] INFO: bigquant: rolling_run.v1 运行完成[85.401072s].
[2018-01-16 11:15:58.624105] INFO: bigquant: rolling_run_predict.v1 运行完成[133.630643s].
[2018-01-16 11:15:58.686388] INFO: bigquant: backtest.v7 开始运行..
[2018-01-16 11:15:58.801261] INFO: algo: set price type:original
[2018-01-16 11:16:42.930405] INFO: algo: get splits [2014-04-04 00:00:00+00:00] [asset:Equity(964 [300228.SZA]), ratio:0.9975727910541641]
[2018-01-16 11:16:42.931819] INFO: algo: get splits [2014-04-04 00:00:00+00:00] [asset:Equity(2489 [300146.SZA]), ratio:0.4921813367923054]
[2018-01-16 11:16:43.089232] INFO: algo: get splits [2014-04-11 00:00:00+00:00] [asset:Equity(180 [300253.SZA]), ratio:0.4992064560695502]
[2018-01-16 11:16:43.517021] INFO: algo: get splits [2014-04-25 00:00:00+00:00] [asset:Equity(3131 [002312.SZA]), ratio:0.9964237983132574]
[2018-01-16 11:16:43.518477] INFO: Position: position handle split[sid:3131, orig_amount:2500, new_amount:2508.0, orig_cost:23.214476505329976,new_cost:23.13, ratio:0.9964237983132574, last_sale_price:22.29000036826757]
[2018-01-16 11:16:43.519746] INFO: Position: after split: asset: Equity(3131 [002312.SZA]), amount: 2508.0, cost_basis: 23.13, last_sale_price: 22.37
[2018-01-16 11:16:43.520872] INFO: Position: returning cash: 21.68
[2018-01-16 11:16:44.103855] INFO: algo: get splits [2014-05-13 00:00:00+00:00] [asset:Equity(1147 [300124.SZA]), ratio:0.49257784259724835]
[2018-01-16 11:16:44.258948] INFO: algo: get splits [2014-05-19 00:00:00+00:00] [asset:Equity(2825 [300017.SZA]), ratio:0.49928346943458735]
[2018-01-16 11:16:44.260495] INFO: Position: position handle split[sid:2825, orig_amount:100, new_amount:200.0, orig_cost:108.07000002498995,new_cost:53.96, ratio:0.49928346943458735, last_sale_price:52.26000074571826]
[2018-01-16 11:16:44.262851] INFO: Position: after split: asset: Equity(2825 [300017.SZA]), amount: 200.0, cost_basis: 53.96, last_sale_price: 104.67
[2018-01-16 11:16:44.264013] INFO: Position: returning cash: 15.0
[2018-01-16 11:16:44.318884] INFO: algo: get splits [2014-05-20 00:00:00+00:00] [asset:Equity(2645 [300164.SZA]), ratio:0.6233831500322976]
[2018-01-16 11:16:44.419023] INFO: algo: get splits [2014-05-22 00:00:00+00:00] [asset:Equity(399 [300206.SZA]), ratio:0.6600924203654458]
[2018-01-16 11:16:44.420607] INFO: Position: position handle split[sid:399, orig_amount:1400, new_amount:2120.0, orig_cost:23.082143421751073,new_cost:15.24, ratio:0.6600924203654458, last_sale_price:15.730002377308573]
[2018-01-16 11:16:44.422072] INFO: Position: after split: asset: Equity(399 [300206.SZA]), amount: 2120.0, cost_basis: 15.24, last_sale_price: 23.83
[2018-01-16 11:16:44.423271] INFO: Position: returning cash: 14.39
[2018-01-16 11:16:44.737848] INFO: algo: get splits [2014-06-04 00:00:00+00:00] [asset:Equity(3176 [300244.SZA]), ratio:0.5866093208857657]
[2018-01-16 11:16:44.816997] INFO: algo: get splits [2014-06-06 00:00:00+00:00] [asset:Equity(154 [300309.SZA]), ratio:0.9950739736608533]
[2018-01-16 11:16:44.965958] INFO: algo: get splits [2014-06-12 00:00:00+00:00] [asset:Equity(2510 [300097.SZA]), ratio:0.9989640159292306]
[2018-01-16 11:16:45.277149] INFO: algo: get splits [2014-06-24 00:00:00+00:00] [asset:Equity(1903 [300188.SZA]), ratio:0.9984134614874409]
[2018-01-16 11:16:45.278553] INFO: Position: position handle split[sid:1903, orig_amount:600, new_amount:600.0, orig_cost:18.508333498474084,new_cost:18.48, ratio:0.9984134614874409, last_sale_price:18.879998556727507]
[2018-01-16 11:16:45.279706] INFO: Position: after split: asset: Equity(1903 [300188.SZA]), amount: 600.0, cost_basis: 18.48, last_sale_price: 18.91
[2018-01-16 11:16:45.280655] INFO: Position: returning cash: 18.0
[2018-01-16 11:16:45.871781] INFO: algo: get splits [2014-07-14 00:00:00+00:00] [asset:Equity(791 [300155.SZA]), ratio:0.49428576883526537]
[2018-01-16 11:16:45.873101] INFO: algo: get splits [2014-07-14 00:00:00+00:00] [asset:Equity(442 [300147.SZA]), ratio:0.7648276984344435]
[2018-01-16 11:16:46.109192] INFO: algo: get splits [2014-07-21 00:00:00+00:00] [asset:Equity(628 [600587.SHA]), ratio:0.4991531730259857]
[2018-01-16 11:16:46.657591] INFO: algo: get splits [2014-08-08 00:00:00+00:00] [asset:Equity(1207 [000023.SZA]), ratio:0.9961538841483347]
[2018-01-16 11:16:50.279787] INFO: algo: get splits [2014-11-24 00:00:00+00:00] [asset:Equity(964 [300228.SZA]), ratio:0.9993956989560984]
[2018-01-16 11:16:54.915828] INFO: algo: get splits [2015-04-09 00:00:00+00:00] [asset:Equity(2489 [300146.SZA]), ratio:0.988476566387194]
[2018-01-16 11:16:54.956244] INFO: algo: get splits [2015-04-10 00:00:00+00:00] [asset:Equity(180 [300253.SZA]), ratio:0.3997572885457479]
[2018-01-16 11:16:55.239678] INFO: algo: get splits [2015-04-21 00:00:00+00:00] [asset:Equity(3301 [300288.SZA]), ratio:0.3333493112872202]
[2018-01-16 11:16:55.282647] INFO: algo: get splits [2015-04-22 00:00:00+00:00] [asset:Equity(2825 [300017.SZA]), ratio:0.45404152182664975]
[2018-01-16 11:16:55.325416] INFO: algo: get splits [2015-04-23 00:00:00+00:00] [asset:Equity(1147 [300124.SZA]), ratio:0.9871299211158775]
[2018-01-16 11:16:55.493687] INFO: algo: get splits [2015-04-29 00:00:00+00:00] [asset:Equity(3176 [300244.SZA]), ratio:0.7687109007649332]
[2018-01-16 11:16:55.609922] INFO: algo: get splits [2015-05-05 00:00:00+00:00] [asset:Equity(1889 [300367.SZA]), ratio:0.3996503919674643]
[2018-01-16 11:16:56.260473] INFO: algo: get splits [2015-05-27 00:00:00+00:00] [asset:Equity(964 [300228.SZA]), ratio:0.9981007062432757]
[2018-01-16 11:16:56.550465] INFO: algo: get splits [2015-06-05 00:00:00+00:00] [asset:Equity(1084 [300410.SZA]), ratio:0.9993104923808693]
[2018-01-16 11:16:56.842139] INFO: algo: get splits [2015-06-16 00:00:00+00:00] [asset:Equity(2510 [300097.SZA]), ratio:0.9990695214101033]
[2018-01-16 11:16:56.965758] INFO: algo: get splits [2015-06-19 00:00:00+00:00] [asset:Equity(154 [300309.SZA]), ratio:0.49870976596138195]
[2018-01-16 11:16:57.408249] INFO: algo: get splits [2015-07-06 00:00:00+00:00] [asset:Equity(628 [600587.SHA]), ratio:0.9984839170580627]
[2018-01-16 11:16:57.505899] INFO: algo: get splits [2015-07-08 00:00:00+00:00] [asset:Equity(1540 [300175.SZA]), ratio:0.9977451982607812]
[2018-01-16 11:16:57.787841] INFO: algo: get splits [2015-07-15 00:00:00+00:00] [asset:Equity(1255 [300006.SZA]), ratio:0.9972134668014038]
[2018-01-16 11:16:57.789770] INFO: Position: position handle split[sid:1255, orig_amount:2300, new_amount:2306.0, orig_cost:41.16451964137576,new_cost:41.05, ratio:0.9972134668014038, last_sale_price:35.789991323502385]
[2018-01-16 11:16:57.791227] INFO: Position: after split: asset: Equity(1255 [300006.SZA]), amount: 2306.0, cost_basis: 41.05, last_sale_price: 35.89
[2018-01-16 11:16:57.792694] INFO: Position: returning cash: 15.28
[2018-01-16 11:16:57.846844] INFO: algo: get splits [2015-07-16 00:00:00+00:00] [asset:Equity(833 [002551.SZA]), ratio:0.830769198177486]
[2018-01-16 11:16:57.949837] INFO: algo: get splits [2015-07-20 00:00:00+00:00] [asset:Equity(791 [300155.SZA]), ratio:0.6648887156244443]
[2018-01-16 11:16:59.330104] INFO: algo: get splits [2015-09-01 00:00:00+00:00] [asset:Equity(1928 [300144.SZA]), ratio:0.4154428925488366]
[2018-01-16 11:16:59.918209] INFO: algo: get splits [2015-09-18 00:00:00+00:00] [asset:Equity(964 [300228.SZA]), ratio:0.5]
[2018-01-16 11:17:00.146698] INFO: algo: get splits [2015-09-24 00:00:00+00:00] [asset:Equity(3047 [300208.SZA]), ratio:0.39955081205805176]
[2018-01-16 11:17:00.760100] INFO: algo: get splits [2015-10-20 00:00:00+00:00] [asset:Equity(2186 [300007.SZA]), ratio:0.5]
[2018-01-16 11:17:01.298749] INFO: algo: get splits [2015-11-04 00:00:00+00:00] [asset:Equity(2820 [300152.SZA]), ratio:0.33345519573262056]
[2018-01-16 11:17:05.828788] INFO: algo: get splits [2016-03-11 00:00:00+00:00] [asset:Equity(2051 [300033.SZA]), ratio:0.986181118281694]
[2018-01-16 11:17:05.831065] INFO: algo: get splits [2016-03-11 00:00:00+00:00] [asset:Equity(1889 [300367.SZA]), ratio:0.3992378131122674]
[2018-01-16 11:17:06.781551] INFO: algo: get splits [2016-04-01 00:00:00+00:00] [asset:Equity(2489 [300146.SZA]), ratio:0.49096383809576627]
[2018-01-16 11:17:06.783317] INFO: algo: get splits [2016-04-01 00:00:00+00:00] [asset:Equity(964 [300228.SZA]), ratio:0.6248656276312855]
[2018-01-16 11:17:07.038601] INFO: algo: get splits [2016-04-07 00:00:00+00:00] [asset:Equity(1928 [300144.SZA]), ratio:0.9975711859400727]
[2018-01-16 11:17:08.329016] INFO: algo: get splits [2016-04-27 00:00:00+00:00] [asset:Equity(180 [300253.SZA]), ratio:0.7122373955464374]
[2018-01-16 11:17:08.495292] INFO: algo: get splits [2016-04-29 00:00:00+00:00] [asset:Equity(2825 [300017.SZA]), ratio:0.9968239025546562]
[2018-01-16 11:17:08.912710] INFO: algo: get splits [2016-05-09 00:00:00+00:00] [asset:Equity(3176 [300244.SZA]), ratio:0.5545927725442693]
[2018-01-16 11:17:09.537277] INFO: algo: get splits [2016-05-18 00:00:00+00:00] [asset:Equity(2914 [002415.SZA]), ratio:0.6525190477892979]
[2018-01-16 11:17:09.539516] INFO: algo: get splits [2016-05-18 00:00:00+00:00] [asset:Equity(1147 [300124.SZA]), ratio:0.49316194276145237]
[2018-01-16 11:17:09.922684] INFO: algo: get splits [2016-05-24 00:00:00+00:00] [asset:Equity(2481 [300120.SZA]), ratio:0.9960938574400314]
[2018-01-16 11:17:09.924105] INFO: algo: get splits [2016-05-24 00:00:00+00:00] [asset:Equity(3160 [300053.SZA]), ratio:0.39969175968844384]
[2018-01-16 11:17:10.012997] INFO: algo: get splits [2016-05-25 00:00:00+00:00] [asset:Equity(911 [002679.SZA]), ratio:0.9958464163643087]
[2018-01-16 11:17:10.014549] INFO: Position: position handle split[sid:911, orig_amount:2500, new_amount:2510.0, orig_cost:19.735921823553678,new_cost:19.65, ratio:0.9958464163643087, last_sale_price:21.57999184261457]
[2018-01-16 11:17:10.015894] INFO: Position: after split: asset: Equity(911 [002679.SZA]), amount: 2510.0, cost_basis: 19.65, last_sale_price: 21.67
[2018-01-16 11:17:10.017225] INFO: Position: returning cash: 9.22
[2018-01-16 11:17:10.109355] INFO: algo: get splits [2016-05-26 00:00:00+00:00] [asset:Equity(791 [300155.SZA]), ratio:0.9983333062894355]
[2018-01-16 11:17:10.498357] INFO: algo: get splits [2016-06-01 00:00:00+00:00] [asset:Equity(1696 [300291.SZA]), ratio:0.9966667502334351]
[2018-01-16 11:17:11.025150] INFO: algo: get splits [2016-06-08 00:00:00+00:00] [asset:Equity(3074 [300211.SZA]), ratio:0.5259405881337679]
[2018-01-16 11:17:11.140838] INFO: algo: get splits [2016-06-13 00:00:00+00:00] [asset:Equity(2361 [600373.SHA]), ratio:0.9961686887610414]
[2018-01-16 11:17:11.544868] INFO: algo: get splits [2016-06-17 00:00:00+00:00] [asset:Equity(2186 [300007.SZA]), ratio:0.9990098500480408]
[2018-01-16 11:17:12.026838] INFO: algo: get splits [2016-06-24 00:00:00+00:00] [asset:Equity(2510 [300097.SZA]), ratio:0.9998191817780584]
[2018-01-16 11:17:13.280047] INFO: algo: get splits [2016-07-12 00:00:00+00:00] [asset:Equity(470 [002190.SZA]), ratio:0.9971863685873554]
[2018-01-16 11:17:13.387493] INFO: algo: get splits [2016-07-13 00:00:00+00:00] [asset:Equity(154 [300309.SZA]), ratio:0.9979167673250933]
[2018-01-16 11:17:13.927041] INFO: algo: get splits [2016-07-20 00:00:00+00:00] [asset:Equity(628 [600587.SHA]), ratio:0.9971014995758813]
[2018-01-16 11:17:18.663671] INFO: algo: get splits [2016-10-25 00:00:00+00:00] [asset:Equity(130 [603885.SHA]), ratio:0.9903661256398506]
[2018-01-16 11:17:18.999794] INFO: algo: get splits [2016-11-01 00:00:00+00:00] [asset:Equity(465 [002125.SZA]), ratio:0.6252195616891417]
[2018-01-16 11:17:19.125822] INFO: algo: get splits [2016-11-03 00:00:00+00:00] [asset:Equity(2510 [300097.SZA]), ratio:0.9996583219214351]
[2018-01-16 11:17:25.832549] INFO: algo: get splits [2017-03-15 00:00:00+00:00] [asset:Equity(2051 [300033.SZA]), ratio:0.9867451904041216]
[2018-01-16 11:17:27.053943] INFO: algo: get splits [2017-04-07 00:00:00+00:00] [asset:Equity(2489 [300146.SZA]), ratio:0.9768477276286646]
[2018-01-16 11:17:27.145948] INFO: algo: get splits [2017-04-10 00:00:00+00:00] [asset:Equity(1928 [300144.SZA]), ratio:0.9950074566355983]
[2018-01-16 11:17:28.118270] INFO: algo: get splits [2017-04-25 00:00:00+00:00] [asset:Equity(2825 [300017.SZA]), ratio:0.3317708434455257]
[2018-01-16 11:17:29.399783] INFO: algo: get splits [2017-05-16 00:00:00+00:00] [asset:Equity(2914 [002415.SZA]), ratio:0.6566234946449699]
[2018-01-16 11:17:29.496239] INFO: algo: get splits [2017-05-17 00:00:00+00:00] [asset:Equity(2510 [300097.SZA]), ratio:0.5550693233660686]
[2018-01-16 11:17:30.105913] INFO: algo: get splits [2017-05-25 00:00:00+00:00] [asset:Equity(180 [300253.SZA]), ratio:0.5240641495594949]
[2018-01-16 11:17:30.204992] INFO: algo: get splits [2017-05-26 00:00:00+00:00] [asset:Equity(1147 [300124.SZA]), ratio:0.9882096272123232]
[2018-01-16 11:17:30.633265] INFO: algo: get splits [2017-06-05 00:00:00+00:00] [asset:Equity(3160 [300053.SZA]), ratio:0.99929825590349]
[2018-01-16 11:17:30.790168] INFO: algo: get splits [2017-06-06 00:00:00+00:00] [asset:Equity(357 [002627.SZA]), ratio:0.991524887388317]
[2018-01-16 11:17:30.791694] INFO: Position: position handle split[sid:357, orig_amount:4900, new_amount:4941.0, orig_cost:17.545592540532418,new_cost:17.4, ratio:0.991524887388317, last_sale_price:17.549991263246667]
[2018-01-16 11:17:30.792806] INFO: Position: after split: asset: Equity(357 [002627.SZA]), amount: 4941.0, cost_basis: 17.4, last_sale_price: 17.700000762939453
[2018-01-16 11:17:30.794049] INFO: Position: returning cash: 15.5
[2018-01-16 11:17:31.057643] INFO: algo: get splits [2017-06-08 00:00:00+00:00] [asset:Equity(3176 [300244.SZA]), ratio:0.9993500906803245]
[2018-01-16 11:17:31.471887] INFO: algo: get splits [2017-06-13 00:00:00+00:00] [asset:Equity(130 [603885.SHA]), ratio:0.7061207234545324]
[2018-01-16 11:17:31.473715] INFO: algo: get splits [2017-06-13 00:00:00+00:00] [asset:Equity(1561 [600605.SHA]), ratio:0.9967040252225187]
[2018-01-16 11:17:31.474771] INFO: algo: get splits [2017-06-13 00:00:00+00:00] [asset:Equity(2361 [600373.SHA]), ratio:0.9942251742969975]
[2018-01-16 11:17:31.476081] INFO: algo: get splits [2017-06-13 00:00:00+00:00] [asset:Equity(470 [002190.SZA]), ratio:0.9952095203380209]
[2018-01-16 11:17:31.477552] INFO: Position: position handle split[sid:1561, orig_amount:68324, new_amount:68549.0, orig_cost:16.608368934563398,new_cost:16.55, ratio:0.9967040252225187, last_sale_price:15.120000138668091]
[2018-01-16 11:17:31.478704] INFO: Position: after split: asset: Equity(1561 [600605.SHA]), amount: 68549.0, cost_basis: 16.55, last_sale_price: 15.170000076293945
[2018-01-16 11:17:31.480151] INFO: Position: returning cash: 14.2
[2018-01-16 11:17:31.629064] INFO: algo: get splits [2017-06-14 00:00:00+00:00] [asset:Equity(3074 [300211.SZA]), ratio:0.9988827092270767]
[2018-01-16 11:17:31.774231] INFO: algo: get splits [2017-06-15 00:00:00+00:00] [asset:Equity(3301 [300288.SZA]), ratio:0.9978903328074612]
[2018-01-16 11:17:33.170476] INFO: algo: get splits [2017-06-29 00:00:00+00:00] [asset:Equity(791 [300155.SZA]), ratio:0.9987358272955789]
[2018-01-16 11:17:33.442601] INFO: algo: get splits [2017-07-03 00:00:00+00:00] [asset:Equity(1889 [300367.SZA]), ratio:0.9980040148681748]
[2018-01-16 11:17:35.018362] INFO: algo: get splits [2017-07-18 00:00:00+00:00] [asset:Equity(2861 [300522.SZA]), ratio:0.5523555684672078]
[2018-01-16 11:17:35.941183] INFO: algo: get splits [2017-07-31 00:00:00+00:00] [asset:Equity(2186 [300007.SZA]), ratio:0.9980916791051235]
[2018-01-16 11:17:37.231661] INFO: algo: get splits [2017-08-16 00:00:00+00:00] [asset:Equity(554 [600561.SHA]), ratio:0.9967461445064616]
[2018-01-16 11:17:37.233232] INFO: Position: position handle split[sid:554, orig_amount:5700, new_amount:5718.0, orig_cost:9.132797551937873,new_cost:9.1, ratio:0.9967461445064616, last_sale_price:9.189999718509512]
[2018-01-16 11:17:37.234945] INFO: Position: after split: asset: Equity(554 [600561.SHA]), amount: 5718.0, cost_basis: 9.1, last_sale_price: 9.220000267028809
[2018-01-16 11:17:37.236434] INFO: Position: returning cash: 5.58
[2018-01-16 11:17:37.569172] INFO: algo: get splits [2017-08-22 00:00:00+00:00] [asset:Equity(628 [600587.SHA]), ratio:0.9978202908558634]
[2018-01-16 11:17:39.764754] INFO: algo: get splits [2017-09-26 00:00:00+00:00] [asset:Equity(1582 [300192.SZA]), ratio:0.9986911669103794]
[2018-01-16 11:17:39.766632] INFO: Position: position handle split[sid:1582, orig_amount:5900, new_amount:5907.0, orig_cost:12.293698847703201,new_cost:12.28, ratio:0.9986911669103794, last_sale_price:15.260001030390596]
[2018-01-16 11:17:39.768209] INFO: Position: after split: asset: Equity(1582 [300192.SZA]), amount: 5907.0, cost_basis: 12.28, last_sale_price: 15.28
[2018-01-16 11:17:39.769698] INFO: Position: returning cash: 11.17
[2018-01-16 11:17:39.952413] INFO: algo: get splits [2017-09-29 00:00:00+00:00] [asset:Equity(1696 [300291.SZA]), ratio:0.9950049207155299]
[2018-01-16 11:17:42.157380] INFO: algo: get splits [2017-11-27 00:00:00+00:00] [asset:Equity(517 [000004.SZA]), ratio:1.0399998291588606]
[2018-01-16 11:17:43.086442] INFO: algo: get splits [2017-12-15 00:00:00+00:00] [asset:Equity(517 [000004.SZA]), ratio:0.9615386194907244]
[2018-01-16 11:17:43.650228] INFO: Performance: Simulated 974 trading days out of 974.
[2018-01-16 11:17:43.652072] INFO: Performance: first open: 2014-01-02 01:30:00+00:00
[2018-01-16 11:17:43.654053] INFO: Performance: last close: 2017-12-26 07:00:00+00:00
[注意] 有 1 笔卖出是在多天内完成的。当日卖出股票超过了当日股票交易的2.5%会出现这种情况。
  • 收益率921.34%
  • 年化收益率82.43%
  • 基准收益率73.97%
  • 阿尔法0.68
  • 贝塔0.87
  • 夏普比率2.19
  • 胜率0.625
  • 盈亏比0.871
  • 收益波动率35.57%
  • 信息比率2.38
  • 最大回撤38.53%
[2018-01-16 11:17:50.662916] INFO: bigquant: backtest.v7 运行完成[111.976512s].