想跑次高频策略?快来看看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的交易策略。

不过,这是性能最高的方法么?且听下回分解。

下回分解

转载于:https://blog.51cto.com/14258357/2373259

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值