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策略引數優化時候顯示完成數量和總數量優化
- 利用粒子群優化演算法(PSO)來優化vnpy的量化策略引數優化演算法
- python多程式簡介,和VNPY多程式引數優化程式碼分析Python優化
- Sklearn GridSearchCV 引數優化優化
- C#通過反射獲取類中的方法和引數個數,反射呼叫方法帶引數C#反射
- 谷歌提出最新引數優化方法Adafactor,已在TensorFlow中開源谷歌優化
- 一個Java方法能使用多少個引數?Java
- 淺析MySQL語句優化中的explain引數MySql優化AI
- SOLIDWORKS引數化設計方法Solid
- 調優引數
- 封裝一個強大的追加或更新多個Query引數並自動重新整理的JS方法,附加Query引數獲取封裝JS
- linux核心引數優化重要項Linux優化
- swoole優化核心引數調整優化
- 【版本更新】PerfDog新增幫助引導,規範化CPU利用率與效能引數命名
- GridView傳遞兩個引數的方法View
- 聊一聊Jmeter的引數化JMeter
- 12.MyBatis學習--對映檔案_引數處理_單個引數&多個引數&命名引數MyBatis
- 一文搞清楚Java中的方法、常量、變數、引數Java變數
- 瞧瞧別人家的引數校驗,那叫一個優雅!
- 什麼是請求引數、表單引數、url引數、header引數、Cookie引數?一文講懂HeaderCookie
- mysql 引數調優MySql
- lr引數化
- 1.5 - Numpy的方法中,axis引數的理解
- JQuery中$.ajax()方法引數詳解jQuery
- @babel/preset-env的一個引數Babel
- c# 方法引數(傳值,傳引用,ref,out,params,可選引數,命名引數)C#
- 面試之jquery中的ajax方法引數面試jQuery
- Java中main方法引數String[ ] args的使用JavaAI
- 深入瞭解jquery中的ajax方法引數jQuery
- Ruby 方法中引數尾的Hash可以省略{}
- java方法引數中萬用字元的使用Java字元
- 介紹tomcat Connector 引數優化說明Tomcat優化
- JVM 引數調優(qbit)JVM
- JVM常用調優引數JVM
- 1,Spark引數調優Spark
- mybatis 的傳入引數如何既有物件又有單個引數MyBatis物件
- Java方法04:命令列傳遞引數、可變引數Java命令列