Open LawrentChen opened 3 years ago
感谢提醒,此处是文档的bug,order_target_percent 的行为如您所见,资金不足时会按最大可用资金下单。 文档已在 develop 分支修复,可查看 https://rqalpha.readthedocs.io/zh_CN/develop/api/base_api.html#order-target-percent
order_target_portfolio 按您的尝试结果看起来是有 bug。待修复
感谢迅速的反馈,中秋快乐!
额....我又发现 order_value 也是类似的,资金不足的时候是按最大可用资金下单。
@Cuizi7 order_target_percent('000002.XSHE', 0.7) order_target_percent('000001.XSHE', 0.3) 关于这种情况可以加一个api,优先执行卖出,场景也说得过去 ~
1. RQAlpha的版本
4.5.1
2. Python的版本
3.9
3. 是Windows/Linux/MacOS or others?
MacOS
4. 您出现问题对应的源码/或者能复现问题的简易代码 以及对应的配置
5. 您出现的错误堆栈日志信息
上述代码分别买入两只股票,仓位比例加总已经超过了 1,在准备购入 000002.XSHE 时已没有足够资金。但实际上它仍会将剩余的 50% 资金全部下单,而且这一过程没有任何显式的提示信息。 这与关于order-target-percent的文档中: 需要注意,如果资金不足,该API将不会创建发送订单 的描述不符。
另外我发现这一 api 在用于调仓时,还是需要遵循先卖出再买入的顺序以保证资金充足。 比如我第一期分别持有 50% 的 000001.XSHE 和 000002.XSHE,第二期我希望调整至 30% 的 000001.XSHE 和 70% 的000002.XSHE,那第二期的操作就必须是
而不能是
后者不会买入 000002.XSHE,只会卖掉 000001.XSHE
这样比较麻烦,用户就必须每次都逐一判断自己当前持仓比例是高是低,并且显式输入交易顺序,不能单单只是给出下一期的目标比例。
我尝试使用
结果也是一样的不会买入 000002.XSHE,只会卖掉 000001.XSHE。希望能有个便捷的 api。
Cheers🍺