我們在設計量化交易系統時有一個非常重要的效能指標,即“內部響應時間”。該指標為從系統收到資訊(比如價格資料)到發出委託的時間間隔。該指標只和量化交易系統內部處理資料的效能相關,和交易所、經紀商、天氣或其他任何外部環境都無關聯(也就是純粹是您自己程式設計水平的問題)。

策略跑得比熊貓還慢?--您也許錯過了閃電俠Deque

如果一個投資者的交易系統有更短的內部響應時間,那麼在其他條件相同的情況下,他就能更快地發出委託,更快地成交。如果眾多投資者採用相同或比較相似的策略(多虧了我們的科普工作,現在您也知道專業機構的策略思路了),那麼速度最快的那個投資者就會佔據最有利的地位,不但能夠第一個入場成交,還能先人一步去止盈止損。

策略跑得比熊貓還慢?--您也許錯過了閃電俠Deque

由於目前國內主要期貨交易所的行情一般是500毫秒(1毫秒為千分之一秒)一個切片,我們的交易一般也就在毫秒級別完成。

如何去衡量策略程式碼的執行速度呢?

神通廣大的Python可以實現的方式有很多,比如timeit函式。

策略跑得比熊貓還慢?--您也許錯過了閃電俠Deque

還記得我們曾經介紹過如何用真格量化跑tick策略麼,當時用的是Numpy裡的array來處理一系列tick資料。這是否是最快的方法呢?我們可以用timeit來測測速度。

策略跑得比熊貓還慢?--您也許錯過了閃電俠Deque

比如我們拿一個2×1000的陣列來模仿針對tick資料的佇列操作,即用一個佇列儲存5行資料,每行兩個整數,有新的一行資料時就對這個佇列進行先入先出的更新:

策略跑得比熊貓還慢?--您也許錯過了閃電俠Deque

我們選來進行速度競賽的選手包括Numpy、Pandas和Deque(還有其他的選手您可以自己試試),看看誰跑得更快。

測試結果如下:

Deque :

0.00146322382114秒

Pandas :

2.10415453728秒

Numpy Array :

0.00657957320599秒

跑得最快的Deque居然只用1。46毫秒就完成了操作,Numpy用了6。58毫秒,而Pandas用了驚人(慢得驚人)的2。1秒!

在這個佇列操作上,Deque的速度是Pandas的1438倍,Numpy的速度是Pandas的320倍。

策略跑得比熊貓還慢?--您也許錯過了閃電俠Deque

我們可以說,如果您不加考慮就使用Pandas來頻繁處理佇列資料,那很可能就輸在了起跑線上。您的策略程式“內部響應”時間就已經將您排除在高頻交易的朋友圈之外了。

如果您還在抱怨程式跑不快,不妨用timeit檢查一下到底是哪個地方掉了鏈子。

策略跑得比熊貓還慢?--您也許錯過了閃電俠Deque

— — — — — — E N D — — — — — —

往期文章:

Numpy處理tick級別資料技巧

真正賺錢的期權策略曲線是這樣的

多品種歷史波動率計算

如何實現全市場自動盯盤

AI是怎樣看懂研報的

真格量化策略debug秘籍

真格量化對接實盤交易

常見高頻交易策略簡介

如何用撤單函式改進套利成交

真格量化可訪問:

真格量化 - 期貨期權實盤量化平臺

https://

51zhenge。com

策略跑得比熊貓還慢?--您也許錯過了閃電俠Deque

真格量化微信公眾號,長按關注:

策略跑得比熊貓還慢?--您也許錯過了閃電俠Deque

遇到了技術問題?歡迎加入真格量化Python技術交流QQ群 726895887

策略跑得比熊貓還慢?--您也許錯過了閃電俠Deque