都用numpy,自己不做循环,只能做一些粗略的统计。
要想比较精细的控制策略,只能用循环。这时候python性能就很低了,就需要numba加速。
我更习惯用下面这种写策略的方式。如果有交易接口,可以方便的直接拿去做程序化交易。
# 单均线策略
@njit
def sma(acc:Account, q:Quote, args):
n=args[0]
c=q.close
o=q.open
ma= fm.ma(c,n)
for i in range(n,len(c)):
if fm.cross_up(c,ma,i-1): # 上日收盘价上穿均线,
acc.buy(i,o[i]) # 则在当日以开盘价买入
elif acc.total_count()>0 and fm.cross_down(c,ma,i-1):
acc.sell(i,o[i])
【 在 yatobiaf 的大作中提到: 】
: 厉害了楼主,正好最近打算写个python股票回测模块,看到楼主的帖子打算试试numba。
: 请问numba为啥会比python快那么多?
: 股票回测大部分底层是矩阵乘法,python的numpy模块做了很多的优化,我感觉速度和c也差不多,楼主之前的python股票回测引擎是用了矩阵乘法吗?
: ...................
--
FROM 223.72.44.*