使用metabase做分析報表工具分析整體策略績效
之前使用 vnpy 自帶的回測程式碼,和一些 python 自開發,可以分析單個策略績效。但是如果對於多個策略和合約投資,想從多個維度,可以靈活的按照自定義特性來分析,還是需要一些專業工具。
一開始想使用一些 python 相關的,比如 QuantStats ,是一個非常好的策略績效分析庫,但是功能其實類似與 vnpy 自帶,可以針對單個策略做全面分析,但是缺乏多維度,組合分析。
後來覺得還是使用專門的 BI 分析軟體,選擇推薦度很高的開源 metabase 。
這裡分出三步驟出來,
第一步是在 vnpy 裡面定時輸出分析資料表,比如每日賬戶頭寸資訊,策略狀態表,歷史成交等,類似與 snashot 快照,這個也是一個 BI 傳統思路,就是分析資料表和業務資料表分離,畢竟一個方面業務資料再不停變動,直接分析效能受限,還有就是如果要做同比環比時候要用時點戳比較方便。雖然現在很多 BI 分析軟體可以號稱直接在業務表分析,個人感覺如果不是特別關注時效性,可以分離開來。
第二步是對分析資料表直接加工儲存中間資料,比如可以用 QuantStats 計算出一系列指標值儲存,這個可以在分析資料表到處時候自動生成,作為一個一次性資料更新,比如半夜時候。主要原因是一些複雜計算用 python 我更熟悉些,如果對於 SQL 語言更熟練,可以直接在 metabase 透過 native SQL 來實現。
第三步就是在metabase來組合抽取查詢;這個metabase可以直接用jar使用,非常方便;然後對接到儲存分析資料表的資料庫,就可以使用拖動導向來滿足大多數查詢分析需求,具體可以查詢相關。
一些截圖如下,可以專門定義一個dashborad,在dripdown下去,一些是metabase自動生成的
程式碼方面,比較零散,這裡提供一個是對賬戶頭寸儲存到資料庫表的示例。
我是在OmsEngine裡面註冊了一個時間事件,定義在某個時段輸出到資料庫,notExportAlready這個是一個bool值,一旦輸出就改成false,避免重複輸出,沒有想到特別好的定時方法。
def register_time_event(self,event: Event):
self.count += 1
if self.count > 30 and self.notExportAlready:
self.count = 0
if time(16,30) > datetime.now().time() > time(15,10) and 6 > datetime.now().weekday() > 0:
self.batchExport(1)
然後定義一致呼叫get_all_account, 寫入資料庫
accountlist = self.main_engine.get_all_accounts()
if accountlist:
database_manager.save_account_data(accountlist)
這裡如果想做一些處理,可以在這邊增加拼接。這裡不再累述了。
這邊定義比較偏個性化,如果可以其實可以在一個整體資料處理,把所有OMS業務資料(非行情)轉入到資料庫,然後用第三方做整體分析。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22259926/viewspace-2920728/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 績效管理整體解決方案(轉)
- 資料分析報表怎麼做
- 對PPQA績效難以展示的分析
- 加班做報表被嘲低效!快用大資料分析工具大資料
- 財務報表分析是在分析什麼?如何選擇財務報表分析工具
- 零程式碼做分析報表的bi軟體才是好軟體
- 做資料分析,軟體工具少不了,好用的資料分析軟體工具
- 國內外BI資料分析工具做報表有多大區別?
- 績效管理之KPI設定_系統分析員KPI
- JVM記憶體分析工具使用JVM記憶體
- 調整策略工具
- 不看後悔系列 | 秒做BI報表,告別低效分析
- 財務報表分析
- 庫存分析報表
- Get職場新知識:做分析,用大資料分析工具大資料
- 轉行資料分析,一定要學會做BI報表
- SAP存貨分析報表
- 計算器硬體維護人員如何做績效考核的方法
- 韌體分析工具Binwalk
- 38k Star!顛覆傳統BI,Metabase新一代智慧資料分析工具
- 表分析初體驗
- 以團隊績效帶動個人績效——企業績效管理的新路徑(轉)
- 零售資料分析報表這樣做,老闆狂點贊!
- 使用 Chrome 開發者工具分析記憶體問題Chrome記憶體
- 軟體人員績效考核新思路
- 德勤諮詢:2022中國汽車經銷商績效標杆分析報告(附下載)
- 【pt系列】MySQL慢日誌分析工具pt-query-digest使用、報告分析MySql
- "高績效"指南
- 如何分析報表效能問題
- 專案需求分析報告怎麼做
- 淺析 及整體分析 Relay 原始碼原始碼
- ==[圖]Spark系列(四)整體架構分析Spark架構
- Mybatis原始碼分析-整體設計(一)MyBatis原始碼
- 微信MMKV原始碼分析(一) | 整體流程原始碼
- jQuery原始碼分析系列 : 整體架構jQuery原始碼架構
- vue-router原始碼分析-整體流程Vue原始碼
- Libev原始碼分析 -- 整體設計原始碼
- 記憶體效能分析工具記憶體