@莫急莫急
2020-07-01 09:00:00 - INFO - 今日自选及择时信号:['512170.XSHG', 0.0134]---KEEP
2020-07-01 09:30:00 - WARNING - Security(code=512170.XSHG) 在 positions 中不存在, 为了保持兼容, 我们返回空的 Position 对象, amount/price/avg_cost/acc_avg_cost 都是 0
2020-07-01 09:30:00 - DEBUG - Order 512170.XSHG to value 166666.666667
2020-07-01 09:30:00 - ERROR - Traceback (most recent call last):
File "/tmp/jqcore/jqboson/jqboson/core/entry.py", line 366, in _run
engine.start()
File "/tmp/jqcore/jqboson/jqboson/core/engine.py", line 231, in start
self._dispatcher.start()
File "/tmp/jqcore/jqboson/jqboson/core/dispatcher.py", line 273, in start
self._run_loop()
File "/tmp/jqcore/jqboson/jqboson/core/dispatcher.py", line 240, in _run_loop
self._loop.run()
File "/tmp/jqcore/jqboson/jqboson/core/loop/loop.py", line 105, in run
self._handle_queue()
File "/tmp/jqcore/jqboson/jqboson/core/loop/loop.py", line 151, in _handle_queue
message.callback(**message.callback_data)
File "/tmp/jqcore/jqboson/jqboson/core/dispatcher.py", line 110, in callback
self._event_bus.emit(evt)
File "/tmp/jqcore/jqboson/jqboson/core/bus.py", line 47, in emit
ret.append(call(event))
File "/tmp/jqcore/jqboson/jqboson/core/strategy.py", line 376, in _wrapper
return cb(self._context.strategy_environment.strategy_context, **cb_kwargs)
File "/tmp/strategy/user_code.py", line 104, in my_trade
adjust_position(context, g.check_out_list)
File "/tmp/strategy/user_code.py", line 233, in adjust_position
if context.portfolio.positions[stock].total_amount == 0:
File "/tmp/jqcore/jqboson/jqboson/api/objects/position.py", line 318, in __getitem__
security = self.__ctx.data_provider.get_security(key)
File "/tmp/jqcore/jqboson/jqboson/data/data_provider.py", line 96, in get_security
sec = self._securities.get_security(code)
File "/tmp/jqcore/jqdata/jqdata/stores/security_store.py", line 339, in get_security
if not verify_security_code(code):
File "/tmp/jqcore/jqdata/jqdata/utils/security.py", line 38, in verify_security_code
code = re.match(r'[a-zA-Z0-9\-]+\.[a-zA-Z]+', code)
File "re.py", line 172, in match
return _compile(pattern, flags).match(string)
TypeError: cannot use a string pattern on a bytes-like object
各位大神有上实盘的吗?上一创聚宽平台实盘运行遇到这样的错误信息:
---------------------------------------------
[2021-11-12 09:30:36,046] jqboson.user WARNING [current_dt:2021-11-12 09:30:33] 策略已经暂停或失败,不执行策略代码
[2021-11-12 09:30:17,413] jqboson.user ERROR [current_dt:2021-11-12 09:30:00] Traceback (most recent call last):
File "jqboson/core/loop/loop.py", line 209, in _handle_message
message.callback(**message.callback_data)
File "jqboson/core/dispatcher.py", line 103, in callback
self._event_bus.emit(evt)
File "jqboson/core/bus.py", line 47, in emit
ret.append(call(event))
File "jqboson/core/strategy.py", line 301, in _wrapper
return cb(self._context.strategy_environment.strategy_context)
File "user_code.py", line 150, in my_trade
adjust_position(context, check_out_list)
File "user_code.py", line 131, in adjust_position
if context.portfolio.positions[stock].total_amount == 0:
File "jqboson/api/objects/position.py", line 314, in __getitem__
security = self.__ctx.data_provider.get_security(key)
File "jqboson/data/data_provider.py", line 78, in get_security
sec = self._securities.get_security(code)
File "jqdata/stores/security_store.py", line 327, in get_security
if code.endswith('.OF'):
AttributeError: 'numpy.float64' object has no attribute 'endswith'
[2021-11-12 09:30:17,306] jqboson.user WARNING [current_dt:2021-11-12 09:30:00] 策略运行出现了异常,未完成的订单将会全部取消
[2021-11-12 09:30:16,955] jqboson.strategy DEBUG [current_dt:2021-11-12 09:30:00] Order 588090.XSHG to value 20000.000000
-------------------------------------
是什么问题?是否Order的命令有关?
@tomlanhy if context.portfolio.positions[stock].total_amount == 0:这句话要取持仓信息,你现在是不是空仓?系统返回了0,是np.float64类型,所以提示没有endswith函数,因为这个函数只有str类型才有的。你可以换个说法试试:if not context.portfolio.positions: 这句话表示空仓,再试试呗,效果如何及时反馈啊