We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
4.5.1
3.9
MacOS
# !usr/bin/env python3 # -*- coding: utf-8 -*- from rqalpha.apis import * __config__ = { "base": { "start_date": "2021-01-01", "end_date": "2021-01-31", "frequency": "1d", "accounts": { "stock": 10000000 }, } } def init(context): """ 策略初始化 """ pass def handle_bar(context, bar_dict): """ K线数据更新 """ order_target_percent('000001.XSHE', 0.5) order_target_percent('000002.XSHE', 0.7)
上述代码分别买入两只股票,仓位比例加总已经超过了 1,在准备购入 000002.XSHE 时已没有足够资金。但实际上它仍会将剩余的 50% 资金全部下单,而且这一过程没有任何显式的提示信息。 这与关于order-target-percent的文档中: 需要注意,如果资金不足,该API将不会创建发送订单 的描述不符。
另外我发现这一 api 在用于调仓时,还是需要遵循先卖出再买入的顺序以保证资金充足。 比如我第一期分别持有 50% 的 000001.XSHE 和 000002.XSHE,第二期我希望调整至 30% 的 000001.XSHE 和 70% 的000002.XSHE,那第二期的操作就必须是
order_target_percent('000001.XSHE', 0.3) order_target_percent('000002.XSHE', 0.7)
而不能是
order_target_percent('000002.XSHE', 0.7) order_target_percent('000001.XSHE', 0.3)
后者不会买入 000002.XSHE,只会卖掉 000001.XSHE
这样比较麻烦,用户就必须每次都逐一判断自己当前持仓比例是高是低,并且显式输入交易顺序,不能单单只是给出下一期的目标比例。
我尝试使用
order_target_portfolio({ '000002.XSHE': 0.7, '000001.XSHE': 0.3 })
结果也是一样的不会买入 000002.XSHE,只会卖掉 000001.XSHE。希望能有个便捷的 api。
Cheers🍺
The text was updated successfully, but these errors were encountered:
感谢提醒,此处是文档的bug,order_target_percent 的行为如您所见,资金不足时会按最大可用资金下单。 文档已在 develop 分支修复,可查看 https://rqalpha.readthedocs.io/zh_CN/develop/api/base_api.html#order-target-percent
Sorry, something went wrong.
order_target_portfolio 按您的尝试结果看起来是有 bug。待修复
感谢迅速的反馈,中秋快乐!
额....我又发现 order_value 也是类似的,资金不足的时候是按最大可用资金下单。
@Cuizi7 order_target_percent('000002.XSHE', 0.7) order_target_percent('000001.XSHE', 0.3) 关于这种情况可以加一个api,优先执行卖出,场景也说得过去 ~
Cuizi7
No branches or pull requests
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🍺
The text was updated successfully, but these errors were encountered: