🚀 AI 一键生成 joinquant 策略代码

JoinQuant 账户对象:可用资金与可取资金有何不同?

joinquant | 发布时间: 2025/12/22
以下内容由 EasyQuant 生成。

问题描述

账户里的可用资金和可取资金有什么区别?

解决方案

在聚宽(JoinQuant)及中国A股市场的交易规则中,可用资金(Available Cash)和可取资金(Transferable Cash)是两个不同的概念,主要区别在于资金的用途和结算周期(T+1制度)。

以下是详细的区别说明:

1. 定义区别

  • 可用资金 (Available Cash)

    • 定义:当前账户中可以用来购买证券(如股票、基金等)的资金。
    • API属性context.portfolio.available_cash
    • 用途:用于策略内部的买入操作。
  • 可取资金 (Transferable Cash)

    • 定义:当前账户中可以提现(转出到银行卡)的资金。
    • API属性context.portfolio.transferable_cash
    • 用途:用于计算账户实际可转出的现金流,通常不包括当日卖出股票回笼的资金。

2. 核心差异:T+1 结算制度

两者出现差异的主要原因是中国A股市场实行的 T+1 资金交收制度

  • 当日卖出股票获得的资金
    • 可用:卖出成交后,资金立即回到账户,可以在当天直接用来购买其他股票。因此,这部分资金会计入“可用资金”。
    • 不可取:卖出成交后的资金,当天不可以提现,需要等到第二个交易日(T+1)完成交收后才能提现。因此,这部分资金当天不计入“可取资金”。

3. 举例说明

假设您的账户初始状态为:现金 0 元,持有市值 10,000 元的股票 A。

  1. 周一上午 10:00,您卖出了全部股票 A,成交金额为 10,000 元。

    • 可用资金10,000 元(您可以马上用这笔钱买入股票 B)。
    • 可取资金0 元(这笔钱当天不能转出)。
  2. 周二开盘前(资金完成交收)。

    • 可用资金10,000 元
    • 可取资金10,000 元(此时可以提现了)。

4. 总结公式

一般情况下,两者的关系如下:

$$ \text{可用资金} = \text{可取资金} + \text{当日卖出证券所得资金} $$

  • 可用资金 $\ge$ 可取资金

Q&A

Q: 在编写策略时,下单函数应该使用哪个资金属性?
A: 在编写买入逻辑时,应使用 可用资金 (context.portfolio.available_cash) 来判断是否有足够的钱进行购买。

Q: 为什么我的可用资金大于可取资金?
A: 这通常是因为您在当日进行了卖出操作。卖出股票回笼的资金当天可用(买股)但不可取(提现),导致可用资金大于可取资金。

Q: 模拟交易中的出入金函数 inout_cash 影响哪个资金?
A: inout_cash 模拟的是银证转账。如果是入金(正数),可用资金和可取资金都会增加;如果是出金(负数),则必须有足够的可取资金才能操作成功。