🚀 AI 一键生成 joinquant 策略代码
立即体验
👉 AI 生成代码 👈

JoinQuant实盘/模拟中如何获取当日get_money_flow数据及实时涨跌幅?

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

问题描述

如何获取当日get_money_flow数据?

老师,我开通了一创实盘交易账户。通过get_money_flow(security_list, start_date=None, end_date=None, fields=None, count=None)可以获取股票的涨跌幅,在一创聚宽平台,实盘交易中想要获取当前时刻的交易数据,end_date参数应该输入什么?

解决方案

您好!关于在实盘/模拟盘中获取当日数据,有以下几点需要注意:

1. 关于 get_money_flow 获取当日数据

在 JoinQuant 平台中,get_money_flow 提供的是日线级别的资金流向数据。根据官方 API 文档的特别说明:

“在回测/模拟中,为避免未来函数,无法获取当前逻辑时间的那一条数据。”

这意味着,即使您将 end_date 设置为 context.current_dt(当前时间)或 datetime.date.today()(今天),您最多也只能获取到昨天(上一个交易日)的数据。因为当日的资金流向数据需要等收盘后交易所结算才能生成,盘中是无法获取的。

2. 如何获取当前时刻的交易数据(如涨跌幅)?

如果您在盘中(实盘/模拟盘)的目的是获取当前时刻的最新价、开盘价或计算当天的实时涨跌幅,您不应该使用 get_money_flow,而应该使用专门获取实时数据的 API:get_current_data()

get_current_data() 可以获取当前时刻的最新价(last_price)、当日开盘价(day_open)等信息。结合前一天的收盘价,您就可以轻松计算出当前的实时涨跌幅。

代码示例:获取当前最新价并计算实时涨跌幅

def handle_data(context, data):
    security = '000001.XSHE'
    
    # 1. 获取当前时刻的实时数据
    current_data = get_current_data()
    
    # 获取最新价
    last_price = current_data[security].last_price
    
    # 2. 获取昨天的收盘价 (用于计算涨跌幅)
    # 使用 attribute_history 获取过去1天的收盘价
    history_data = attribute_history(security, 1, '1d', ['close'])
    pre_close = history_data['close'][0]
    
    # 3. 计算实时涨跌幅 (%)
    if pre_close > 0:
        change_pct = (last_price - pre_close) / pre_close * 100
        log.info(f"{security} 当前最新价: {last_price}, 昨收: {pre_close}, 实时涨跌幅: {change_pct:.2f}%")

总结

  • 查资金流向:用 get_money_flow,但盘中只能拿到昨天的数据。end_datecontext.current_dt 即可。
  • 查实时涨跌幅/最新价:用 get_current_data() 获取 last_price,配合 attribute_history 获取昨收价自行计算,这是实盘和高频策略中最标准、最无延迟的做法。