首页 > 解决方案 > 如何有效地比较不同列表中的项目?

问题描述

首先,我正在创建一个 HFT 模型。我想每 x 秒执行一次命令。我目前正在使用的数据是刻度数据,并且有一个指示新操作的时间戳。我创建了一个时间序列作为列表,其中包含指定间隔的所有时间。

所以我尝试使用双循环来比较列表中的项目。当我一直在测试这个时,当我运行数千行代码时它非常慢。我正在寻找一种更有效的方法来完成此操作。

我只使用了双 for 循环来完成这个。我在循环中有一些条件和其他函数会增加计算时间。

# Demonstration of comparison
time.vec[2] > strptime(as.character(test$Timestamp[1]),format = "%m-%d-%Y %H:%M:%OS") 
> FALSE 
time.vec[3] > strptime(as.character(test$Timestamp[1]),format = "%m-%d-%Y %H:%M:%OS") 
> TRUE

for(i in 2:(nrow(test))){
  for(j in 1:(length(time.vec) - 1)){
    if(time.vec[j] <  strptime(as.character(test$Timestamp[i]),format = "%m-%d-%Y %H:%M:%OS") 
       && time.vec[j + 1] >  strptime(as.character(test$Timestamp[i]), format = "%m-%d-%Y %H:%M:%OS")){ # Execute trade

有没有一种简单的方法可以提高效率,或者只是一种不同的方法来解决这个问题?

我正在寻找其他方法来解决这个问题,我在计算机科学/控制流方面没有太多经验,只知道基础知识。因此,任何额外的建议将不胜感激。

标签: rfor-loopcontrol-flow

解决方案


推荐阅读