Skip to main content
 首页 » 编程设计

python之使用 Numpy 进行交易

2025年05月04日9softidea

出于学习目的,我正在使用 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 运行此循环的最有效(计算速度)方式是什么?

请您参考如下方法:

  1. 重写代码,以便您有一个清晰的 for 循环,其中包含一个简单的模式标志和模式的 if-else-switches。
  2. 使用numba用于对整个函数进行 jit 编译,这应该会带来 1-3 个数量级的加速。