🚀 AI 一键生成 joinquant 策略代码

JoinQuant 聚宽平台模拟盘修改资金(出入金)指南

joinquant | 发布时间: 2026/5/25
以下内容由 EasyQuant 生成。

问题描述

怎么修改模拟盘的资金呢?

解决方案

在 JoinQuant (聚宽) 平台上,如果您需要在模拟盘(或回测)运行过程中修改账户的可用资金,可以使用平台提供的专用 API 函数:inout_cash

inout_cash 函数详解

inout_cash(cash, pindex=0) 函数用于向账户转入或转出资金。当日的出入金会从当日开始记入成本,并用于计算收益(即当日结束计算收益时的本金是包含当日出入金金额的)。

参数说明:

  • cash: 浮点数或整数。代表出入金的金额。正数表示入金(增加资金),负数表示出金(减少资金)
  • pindex: 整数。在使用 set_subportfolios 创建了多个子仓位时,用于指定操作的 subportfolio 序号。从 0 开始,例如 0 指定第一个子账户,1 指定第二个子账户。默认为 0。

代码示例

以下是如何在策略代码中使用 inout_cash 来修改模拟盘资金的示例:

def handle_data(context, data):
    # 查看修改前的账户可用资金
    log.info('修改前账户可用资金:', context.portfolio.subportfolios[0].available_cash)
    
    # 增加资金:向账户转入 6666 元
    inout_cash(6666, pindex=0)
    
    # 查看增加资金之后账户的可用资金
    log.info('增加后账户可用资金:', context.portfolio.subportfolios[0].available_cash)
    
    # 减少资金:从账户转出 3000 元
    inout_cash(-3000, pindex=0)
    
    # 查看减少资金之后账户的可用资金
    log.info('减少后账户可用资金:', context.portfolio.subportfolios[0].available_cash)

注意事项

  1. 收益计算:使用 inout_cash 进行出入金操作后,系统会自动调整您的本金基数,从而保证收益率(returns)计算的准确性。例如,您追加了资金,这部分资金不会被算作策略的盈利。
  2. 多账户操作:如果您在 initialize 中使用了 set_subportfolios 配置了股票、期货等多个子账户,请务必通过 pindex 参数指定正确的账户进行资金修改。
  3. 账户间划转:如果您需要在不同的子账户之间转移资金,请使用 transfer_cash(from_pindex, to_pindex, cash) 函数,而不是分别调用两次 inout_cash