3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在聚宽(JoinQuant)平台中,您可以通过 context.portfolio 对象来获取当前的账户资金状况和收益情况。这些属性通常在 handle_data、run_daily 或其他策略函数中调用。
以下是具体的属性名称和代码示例:
context.portfolio.total_value
context.portfolio.available_cash
context.portfolio.returns
您可以将以下代码复制到您的策略中进行测试(例如放在 handle_data 中):
# -*- coding: utf-8 -*-
def handle_data(context, data):
# 获取总资产
total_assets = context.portfolio.total_value
# 获取可用现金
available_cash = context.portfolio.available_cash
# 获取累计收益率 (转换为百分比显示)
total_returns = context.portfolio.returns * 100
# 打印信息到日志
log.info("当前总资产: %.2f" % total_assets)
log.info("当前可用现金: %.2f" % available_cash)
log.info("累计收益率: %.2f%%" % total_returns)
context.portfolio.positions_value。context.portfolio.starting_cash。set_subportfolios 设置了多个子账户(例如同时操作股票和期货),上述 context.portfolio 获取的是所有子账户的汇总信息。如果需要获取特定子账户的信息,请使用 context.subportfolios[i](i为子账户索引)。Q: context.portfolio.total_value 和 context.portfolio.positions_value 有什么区别?
A: total_value 是总资产,包含现金和持仓市值;而 positions_value 仅代表当前持有的证券(股票、基金、期货等)的市场价值,不包含现金。即:总资产 ≈ 可用现金 + 持仓市值 + 冻结资金。
Q: 为什么 context.portfolio.returns 显示的是小数?
A: 聚宽系统内部使用小数来表示比例。例如 0.05 代表 5%,-0.1 代表 -10%。在打印或展示时,通常需要乘以 100 并加上 % 符号以便于阅读。
Q: 如何查询当天的盈亏?
A: 可以通过 context.portfolio.daily_gains (当日收益额) 或 context.portfolio.daily_returns (当日收益率) 来获取当天的盈亏情况(注:部分旧版回测环境可能需要通过计算 total_value 变化来手动获取,建议查阅最新API文档确认支持情况)。