我正在使用 Python 开发一个算法交易程序,用于学习目的。使用 Numpy,我试图最大限度地提高核心模拟逻辑的速度:
t=0
size = Ticks.shape[0] #Ticks is a numpy array
while t<size:
if self.toLong(t):
self._Trader.Long(Ticks[t,3])
t+=1
while t<size:
if self.toexitLong(t):
self._Trader.exitLong(Ticks[t,3])
break
t+=1
elif self.toShort(t):
self._Trader.Short(Ticks[t,3])
t+=1
while t<size:
if self.toexitShort(t):
self._Trader.exitShort(Ticks[t,3])
break
t+=1
t+=1
基本上,我需要对二维数组中的每一行应用一个函数,但应用于该行的逻辑取决于前几行的逻辑设置的条件。此循环中的大部分时间都用于查找 Ticks[t,3] 的值。我考虑过使用迭代器或“np.applyalongaxis”并为条件设置数据成员,但我不确定是否是我需要的。还值得注意的是,此函数调用的其他方法使用它们传递的索引来对同一数组执行操作。
使用 Numpy 运行此循环的最有效(计算速度)方式是什么?