想跑次高頻策略?快來看看Numpy處理真格量化tick數據的技巧

使用澎博真格量化時,很多用戶希望用numpy處理tick數據,包括tick數據的留存和運算。

這裏有一些技巧。

因爲tick數據量比較大,爲了降低系統的運算負擔,我們不應該在內存裏保存大量tick數據。

比如我們只想保存過去10個tick。

可以在OnStart部分初始化一個數組:

tickarray=np.empty(10, dtype ='int16' , order = 'C')

爲了全局調用可以在變量前邊加個“g.”.

初始化數組

該數組的初始值全是0。

然後在OnQuote部分,我們可以把最新的tick價格逐一存儲到這個g.tickarray裏邊。

假設在一段時間後,這個數組裏都已經存入了歷史tick價格。

比如在t時刻,

這個數組裏價格是[2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509]

到了t+1時刻,有一筆新的tick價格生成,比如2510,我們用變量newprice代表這個最新價格。

更新數組

由於numpy的array沒有pop的方法,我們可以用數組裁切再插入的方法更新這個tick價格數組:

g.tickarray=g.tickarray[1:10] #裁掉數組的第一個價格數據,也就是2500。

g.tickarray=np.insert(g.tickarray,9,newprice) #把最新價格插入數組的最後一位。

現在這個數組就被更新爲:

[ 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509,2510]

這樣我們就可以回答最新tick比前邊第3個tick高多少的問題。

以及快速計算這些tick的均值:

g.tickarray.mean()

更加快捷地設計基於Tick的交易策略。

不過,這是性能最高的方法麼?且聽下回分解。

下回分解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章