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

JoinQuant聚宽平台获取期货分时图实时均价的方法与代码示例

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

问题描述

请教大神,期货分时图中的实时均价如何获取?

请教大神,期货分时图中的实时均价如何获取?不胜感谢

解决方案

在JoinQuant(聚宽)量化平台上,期货分时图中的“实时均价”(即当日开盘至当前时刻的成交均价)并没有直接作为一个现成的属性提供,但我们可以通过获取当日的累计成交额累计成交量来轻松计算得出。

计算公式

期货实时均价 = 当日累计成交额 / (当日累计成交量 * 合约乘数)

实现方法

你可以使用聚宽的 get_current_tick() 函数来获取当前时刻的快照数据(Tick数据),该数据中包含了截至当前时刻的累计成交量(volume)和累计成交额(money)。

Python 代码示例

以下是一个在分钟级别或Tick级别策略中获取期货实时均价的示例代码:

# 导入聚宽函数库
import jqdata

def initialize(context):
    # 设定基准
    set_benchmark('000300.XSHG')
    # 开启动态复权模式(真实价格)
    set_option('use_real_price', True)
    
    # 设定要操作的期货合约,例如螺纹钢主力合约
    g.security = 'RB9999.XSGE'
    # 设定该品种的合约乘数(螺纹钢为10吨/手)
    g.multiplier = 10 

def handle_data(context, data):
    # 获取当前最新 tick 数据
    tick = get_current_tick(g.security)
    
    # 确保 tick 数据存在且当日已有成交
    if tick is not None and tick.volume > 0:
        # 提取累计成交额和累计成交量
        total_money = tick.money
        total_volume = tick.volume
        
        # 计算实时均价
        # 均价 = 累计成交额 / (累计成交量 * 合约乘数)
        realtime_avg_price = total_money / (total_volume * g.multiplier)
        
        log.info(f"时间: {context.current_dt}, 合约: {g.security}, 累计成交量: {total_volume}, 累计成交额: {total_money}, 实时均价: {realtime_avg_price:.2f}")
    else:
        log.info(f"{g.security} 暂无成交数据")

注意事项

  1. 合约乘数:不同期货品种的合约乘数不同(例如螺纹钢是10,白银是15,沪深300股指期货是300)。在计算均价时,必须除以对应的合约乘数,否则计算出的价格会偏大。
  2. API 适用环境get_current_tick() 是回测环境和模拟交易专用的 API,支持在 run_dailyhandle_datahandle_tick 中调用。如果在研究环境(Jupyter Notebook)中,需要使用 get_ticks() 函数获取历史 tick 数据进行计算。
  3. 夜盘处理:聚宽的期货数据已经处理好了夜盘逻辑,有夜盘的品种,其累计成交量和成交额会从前一日晚上的 21:00 开始累计,符合交易所的实际交易日划分规则。