溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VNPY參數優化功能v1版本中的更新參數批量生成方法是什么

發布時間:2021-12-04 15:35:54 來源:億速云 閱讀:192 作者:柒染 欄目:編程語言

本篇文章給大家分享的是有關VNPY參數優化功能v1版本中的更新參數批量生成方法是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

VNPY的參數優化功能,是策略優化的重要功能。主要就是按照范圍生成批量的參數組合,然后成批跑完,選出最優的方法的。

在ctaBaclesting.py中的addParameter方法提供了批量導入參數的方法。就是這樣一個參數一個參數填入。addParameter會按照1為初始,5為結束,2為步進,生成[1,3,5]參數隊列

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

但是有時候參數比較多,如果參數是已經維護list這樣情況,就不好支持。我寫了個v2版本。傳入的是key,和一個參數定義,可以是tuple元祖,隊列list,或者單個值。 

#----------------------------------------------------------------------
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) 這樣修改后,就可以不用一個一個加入,如下批量加入。

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)

以上就是VNPY參數優化功能v1版本中的更新參數批量生成方法是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女