為VNPY增加資料庫記錄交易資料功能
在VNPY中,並沒有提供實際交易資料庫記錄功能,雖然可以透過第三方交易軟體去讀取,但是對於針對單個策略交易效果驗證還是不方便,這裡說以下為VNPY增加資料庫記錄交易資料功能。
其實主要還是呼叫VNPY已經提供的功能。
1.在vnpy.trader.app.ctaStrategy.ctaBase中增加一個新的資料庫。
按照你的習慣給名字,比如 DEAL_DB_NAME = 'VnTrader_DEAL_Db'
2.在 vnpy.trader.app.ctaStrategy.ctaTemplate 中,增加一個新的function.
def insertData(self, dbName, collectionName, data): if self.trading: self.ctaEngine.insertData(dbName, collectionName, data)
3. 在策略onTrade function中加入下面程式碼,用策略名字做collection名字
def onTrade(self, trade): # 發出狀態更新事件 """收到成交推送(必須由使用者繼承實現)""" # 對於無需做細粒度委託控制的策略,可以忽略onOrder t = trade self.insertData(DEAL_DB_NAME,self.name,t)
在策略程式碼中,如果沒有DEAL_DB_NAME的引用會不成功,請在策略中加入引用
from vnpy.trader.app.ctaStrategy.ctaBase import DEAL_DB_NAME
或者在
self.insertData(DEAL_DB_NAME,self.name,t)
直接寫死,"DEAL_DB_NAME"
-----------------------------------------------2019年01月30日更新--------------------------------------------------------
發現寫入資料的交易時間 tradeTime 只有時間,沒有日期,不方便分析。開了下原始碼,修改 vnpy.trader.app.ctaStrategy.ctaTemplate 比較簡單。
如果發現插入資料是VtTradeData物件,修改tradeTime
from vnpy.trader.vtObject import VtTradeData from datetime import datetime def insertData(self, dbName, collectionName, data): if self.trading: if isinstance(data,VtTradeData): data.tradeTime = datetime.now().strftime('%Y-%m-%d %H:%M:%S') self.ctaEngine.insertData(dbName, collectionName, data)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22259926/viewspace-2564798/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫mysql學習筆記記錄資料庫MySql筆記
- MySql資料庫筆記(功能齊全)MySql資料庫筆記
- 利用聚寬(Joinquant)資料來源為vnpy新增期貨行情資料
- MySQL 億級資料資料庫最佳化方案測試-銀行交易流水記錄的查詢MySql資料庫
- 針對vnpy的mongodb資料庫,合併多個主力合約行情為連續行情資料MongoDB資料庫
- SQL Server 資料庫基本記錄(一)SQLServer資料庫
- 向量資料庫Chroma學習記錄資料庫
- cmdb 查詢資料庫操作記錄資料庫
- WindowsServer 2012資料庫遷移記錄WindowsServer資料庫
- SQL Server 資料庫基本記錄(二)SQLServer資料庫
- SQL Server 資料庫基本記錄(三)SQLServer資料庫
- 向量資料庫之Lancedb學習記錄資料庫
- 常見資料庫最佳化記錄資料庫
- thinkphp6多資料庫配置記錄PHP資料庫
- VNPY 行情資料中非行情資料清理
- Python3爬蟲資料入資料庫---把爬取到的資料存到資料庫,帶資料庫去重功能Python爬蟲資料庫
- MySQL 更改資料庫資料儲存目錄MySql資料庫
- 華為雲資料庫戰略啟示錄資料庫
- 不同資料庫限制取前N條記錄資料庫
- 為VNPY 2版本加入聚寬資料來源
- 資料庫存資料時,邏輯上防重了為啥還會出現重複記錄?資料庫
- 資料庫大事記資料庫
- 資料庫-隨記資料庫
- 資料庫雜記資料庫
- phpMyAdmin管理資料記錄PHP
- 通過觸發器記錄資料庫連線資訊觸發器資料庫
- 雲資料建模:為資料倉儲設計資料庫資料庫
- 資料庫物件資訊記錄表|全方位認識 mysql 系統庫資料庫物件MySql
- 【MySQL 資料庫】MySQL目錄MySql資料庫
- MYSQL資料庫表記錄刪除解決方案MySql資料庫
- 面試問題記錄 二 (資料庫、Linux、Redis)面試資料庫LinuxRedis
- 資料庫安全審計在資料安全中的功能資料庫
- 並推出了關係型資料庫功能來補充其核心NoSQL資料庫功能資料庫SQL
- 資料恢復記錄:硬碟分割槽損壞修復SqlServer資料庫過程資料恢復硬碟SQLServer資料庫
- 【PG結構】Postgresql資料庫資料目錄說明SQL資料庫
- Ubuntu 上更改 MySQL 資料庫資料儲存目錄UbuntuMySql資料庫
- 大資料實驗記錄大資料
- Realm 升級資料庫,為表新增新的Field遇到的異常記錄資料庫