首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >量化新手必看!Ptrade中set_benchmark函数一招搞定策略

量化新手必看!Ptrade中set_benchmark函数一招搞定策略

原创
作者头像
用户12567181
发布2026-08-18 14:16:54
发布2026-08-18 14:16:54
130
举报
文章被收录于专栏:量化软件开通量化软件开通

各位小伙伴我们继续ptrade函数的讲解,今天要讲的函数是set_benchmark函数,它就像给策略准备了一把 "对比尺子"。

比如咱们买菜时,会问 "昨天多少钱",用昨天的价格当尺子看今天贵不贵;又比如咱们体检时,医生会拿 "健康标准值" 当尺子,看各项指标正不正常 —— 这个函数就是给策略找一把 "标准尺子",帮咱们清楚知道:策略赚的钱,到底算不算多。

set_benchmark函数的作用特别好理解:告诉策略 "跟谁比",用这个 "谁" 当标准来判断策略做得好不好。举个生活中的例子:如果你买了银行股,想知道自己的股票赚得怎么样 —— 总不能瞎猜吧?通常会跟 "银行指数" 比:如果银行指数涨了 5%,你的股票涨了 8%,说明比行业平均好;如果只涨了 3%,说明没跑赢行业。

这里的 "银行指数",就是用set_benchmark设定的 "标准尺子"。默认情况下,系统会用 "沪深 300 指数(000300.SS)" 当尺子,如果你想换其他尺子(比如创业板指、茅台股票),就用这个函数来设定。

函数怎么用呢?

set_benchmark函数的用法超级简单,就像 "指定用哪把尺子",只需要写 1 行代码,而且只能在initialize里用:

上面这行set_benchmark("399986.SZ"),意思就是告诉策略:以后拿"中证银行指数"当参照,看看策略收益有没有跑赢这个指数。

关于参数,其实就一个:

  • benchmark:对比标的的代码,字符串格式。可以是指数代码(如"000300.SS"代表沪深300),也可以是个股代码(如"600036.SS"代表招商银行)。系统默认是沪深300指数(000300.SS),如果你不调用这个函数,策略就默认跟沪深300比。

就这么简单,一行代码,一个参数,搞定。记住了,只能在initialize里写,其他地方调用会报错。

2)死规矩:只能在initialize里用

这个函数有个"铁规矩"——必须写在initialize函数内部,就像"比赛开始前先确定对手",不能在比赛途中临时换参照。如果写在其他地方(比如handle_data里),策略会直接报错,这一点务必要记住。

特别提醒:如果你不主动调用set_benchmark做任何设置,系统会默认选用沪深300指数(000300.SS)的每日价格,作为衡量策略好坏以及计算各项风险指标的基准。只有当你希望换成其他股票、指数或ETF的价格作为参照时,才需要用这个函数来指定。


下面我们用2个具体场景来实战演练一下:

场景1:模拟买银行股,就跟银行指数比

逻辑:假如你持仓的是工商银行,最适合拿"中证银行指数"当那把尺子,从而判断你的个股收益有没有跑赢整个银行行业。代码可以这样写:

设置好基准之后,不需要额外写任何代码。回测跑完,系统会在结果页面自动展示两个核心数据:

  • 你的策略收益率:比如赚了 8%;
  • 基准收益率:中证银行指数同期赚了 5%;

场景2:模拟买白酒股,就跟茅台比

逻辑:如果你持仓的是山西汾酒,想看看它跟白酒龙头贵州茅台相比表现如何,同样可以用一只股票来当"尺子",而不一定非是指数不可。

新手注意:

  1. 只能在initialize里写 这个函数就像“考试前确定评分标准”,不能在考试中途换标准——写在其他地方会报错。记住,只在initialize里调用就行了。
  2. 不设定也没关系,有默认尺子 如果你没写set_benchmark,系统会自动用“沪深300指数(000300.SS)”当尺子,相当于默认跟“全市场平均水平”做对比。新手阶段可以先不设定,等熟悉了再换成自己想要的基准。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档