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)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22259926/viewspace-2652233/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- VNPY 批量優化引數,並輸出到excel優化Excel
- 一個小技巧,VNPY策略引數優化時候顯示完成數量和總數量優化
- OpenCV中的SVM引數優化OpenCV優化
- 利用粒子群優化演算法(PSO)來優化vnpy的量化策略引數優化演算法
- weblogic幾個優化引數Web優化
- ActiveMQ 引數優化MQ優化
- Myisam & InnoDB 優化引數優化
- MySQL引數配置優化MySql優化
- C#通過反射獲取類中的方法和引數個數,反射呼叫方法帶引數C#反射
- python多程式簡介,和VNPY多程式引數優化程式碼分析Python優化
- 查詢初始化引數的方法(一)
- Oracle可變引數的優化Oracle優化
- Oracle優化相關的一些引數Oracle優化
- c# 方法引數_值引數C#
- c# 方法引數_引用引數C#
- Sklearn GridSearchCV 引數優化優化
- 轉:tsm版本控制_的4個引數
- 一個Java方法能使用多少個引數?Java
- 淺析MySQL語句優化中的explain引數MySql優化AI
- C#中的值引數,引用引數及輸出引數C#
- Oracle 各版本引數/隱藏引數 介紹Oracle
- c#方法引數_輸出引數C#
- c# 方法引數_陣列引數C#陣列
- 給一個介面傳遞引數,並接收返回的引數
- 調優引數
- 【SQL優化器】初始化引數SQL優化
- swoole優化核心引數調整優化
- Nginx實戰(六) 引數優化Nginx優化
- Linux 核心引數優化(for oracle)Linux優化Oracle
- Elasticsearch效能優化引數註解Elasticsearch優化
- spark job執行引數優化Spark優化
- Mysql 效能優化--基礎引數MySql優化
- 【SQL 效能優化】引數設定SQL優化
- Mysql優化系列(1)--Innodb重要引數優化MySql優化
- MySQL 效能優化之快取引數優化MySql優化快取
- linux下安裝oracle的個別優化引數LinuxOracle優化
- javascript bind()第一個引數以後引數介紹JavaScript
- 封裝一個強大的追加或更新多個Query引數並自動重新整理的JS方法,附加Query引數獲取封裝JS