@Morningstar 请教大神,克隆新的策略回测时出现错误并终止,请教是啥问题呢,日志如下:
2016-07-01 09:20:00 - INFO - ==> initialize @ 2016-07-01 09:20:00
2016-07-01 09:20:00 - INFO - 调仓日频率: 10日
2016-07-01 09:20:00 - INFO - 调仓时间: 14:52
2016-07-01 09:20:00 - INFO - 备选股票数目: 100
2016-07-01 09:20:00 - INFO - 是否根据PE选股: True
2016-07-01 09:20:00 - INFO - 选股最大PE: 200
2016-07-01 09:20:00 - INFO - 选股最小PE: 0
2016-07-01 09:20:00 - INFO - 是否根据EPS选股: False
2016-07-01 09:20:00 - INFO - 是否过滤创业板股票: True
2016-07-01 09:20:00 - INFO - 是否过滤黑名单股票: False
2016-07-01 09:20:00 - INFO - 是否对股票评分选股: False
2016-07-01 09:20:00 - INFO - 买入股票数目: 5
2016-07-01 09:20:00 - INFO - 二八指数之二: 000300.XSHG-沪深300
2016-07-01 09:20:00 - INFO - 二八指数之八: 000905.XSHG-中证500
2016-07-01 09:20:00 - INFO - 判定调仓的二八指数20日增幅: 0.0%
2016-07-01 09:20:00 - INFO - 是否开启大盘止损: False
2016-07-01 09:20:00 - INFO - 大盘三黑鸦止损后是否停止交易(主要为开仓)一天: False
2016-07-01 09:20:00 - INFO - 是否开启个股止损: False
2016-07-01 09:20:00 - INFO - 是否开启个股止盈: False
2016-07-01 09:20:00 - INFO - ---------------------------------------------
2016-07-01 14:52:00 - INFO - 调仓日计数 [0]
2016-07-01 14:52:00 - INFO - 当前沪深300指数的20日涨幅 [-0.12%]
2016-07-01 14:52:00 - INFO - 当前中证500指数的20日涨幅 [2.46%]
2016-07-01 14:52:00 - INFO - ==> 满足条件进行调仓
2016-07-01 14:52:00 - INFO - 选股后可买股票: ['002193.XSHE', '600853.XSHG', '600213.XSHG', '002627.XSHE', '600593.XSHG']
2016-07-01 14:52:00 - DEBUG - Order 002193.XSHE to value 20000.000000
2016-07-01 14:52:00 - INFO - order(002193.XSHE, 1230, None): 原始下单数量是为1230, 买入股票数量必须是100的倍数, 调整为1200
2016-07-01 14:52:00 - DEBUG - Order 600853.XSHG to value 20000.000000
2016-07-01 14:52:00 - INFO - order(600853.XSHG, 3780, None): 原始下单数量是为3780, 买入股票数量必须是100的倍数, 调整为3700
2016-07-01 14:52:00 - DEBUG - Order 600213.XSHG to value 20000.000000
2016-07-01 14:52:00 - INFO - order(600213.XSHG, 1572, None): 原始下单数量是为1572, 买入股票数量必须是100的倍数, 调整为1500
2016-07-01 14:52:00 - DEBUG - Order 002627.XSHE to value 20000.000000
2016-07-01 14:52:00 - INFO - order(002627.XSHE, 947, None): 原始下单数量是为947, 买入股票数量必须是100的倍数, 调整为900
2016-07-01 14:52:00 - DEBUG - Order 600593.XSHG to value 20000.000000
2016-07-01 14:52:00 - INFO - order(600593.XSHG, 645, None): 原始下单数量是为645, 买入股票数量必须是100的倍数, 调整为600
2016-07-01 15:10:00 - INFO - 收盘后持仓概况:['002627.XSHE', '600213.XSHG', '600593.XSHG', '002193.XSHE', '600853.XSHG']
2016-07-01 15:10:00 - INFO - 仓位概况:0.96
2016-07-04 09:20:00 - INFO - ---------------------------------------------
2016-07-04 14:52:00 - INFO - 调仓日计数 [1]
2016-07-04 14:52:00 - INFO - 当前沪深300指数的20日涨幅 [1.11%]
2016-07-04 14:52:00 - INFO - 当前中证500指数的20日涨幅 [3.51%]
2016-07-04 15:10:00 - INFO - 收盘后持仓概况:['002627.XSHE', '600213.XSHG', '600593.XSHG', '002193.XSHE', '600853.XSHG']
2016-07-04 15:10:00 - INFO - 仓位概况:0.96
2016-07-05 09:20:00 - INFO - ---------------------------------------------
2016-07-05 14:52:00 - INFO - 调仓日计数 [2]
2016-07-05 14:52:00 - INFO - 当前沪深300指数的20日涨幅 [0.46%]
2016-07-05 14:52:00 - INFO - 当前中证500指数的20日涨幅 [3.74%]
2016-07-05 15:10:00 - INFO - 收盘后持仓概况:['002627.XSHE', '600213.XSHG', '600593.XSHG', '002193.XSHE', '600853.XSHG']
2016-07-05 15:10:00 - INFO - 仓位概况:0.96
2016-07-06 09:20:00 - INFO - ---------------------------------------------
2016-07-06 14:52:00 - INFO - 调仓日计数 [3]
2016-07-06 14:52:00 - INFO - 当前沪深300指数的20日涨幅 [1.20%]
2016-07-06 14:52:00 - INFO - 当前中证500指数的20日涨幅 [3.98%]
2016-07-06 15:10:00 - INFO - 收盘后持仓概况:['002627.XSHE', '600213.XSHG', '600593.XSHG', '002193.XSHE', '600853.XSHG']
2016-07-06 15:10:00 - INFO - 仓位概况:0.96
2016-07-07 09:20:00 - INFO - ---------------------------------------------
2016-07-07 14:52:00 - INFO - 调仓日计数 [4]
2016-07-07 14:52:00 - INFO - 当前沪深300指数的20日涨幅 [0.99%]
2016-07-07 14:52:00 - INFO - 当前中证500指数的20日涨幅 [4.49%]
2016-07-07 15:10:00 - INFO - 收盘后持仓概况:['002627.XSHE', '600213.XSHG', '600593.XSHG', '002193.XSHE', '600853.XSHG']
2016-07-07 15:10:00 - INFO - 仓位概况:0.96
2016-07-08 09:20:00 - INFO - ---------------------------------------------
2016-07-08 14:52:00 - INFO - 调仓日计数 [5]
2016-07-08 14:52:00 - INFO - 当前沪深300指数的20日涨幅 [0.91%]
2016-07-08 14:52:00 - INFO - 当前中证500指数的20日涨幅 [4.62%]
2016-07-08 15:10:00 - INFO - 收盘后持仓概况:['002627.XSHE', '600213.XSHG', '600593.XSHG', '002193.XSHE', '600853.XSHG']
2016-07-08 15:10:00 - INFO - 仓位概况:0.96
2016-07-11 09:20:00 - INFO - ---------------------------------------------
2016-07-11 14:52:00 - INFO - 调仓日计数 [6]
2016-07-11 14:52:00 - INFO - 当前沪深300指数的20日涨幅 [4.41%]
2016-07-11 14:52:00 - INFO - 当前中证500指数的20日涨幅 [9.76%]
2016-07-11 15:10:00 - INFO - 收盘后持仓概况:['002627.XSHE', '600213.XSHG', '600593.XSHG', '002193.XSHE', '600853.XSHG']
2016-07-11 15:10:00 - INFO - 仓位概况:0.96
2016-07-12 09:20:00 - INFO - ---------------------------------------------
2016-07-12 14:52:00 - INFO - 调仓日计数 [7]
2016-07-12 14:52:00 - INFO - 当前沪深300指数的20日涨幅 [6.29%]
2016-07-12 14:52:00 - INFO - 当前中证500指数的20日涨幅 [10.73%]
2016-07-12 15:10:00 - INFO - 收盘后持仓概况:['002627.XSHE', '600213.XSHG', '600593.XSHG', '002193.XSHE', '600853.XSHG']
2016-07-12 15:10:00 - INFO - 仓位概况:0.96
2016-07-13 09:20:00 - INFO - ---------------------------------------------
2016-07-13 14:52:00 - INFO - 调仓日计数 [8]
2016-07-13 14:52:00 - INFO - 当前沪深300指数的20日涨幅 [5.26%]
2016-07-13 14:52:00 - INFO - 当前中证500指数的20日涨幅 [8.12%]
2016-07-13 15:10:00 - INFO - 收盘后持仓概况:['002627.XSHE', '600213.XSHG', '600593.XSHG', '002193.XSHE', '600853.XSHG']
2016-07-13 15:10:00 - INFO - 仓位概况:0.96
2016-07-14 09:20:00 - INFO - ---------------------------------------------
2016-07-14 14:52:00 - INFO - 调仓日计数 [9]
2016-07-14 14:52:00 - INFO - 当前沪深300指数的20日涨幅 [5.71%]
2016-07-14 14:52:00 - INFO - 当前中证500指数的20日涨幅 [8.67%]
2016-07-14 15:10:00 - INFO - 收盘后持仓概况:['002627.XSHE', '600213.XSHG', '600593.XSHG', '002193.XSHE', '600853.XSHG']
2016-07-14 15:10:00 - INFO - 仓位概况:0.96
2016-07-15 09:20:00 - INFO - ---------------------------------------------
2016-07-15 14:52:00 - INFO - 调仓日计数 [10]
2016-07-15 14:52:00 - INFO - 当前沪深300指数的20日涨幅 [5.34%]
2016-07-15 14:52:00 - INFO - 当前中证500指数的20日涨幅 [8.05%]
2016-07-15 14:52:00 - INFO - ==> 满足条件进行调仓
2016-07-15 14:52:00 - INFO - 选股后可买股票: ['002193.XSHE', '600213.XSHG', '600853.XSHG', '600985.XSHG', '002627.XSHE']
2016-07-15 14:52:00 - INFO - stock [002627.XSHE] is already in position
2016-07-15 14:52:00 - INFO - stock [600213.XSHG] is already in position
2016-07-15 14:52:00 - INFO - stock [600593.XSHG] in position is not buyable
2016-07-15 14:52:00 - DEBUG - Selling out 600593.XSHG
2016-07-15 14:52:00 - ERROR - Traceback (most recent call last):
File "kuanke/user_space.py", line 139, in exec_msg
return getattr(self, func)(*msg['args'], **msg['kwargs'])
File "kuanke/user_space.py", line 288, in handle_data
self.func_handle_data(self.user_context, user_space_api.SecuritiesData())
File "user_code.py", line 222, in handle_data
do_handle_data(context, data)
File "user_code.py", line 241, in do_handle_data
adjust_position(context, buy_stocks)
File "user_code.py", line 591, in adjust_position
close_position(position)
File "user_code.py", line 401, in close_position
g.trade_stat.watch(security, order.filled, position.avg_cost, position.price)
TypeError: watch() takes exactly 3 arguments (5 given)
========全局变量========
{ 'g': PersistentState({'min_pe': 0, 'three_black_crows_day_count': 0, 'period': 10, 'last_high': {'002627.XSHE': 21.109999999999999, '600213.XSHG': 12.720000000000001, '600593.XSHG': 30.969999999999999, '002193.XSHE': 16.260000000000002, '600853.XSHG': 5.29}, 'index_growth_rate_20': 0.0, 'filter_gem': True, 'trade_stat': , 'adjust_position_minute': 52, 'day_count': 10, 'buy_stock_count': 5, 'tested_fields': set(['min_pe', 'three_black_crows_day_count', 'period', 'last_high', 'index_growth_rate_20', 'index2', 'trade_stat', 'adjust_position_minute', 'day_count', 'buy_stock_count', 'stop_one_day_by_3_black_crows', 'pick_by_eps', 'max_pe', 'pick_by_pe', 'pick_stock_count', 'index8', 'is_stock_stop_loss', 'filter_gem', 'adjust_position_hour', 'is_market_stop_loss', 'is_stock_stop_profit', 'filter_blacklist', 'is_rank_stock']), 'stop_one_day_by_3_black_crows': False, 'pick_by_eps': False, 'max_pe': 200, 'pick_by_pe': True, 'pick_stock_count': 100, 'index8': u'000905.XSHG', 'is_stock_stop_loss': False, 'index2': u'000300.XSHG', 'adjust_position_hour': 14, 'is_market_stop_loss': False, 'is_stock_stop_profit': False, 'filter_blacklist': False, 'is_rank_stock': False})}
========局部变量========
File "kuanke/user_space.py", line 139, in exec_msg
return getattr(self, func)(*msg['args'], **msg['kwargs'])
{ 'context': ,
'data': None,
'self': }
------------
File "kuanke/user_space.py", line 288, in handle_data
self.func_handle_data(self.user_context, user_space_api.SecuritiesData())
{ 'context': UserContext({'current_dt': datetime.datetime(2016, 7, 15, 14, 52), 'portfolio': Portfolio({'_unsell_positions': {}, 'portfolio_value': 104670.82000000001, 'cash': 24898.340000000004, 'starting_cash': 100000.0, 'returns': 0.04670820000000009, 'capital_used': 75101.660000000003, 'positions': {'002627.XSHE': Position({'avg_cost': 20.982532588454376, 'sellable_amount': 906, 'security': '002627.XSHE', 'last_sale_price': 22.079999999999998, 'total_amount': 906}), '600213.XSHG': Position({'avg_cost': 12.74, 'sellable_amount': 1500, 'security': '600213.XSHG', 'last_sale_price': 12.85, 'total_amount': 1500}), '002193.XSHE': Position({'avg_cost': 16.28, 'sellable_amount': 1200, 'security': '002193.XSHE', 'last_sale_price': 16.940000000000001, 'total_amount': 1200}), '600853.XSHG': Position({'avg_cost': 5.3, 'sellable_amount': 3700, 'security': '600853.XSHG', 'last_sale_price': 5.4500000000000002, 'total_amount': 3700})}, 'positions_value': 79772.479999999996}), 'previous_date': datetime.date(2016, 7, 14), 'run_params': RunParams({'end_date': datetime.date(2016, 8, 13), 'frequency': u'minute', 'type': 'simple_backtest', 'start_date': datetime.date(2016, 7, 1), 'extra_gloabl_vars': {}}), 'universe': ['002627.XSHE', '600213.XSHG', '600593.XSHG', '002193.XSHE', '600853.XSHG']}),
'data': { },
'hour': 14,
'minute': 52}
------------
File "user_code.py", line 222, in handle_data
do_handle_data(context, data)
{ 'buy_stocks': [ '002193.XSHE',
'600213.XSHG',
'600853.XSHG',
'600985.XSHG',
'002627.XSHE'],
'context': UserContext({'current_dt': datetime.datetime(2016, 7, 15, 14, 52), 'portfolio': Portfolio({'_unsell_positions': {}, 'portfolio_value': 104670.82000000001, 'cash': 24898.340000000004, 'starting_cash': 100000.0, 'returns': 0.04670820000000009, 'capital_used': 75101.660000000003, 'positions': {'002627.XSHE': Position({'avg_cost': 20.982532588454376, 'sellable_amount': 906, 'security': '002627.XSHE', 'last_sale_price': 22.079999999999998, 'total_amount': 906}), '600213.XSHG': Position({'avg_cost': 12.74, 'sellable_amount': 1500, 'security': '600213.XSHG', 'last_sale_price': 12.85, 'total_amount': 1500}), '002193.XSHE': Position({'avg_cost': 16.28, 'sellable_amount': 1200, 'security': '002193.XSHE', 'last_sale_price': 16.940000000000001, 'total_amount': 1200}), '600853.XSHG': Position({'avg_cost': 5.3, 'sellable_amount': 3700, 'security': '600853.XSHG', 'last_sale_price': 5.4500000000000002, 'total_amount': 3700})}, 'positions_value': 79772.479999999996}), 'previous_date': datetime.date(2016, 7, 14), 'run_params': RunParams({'end_date': datetime.date(2016, 8, 13), 'frequency': u'minute', 'type': 'simple_backtest', 'start_date': datetime.date(2016, 7, 1), 'extra_gloabl_vars': {}}), 'universe': ['002627.XSHE', '600213.XSHG', '600593.XSHG', '002193.XSHE', '600853.XSHG']}),
'data': { },
'gr_index2': 0.053432062401064503,
'gr_index8': 0.080472112574871621}
------------
File "user_code.py", line 241, in do_handle_data
adjust_position(context, buy_stocks)
{ 'buy_stocks': [ '002193.XSHE',
'600213.XSHG',
'600853.XSHG',
'600985.XSHG',
'002627.XSHE'],
'context': UserContext({'current_dt': datetime.datetime(2016, 7, 15, 14, 52), 'portfolio': Portfolio({'_unsell_positions': {}, 'portfolio_value': 104670.82000000001, 'cash': 24898.340000000004, 'starting_cash': 100000.0, 'returns': 0.04670820000000009, 'capital_used': 75101.660000000003, 'positions': {'002627.XSHE': Position({'avg_cost': 20.982532588454376, 'sellable_amount': 906, 'security': '002627.XSHE', 'last_sale_price': 22.079999999999998, 'total_amount': 906}), '600213.XSHG': Position({'avg_cost': 12.74, 'sellable_amount': 1500, 'security': '600213.XSHG', 'last_sale_price': 12.85, 'total_amount': 1500}), '002193.XSHE': Position({'avg_cost': 16.28, 'sellable_amount': 1200, 'security': '002193.XSHE', 'last_sale_price': 16.940000000000001, 'total_amount': 1200}), '600853.XSHG': Position({'avg_cost': 5.3, 'sellable_amount': 3700, 'security': '600853.XSHG', 'last_sale_price': 5.4500000000000002, 'total_amount': 3700})}, 'positions_value': 79772.479999999996}), 'previous_date': datetime.date(2016, 7, 14), 'run_params': RunParams({'end_date': datetime.date(2016, 8, 13), 'frequency': u'minute', 'type': 'simple_backtest', 'start_date': datetime.date(2016, 7, 1), 'extra_gloabl_vars': {}}), 'universe': ['002627.XSHE', '600213.XSHG', '600593.XSHG', '002193.XSHE', '600853.XSHG']}),
'position': Position({'avg_cost': 31.01, 'sellable_amount': 600, 'security': '600593.XSHG', 'last_sale_price': 34.75, 'total_amount': 600}),
'stock': '600593.XSHG'}
------------
File "user_code.py", line 591, in adjust_position
close_position(position)
{ 'order': Order({'status': OrderStatus.held, 'order_id': 6, 'symbol': '600593.XSHG', 'cash': 20826.0, 'is_buy': False, 'amount': 600, 'limit': None, 'security': '600593.XSHG', '_avg_cost_before_sell': 31.01, 'filled': 600, 'add_time': datetime.datetime(2016, 7, 15, 14, 52)}),
'position': Position({'avg_cost': 31.01, 'sellable_amount': 600, 'security': '600593.XSHG', 'last_sale_price': 34.75, 'total_amount': 600}),
'security': '600593.XSHG'}
------------
2016-08-16