假设我收集了(在一个列表中)某段时间内(比如上午11点后的前5分钟)发生的n只股票的所有交易(为了简单起见,我将n=2设为以后进行调整)。假设我们有公司AAA和公司BBB(如果有帮助,liststocks=['AAA','BBB'])。这个列表看起来像:
trades=[['AAA', '2011-01-03', '11:03:51', 21.5],['BBB', '2011-01-03','11:03:57', 31.5],
['AAA', '2011-01-03', '11:04:20', 21.55],
['BBB', '2011-01-03','11:04:19', 32.01], ['BBB', '2011-01-03','11:04:52', 31.7]]
也就是说,股票AAA有2次交易,BBB股票有3次交易。挑选每只股票的最后一笔交易会导致缺乏同步性的问题。这样做的目的是挑选每只股票的最后一笔交易,找出最早的交易(['AAA','2011-01-03',11:04:20',21.55])。然后选择时间尽可能接近“11:04:20”的所有其他股票的交易,这将导致我们选择['BBB','2011-01-03','11:04:19',32.01]。输出应为如下列表:
^{pr2}$非常感谢!在
如果您将
sorted
与key
参数一起使用,这并不难。在下面是代码如果你不想看,我会在下面解释:
它首先将每个交易从使用时间的字符串表示转换为日期时间对象。它使用}个股票。然后它只过滤
datetime.strptime
类方法来实现这一点。然后通过分类交易来计算股票的流动性。*others
可推广到{less_liquid
交易,然后根据time参数对它们进行排序。然后它按名称more_liquid
进行过滤,并根据它与A
交易之间的绝对差异进行排序。在所以您想要的对象是} 函数应该很容易修复。在
A
和B
。它们不完全是您指定的,因为它们将使用datetime而不是字符串,但是使用^{2种股票的解决方案是
(同样的答案也适用日期时间.strftime(A[1],%Y-%m-%d%H:%m:%S”),将其拆分并保存。在
如能为n>;2提供解决方案,我们将不胜感激。任何大的O优化都是受欢迎的。在
谢谢
相关问题 更多 >
编程相关推荐