量化交易prade开户!量化新手必看!Ptrade中set_benchmark函数一招搞定策略
发布时间:3小时前阅读:50
各位小伙伴我们继续ptrade函数的讲解,今天要讲的函数是set_benchmark函数,它就像给策略准备了一把 "对比尺子"。
比如咱们买菜时,会问 "昨天多少钱",用昨天的价格当尺子看今天贵不贵;又比如咱们体检时,医生会拿 "健康标准值" 当尺子,看各项指标正不正常 —— 这个函数就是给策略找一把 "标准尺子",帮咱们清楚知道:策略赚的钱,到底算不算多。
set_benchmark函数的作用特别好理解:告诉策略 "跟谁比",用这个 "谁" 当标准来判断策略做得好不好。举个生活中的例子:如果你买了银行股,想知道自己的股票赚得怎么样 —— 总不能瞎猜吧?通常会跟 "银行指数" 比:如果银行指数涨了 5%,你的股票涨了 8%,说明比行业平均好;如果只涨了 3%,说明没跑赢行业。
这里的 "银行指数",就是用set_benchmark设定的 "标准尺子"。默认情况下,系统会用 "沪深 300 指数(000300.SS)" 当尺子,如果你想换其他尺子(比如创业板指、茅台股票),就用这个函数来设定。
函数怎么用呢?
set_benchmark函数的用法超级简单,就像 "指定用哪把尺子",只需要写 1 行代码,而且只能在initialize里用:

添加图片注释,不超过 140 字(可选)
上面这行set_benchmark("399986.SZ"),意思就是告诉策略:以后拿"中证银行指数"当参照,看看策略收益有没有跑赢这个指数。
关于参数,其实就一个:
benchmark:对比标的的代码,字符串格式。可以是指数代码(如"000300.SS"代表沪深300),也可以是个股代码(如"600036.SS"代表招商银行)。系统默认是沪深300指数(000300.SS),如果你不调用这个函数,策略就默认跟沪深300比。
就这么简单,一行代码,一个参数,搞定。记住了,只能在initialize里写,其他地方调用会报错。

添加图片注释,不超过 140 字(可选)
2)死规矩:只能在initialize里用
这个函数有个"铁规矩"——必须写在initialize函数内部,就像"比赛开始前先确定对手",不能在比赛途中临时换参照。如果写在其他地方(比如handle_data里),策略会直接报错,这一点务必要记住。
特别提醒:如果你不主动调用set_benchmark做任何设置,系统会默认选用沪深300指数(000300.SS)的每日价格,作为衡量策略好坏以及计算各项风险指标的基准。只有当你希望换成其他股票、指数或ETF的价格作为参照时,才需要用这个函数来指定。
下面我们用2个具体场景来实战演练一下:
场景1:模拟买银行股,就跟银行指数比
逻辑:假如你持仓的是工商银行,最适合拿"中证银行指数"当那把尺子,从而判断你的个股收益有没有跑赢整个银行行业。代码可以这样写:

添加图片注释,不超过 140 字(可选)
设置好基准之后,不需要额外写任何代码。回测跑完,系统会在结果页面自动展示两个核心数据:
你的策略收益率:比如赚了 8%;
基准收益率:中证银行指数同期赚了 5%;

添加图片注释,不超过 140 字(可选)
场景2:模拟买白酒股,就跟茅台比
逻辑:如果你持仓的是山西汾酒,想看看它跟白酒龙头贵州茅台相比表现如何,同样可以用一只股票来当"尺子",而不一定非是指数不可。

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)
新手注意:
- 只能在initialize里写 这个函数就像“考试前确定评分标准”,不能在考试中途换标准——写在其他地方会报错。记住,只在initialize里调用就行了。
- 不设定也没关系,有默认尺子 如果你没写set_benchmark,系统会自动用“沪深300指数(000300.SS)”当尺子,相当于默认跟“全市场平均水平”做对比。新手阶段可以先不设定,等熟悉了再换成自己想要的基准。
欢迎交流,点头像添加咨询!!AA级上市券商,免费理财咨询,资金量大股票佣金万0.85,逆回购一折!专项两融4%;港股通资金大W0.7;北交所W2(提供快速通道抢碎股)!ETF万0.5,期权1.8元全包,ETF免申赎费!免费提供QMT+ptrade量化软件(含教程和答疑群)、万得宏汇套利软件、VIP极速通道、L2十档行情!!可选靓号开户!支持T0智能算法!
温馨提示:投资有风险,选择需谨慎。
-
REITs认购&交易权限怎么开?和股票基金有3处不同
2026-08-17 15:40
-
新三板是什么?权限怎么开?三大条件缺一不可
2026-08-17 15:40
-
港股通一笔交易贵在哪?汇率结算+3项费用全拆解
2026-08-17 15:40


问一问

+微信
分享该文章
