-3

我有一个像下面这样的列表, 在此处输入图像描述 我希望能够同时比较 QQQ 在 9:35 与 AAPL 和 AMD 等其他各种股票的百分比变化。因此,检查 9:35 时 AAPL 的百分比变化是否大于 9:35 时 QQQ 的百分比变化。AMD 在 9:35 和 9:40 再到 9:45 以此类推。

我想通过python做到这一点这是我到目前为止但不太正确

import pandas as pd
import time
import yfinance as yf
import datetime as dt
from pandas_datareader import data as pdr
from collections import Counter
from tkinter import Tk
from tkinter.filedialog import askopenfilename
import os
from pandas import ExcelWriter
d1 = dt.datetime(2020, 8, 5,9,00,00) 
d2 = dt.datetime(2020, 8, 5,16,00,00)


pc=Counter()
filePath=r"C:\Users\Adil\Documents\Python Test - ET\Data\Trail.xlsx"
stocklist = pd.read_excel(filePath)

for i in stocklist.index:
    symbol=stocklist['Symbol'][i]
    date=stocklist['Date'][i]
    close=stocklist['Close'][i]
    pc=stocklist['PercentChange'][i]

    if (pc[i]>pc['QQQ']):
        print(pc[i])
4

1 回答 1

0

好吧,

我从评论中得到了关于 OP 想要什么的解释:

是的,所以我想看看在给定的 5 分钟时间段内,一只股票的表现是否优于 QQQ

您需要做的第一件事是制作它,以便您可以按时间和符号查找您的信息。这是我将如何做到的:

my_data = {}

for i in stocklist.index:
    symbol=stocklist['Symbol'][i]
    date=stocklist['Date'][i]
    pc=stocklist['PercentChange'][i]
    my_data[symbol, date] = pc

这使得您可以通过调用查找百分比变化的字典my_data['ABCD', 'datetime']

然后,我会列出所有时间。

time_set = set()
for i in stocklist.index:
    date = stocklist['Date'][i]
    time_set.add(date)
times = list(time_set)
times.sort()

如果您需要计算机资源,您可以将这两个循环组合起来并一起运行,但我认为将它们分开会使代码更易于理解。

然后对符号做同样的事情:

sym_set = set()
for i in stocklist.index:
    date = stocklist['Symbol'][i]
    sym_set.add(date)
symbols = list(sym_set)
symbols.sort()

再一次,您可以在第一个 for 循环期间进行此设置,但这样您可以更好地了解我们正在努力完成的工作。

最后要做的,实际上是进行比较:

for i in times:
    qs = my_data['QQQ', i]
    for j in symbols:
        if qs != 'QQQ':
            which = "better" if my_data[j, i]>qs else "worse"
            print(j + " did " + which + " than QQQ at " + i)

现在,这只是将信息打印到控制台,您应该将打印命令替换为您想要输出的任何内容。(另外,我认为越高越好;我希望这是对的。)

于 2020-09-08T20:44:39.313 回答