VNPY参数优化功能v1版本中的一个更新参数批量生成方法

发布时间:2025-05-25 01:37:20 作者:益华网络 来源:undefined 浏览量(1) 点赞(1)
摘要:VNPY的参数优化功能,是策略优化的重要功能。主要就是按照范围生成批量的参数组合,然后成批跑完,选出最优的方法的。 在ctaBaclesting.py中的addParameter方法提供了批量导入参数的方法。就

VNPY的参数优化功能,是策略优化的重要功能。主要就是按照范围生成批量的参数组合,然后成批跑完,选出最优的方法的。

在ctaBaclesting.py中的addParameter方法提供了批量导入参数的方法。就是这样一个参数一个参数填入。addParameter会按照1为初始,5为结束,2为步进,生成[1,3,5]参数队列

setting.addParameter(barMins, 1,5,2)

但是有时候参数比较多,如果参数是已经维护list这样情况,就不好支持。我写了个v2版本。传入的是key,和一个参数定义,可以是tuple元祖,队列list,或者单个值。 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#----------------------------------------------------------------------
def addParameterV2(self, key, value):
"""增加优化参数"""
if isinstance(value, tuple):
if len(value) == 4:
if value[3] == "int":
self.paramDict[key] = np.linspace(value[0], value[1], value[2]).astype(int).tolist()
else:
self.paramDict[key] = np.linspace(value[0], value[1], value[2]).tolist()
elif len(value) ==  3:
l = []
param = value[0]
while param <= value[1]:
l.append(param)
param += value[2]
self.paramDict[key] = l
elif isinstance(value, list):
self.paramDict[key] = value
else:
self.paramDict[key] = [value]

使用方法:

1,起始点,终结点,和步进 比如,那么就和之前一样的返回

setting.addParameterV2(barMins, (1,5,2))

setting.addParameterV2(barMins, (0,5,0.2))

2,   起始点,终结点,参数个数和是否int 比如

setting.addParameterV2(barMins, 1,5,3, "int") 会生成有3个整数参数的参数队列 [1, 3, 5]; setting.addParameterV2(barMins, 1,5,4, "float")会生成浮点数参数组 [1.0, 2.333333333333333, 3.6666666666666665, 5.0] 3,数列,就直接使用数列

setting.addParameterV2(barMins, [3.5.6])

4,单个数字,就直接使用单个数字

setting.addParameterV2(barMins,4)

这样修改后,就可以不用一个一个加入,如下批量加入。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
paradict = {
lWindow:40,
llDev: 8.0,
MAWindows:(5,12,5,"int"),
atrWindow:25,
slMultiplier:(3.0,6.0,3),
pRate:(0.002,0.010,5,"float"),
bMins:[3,5,10],
CDate:3,
endsize:(1,4,1),
endplus:(0,3,1)
}
for key,value in paradict.items():
setting.addParameterV2(key,value)

二维码

扫一扫,关注我们

声明:本文由【益华网络】编辑上传发布,转载此文章须经作者同意,并请附上出处【益华网络】及本页链接。如内容、图片有任何版权问题,请联系我们进行处理。

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何有关网站疑难问题!

您身边的【网站建设专家】

搜索千万次不如咨询1次

主营项目:网站建设,手机网站,响应式网站,SEO优化,小程序开发,公众号系统,软件开发等

立即咨询 15368564009
在线客服
嘿,我来帮您!