🚀 AI 一键生成 ptrade 策略代码
立即体验

ptrade 如何通过 etf_basket_order 的 info 参数精准配置 ETF 成分股现金替代与限价?

ptrade | 发布时间: 2026/8/1
以下内容由 EasyQuant 生成。

问题描述

请根据以下 SEO 主题生成完整页面内容:

Title: ptrade ETF 篮子下单进阶:etf_basket_order 的 info 参数高级配置

Question: ptrade 的 etf_basket_order 函数中 info 参数如何设置成分股现金替代和限价?

解决方案

ptrade ETF 篮子下单进阶:etf_basket_order 的 info 参数高级配置\n\n在 ptrade 量化交易系统中,etf_basket_order 函数用于进行 ETF 成分股篮子的批量买卖与套利交易。通过合理配置 info 参数,开发者可以实现对单个成分股的现金替代持仓替代以及自定义委托限价的精准控制。\n\n---\n\n## 一、etf_basket_order 接口简介\n\netf_basket_order 仅在股票交易模块(客户端环境)可用。\n\n### 函数签名\npython\netf_basket_order(etf_code, amount, price_style=None, position=True, info=None)\n\n\n### 参数说明\n1. etf_code: 单支 ETF 代码,例如 '510050.SS'(必填,str)。\n2. amount: 下单篮子份数,正数表示买入,负数表示卖出(必填,int)。\n3. price_style: 设定默认委托价位,支持 'B1'~'B5''S1'~'S5''new'(最新价),默认为最新价(str)。\n4. position: 篮子买入时是否使用持仓替代(bool,默认 True)。\n5. info: 成分股个性化配置字典(Mapping[str, Mapping[str, Union[int, float]]])。\n\n---\n\n## 二、info 参数字典结构与字段详解\n\ninfo 参数是一个双层嵌套字典:\n- Key(外层): 成分股代码,如 '600000.SS'。\n- Value(外层): 针对该成分股的设置字典(Key-Value)。\n\n### info 内部字段列表\n\n| 字段名 | 类型 | 说明 | 取值及含义 |\n| :--- | :--- | :--- | :--- |\n| cash_replace_flag | int | 现金替代标志 | 1: 替代,0: 不替代。仅在标的允许现金替代时生效。不传则默认不替代。 |\n| position_replace_flag | int | 持仓替代标志 | 1: 替代,0: 不替代。不传则按全局 position 参数计算。 |\n| limit_price | float | 针对该成分股设定的委托价格 | 具体的浮点数价格。不传则按全局 price_style 参数计算。 |\n\n---\n## 三、Python 代码配置示例\n\n以下示例展示了如何在 ptrade 策略中为 510050.SS 篮子下单设置指定的成分股现金替代和自定义限价:\n\npython\ndef initialize(context):\n g.security = get_Ashares()\n set_universe(g.security)\n\ndef handle_data(context, data):\n # 设置特定成分股的 info 配置字典\n # 对 600000.SS 设置现金替代,并指定限价为 12.00 元\n # 对 600036.SS 不做现金替代,但指定卖二价风格以外的独立限价 35.50 元\n stock_info = {\n '600000.SS': {\n 'cash_replace_flag': 1, # 开启现金替代\n 'position_replace_flag': 1, # 开启持仓替代\n 'limit_price': 12.00 # 自定义委托限价\n },\n '600036.SS': {\n 'cash_replace_flag': 0, # 不做现金替代\n 'limit_price': 35.50 # 覆盖全局 price_style 限价\n }\n }\n \n # 执行 ETF 篮子下单:买入 1 份 510050 篮子,默认按卖二价(S2)委托\n order_dict = etf_basket_order(\n etf_code='510050.SS',\n amount=1,\n price_style='S2',\n position=False,\n info=stock_info\n )\n \n log.info("篮子下单订单结果: %s" % order_dict)\n\n\n---\n\n## 四、注意事项\n\n1. 现金替代前提: cash_replace_flag=1 仅在柜台及清单中该成分股属于“允许现金替代”状态时才有效,禁止替代的标的传入 1 无效。\n2. 价格精度限制: 股票限价 limit_price 需注意价格保留两位小数(如 12.00),避免精度问题导致柜台拒单。\n3. 返回值格式: etf_basket_order 成功时返回字典 {股票代码: order_id},失败时返回空字典 {}