我应该创建一百万个队列吗(Python)

2024-04-27 11:28:01 发布

您现在位置:Python中文网/ 问答频道 /正文

作为一种爱好,我喜欢为日内交易者创建市场工具。我遇到了一个问题

我有一份股票清单
AAPL,M,AA.....

每隔15分钟,我循环检查一个条件,我们将调用c
if c==True我想存储这个,以便下次循环时可以对照它检查另一个条件

例如,使用上面的列表,假设AA满足条件c,我将AA与其他数据一起放入队列中,这样我就可以签入下一个循环。
例如:(AA,price,date)。 在下一个循环中,我需要拉出ticker,看看它是否与我当前正在处理的索引匹配

sudo在这里

checkQueue = queue.Queue()

for ticker in list: if c(): checkQueue.put(ticker)

在下一个循环中,我从AAPL开始。这意味着我需要从队列中弹出,看看股票代码是否匹配。我知道我可以做如下事情
if ticker !=checkQueue.get() checkQueue.put(ticker)

尽管这样做意味着我将在它到达AA之前获得和放置2次。如果我有10000只股票,可能是9999 get/puts

有没有办法让我只与一个与股票代码匹配的队列进行交互?我是不是应该排10000个队,只把我正在处理的人放在票务员队?似乎有点傻,觉得还有更好的办法


Tags: 工具getif交易者市场队列put条件
1条回答
网友
1楼 · 发布于 2024-04-27 11:28:01

也许你需要一个set()的解决方案。第一个for循环只迭代先前记录的股票

stocks = [AAPL, M, AA...]
check_later_set = set()
def run_every_15min(stocks):
    for stock in check_later_set:
        if not c(stock):
            check_later_set.remove(stock)

    for stock in stocks:
        if c(stock):
            check_later_set.add(stock)

相关问题 更多 >