3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在JoinQuant(聚宽)量化平台上,期货分时图中的“实时均价”(即当日开盘至当前时刻的成交均价)并没有直接作为一个现成的属性提供,但我们可以通过获取当日的累计成交额和累计成交量来轻松计算得出。
期货实时均价 = 当日累计成交额 / (当日累计成交量 * 合约乘数)
你可以使用聚宽的 get_current_tick() 函数来获取当前时刻的快照数据(Tick数据),该数据中包含了截至当前时刻的累计成交量(volume)和累计成交额(money)。
以下是一个在分钟级别或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} 暂无成交数据")
get_current_tick() 是回测环境和模拟交易专用的 API,支持在 run_daily、handle_data 或 handle_tick 中调用。如果在研究环境(Jupyter Notebook)中,需要使用 get_ticks() 函数获取历史 tick 数据进行计算。