融资与自动换汇设置¶
这组接口读取或设置真实证券账户的融资、自动换汇和日本跨币种交易规则。它们不提交资金兑换、转账或划拨任务。当前尚未完成真实设备验证。
所有接口需要启用 --enable-desktop-phase2-reads。设置接口还需要独立启用 FUTU_ACCOUNT_FUNDING_SETTINGS_WRITES,默认关闭。
| 设置 | REST POST 读取 | REST POST 设置 |
|---|---|---|
| 融资 | /api/trd/get-account-financing-setting |
/api/trd/set-account-financing-setting |
| 自动换汇 | /api/trd/get-account-auto-exchange-setting |
/api/trd/set-account-auto-exchange-setting |
| 日本自动兑外币 | /api/trd/get-account-foreign-exchange-setting |
/api/trd/set-account-foreign-exchange-setting |
| 日本自动兑回本币 | /api/trd/get-account-local-exchange-setting |
/api/trd/set-account-local-exchange-setting |
CLI 命令与上述路径的末段相同,通过 --c2s-stdin 读取 JSON,配合 --rest-url 或 --rest-port。MCP 工具名为对应命令的下划线形式并加 futu_ 前缀,参数放在 c2s_json 字符串中。原生接口与 gRPC 使用相应的 protobuf 请求。各接口保留失败响应中的安全状态和回执。
读取需要 acc:read;设置同时需要 acc:read 和 trade:real。请求中的每个账户及其实际市场都必须在调用者的权限范围内。这些规则作用于整个证券业务账户,受限市场密钥必须覆盖该账户涉及的全部市场。模拟交易权限或交易解锁权限不能代替真实交易权限。
读取请求必须提供 broker_id、非空 account_ids 和 extension_version: 1。设置请求必须提供 broker_id、account_id、非空 intent_key、显式布尔值 enabled 和 extension_version: 1。自动换汇设置还必须显式提供 allow_enable_financing;值为 false 时,系统不会为了开启自动换汇先开启融资。缺少字段与显式 false 不等价。
账户必须来自当前有效的账户查询结果。账户选择可使用已证明的综合账户 ID 或对应证券业务账户 ID,不能以期货、加密货币等同级业务 ID 代替。无法确认证券业务账户、账户来源或功能支持时,返回未就绪或不支持。接口不会把缺失的账户字段当作关闭状态,也不会为查询设置而隐式刷新全部账户。
设置回执与重试¶
同一调用者重用 intent_key 时,原始账户选择与设置参数必须保持一致。原计划、已发送步骤和回执持久保存。并发重入复用原操作或返回已有回执,不会重复发送;已发送但结果未知的设置不会自动重发,也不能仅凭之后读到相同状态就认定原设置成功。
关闭融资时,若当前账户启用了自动换汇,需要先关闭自动换汇并读回确认,再关闭融资。开启自动换汇时,如果融资尚未开启,只有 allow_enable_financing: true 才允许先开启融资。前置步骤失败、结果未知或尚未读回确认时,不执行后续步骤。
receipt.state 区分准备、等待读回、发送结果未知、完成、拒绝与状态不匹配。steps[].dispatch 表示发送及回执状态,steps[].observation 表示独立读回结果;成功回执本身不等于已完成读回。成功回执后仍等待读回时,显式重用同一意图可以再次读取原账户状态,不会重新发送设置。is_noop 表示初始有效观察已经满足目标,不是合成的后端成功回执。
如果新的权威融资观察明确否定尚未发送的后续步骤所需前置条件,计划以状态不匹配终止。terminal_observation 保存该新观察,原始 plan.initial 和已确认 ACK 保持不变;新意图可以重新检查条件并执行。已经发送且结果未知的步骤不能通过这种方式解除占用。
融资查询分别返回原始字段、effective_enabled 和 effective_origin。回执确认的有效值不会改写原始账户字段;后续账户刷新会替换该有效值。自动换汇及跨币种读回保留状态 0(关闭)、1(等待关闭)、2(开启),以及未知数值和字段缺失;等待关闭不能当作已关闭。
本地结构化测试不构成真实后端可用性或发布验收。