3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 JoinQuant(聚宽)量化平台上,要在回测结果页面的收益曲线下方绘制自定义指标的曲线(例如 RSI、均线等),你需要调用专门的画图函数:record()。
record() 函数详解record() 是聚宽提供的回测环境/模拟专用 API,用于在图表上描画额外的自定义曲线。
调用格式:
record(**kwargs)
参数说明:
key=value 形式的参数。key:作为图表上显示的曲线名称(图例)。value:当前时间点该指标的具体数值。注意:值必须是标量(如整数、浮点数),不能是列表(list)。以下是一个简单的策略示例,展示了如何在 handle_data 中计算指标并使用 record() 绘制出来:
# 导入聚宽函数库
import jqdata
def initialize(context):
# 设定要操作的股票:平安银行
g.security = '000001.XSHE'
# 设定沪深300作为基准
set_benchmark('000300.XSHG')
# 开启动态复权模式(真实价格)
set_option('use_real_price', True)
def handle_data(context, data):
security = g.security
# 获取股票的收盘价数据
close_data = attribute_history(security, 5, '1d', ['close'])
# 计算自定义指标:例如过去五天的平均价格 (MA5)
MA5 = close_data['close'].mean()
# 获取当前价格
current_price = data[security].close
# ---------------------------------------------------------
# 核心步骤:使用 record 函数绘制曲线
# 这里我们同时绘制两条曲线:当前价格 和 5日均线
# ---------------------------------------------------------
record(Price=current_price, MA5=MA5)
# 也可以画一条固定值的参考线,例如 RSI 的超买超卖线
# record(Overbought=70, Oversold=30)
record() 的重要注意事项record 传入的值(而不是每分钟都画一个点)。value 必须是单个数值,如果你计算出的指标是一个 Pandas Series 或 List,请提取出当天的具体数值(例如 rsi_value[-1])后再传入 record()。通过合理使用 record() 函数,你可以非常直观地在回测结果中观察你的自定义指标(如 RSI、MACD、布林带等)与策略收益、标的价格之间的关系,极大地提升策略分析的效率。