【问题标题】:How to get actual stock prices with yfinance?如何使用 yfinance 获取实际股票价格?
【发布时间】:2020-07-21 01:57:34
【问题描述】:
import yfinance as yf

stock = yf.Ticker("ABEV3.SA")

data1= stock.info


print(data1)

有“出价”和“要价”,但没有实际股价。

【问题讨论】:

  • 还有另一种获取股票价格的方法,您可以使用请求从免费股票 api 获取响应,我可以举几个例子,非常简单。
  • 除非您特别关心股票实际交易的最后价格,否则人们通常只使用平均出价并询问此价格。

标签: python python-3.x yfinance


【解决方案1】:

好的,所以你想获取 current(最新的)值。
这比较简单,只需一行即可获取stock 1 天的历史记录。

symbol = "AAPL"
stock = yf.Ticker(symbol)
latest_price = stock.history(period='1d')['Close'][0]

# Completely optional but I recommend having some sort of round(er?).
# Dealing with 148.60000610351562 is a pain.
estimate = round(latest_price, 2) 

print (estimate)

你还应该把它放在一个函数中,让它更通用。

注意:我之前的回答建议使用 AlphaAdvantage,它仍然是桌面上的一个选项,但它限制为每分钟 5 个请求。 我改变了我的答案,但你可以在这里得到一个 TL;DR:
使用requestsjson,拉取数据,格式化,列表推导(?)

我知道有比这个更好的答案,可能与这个非常相似,这只是我更喜欢的个人方法。

【讨论】:

  • 我实际上不知道为什么我的回答不受欢迎,谁能简要介绍一下原因?
  • 完全题外话:当你删除它时,我正要发布你的CSV Conversion for nested dictionary and re-arrange few aspects 问题的答案。请取消删除。
  • @martineau 哦,很抱歉,我实际上通过谷歌搜索地图等找到了解决方法。如果你愿意,我们可以继续这个对话吗?我很抱歉在这个答案上发布了 necropost,请检查我的个人资料,我会取消删除它。
  • 在使用了一年以上的 python 之后,我现在意识到为什么我的答案被否决了,但是我似乎无法删除它,所以我们有点麻烦。由于我对堆栈溢出有点不熟悉,如果我要完全改变我的答案但确保它仍然正确,那是否有效?
【解决方案2】:

yfinance 具有下载功能,可让您下载指定时期的股票价格数据。例如我将使用您想要数据的同一股票。

import yfinance as yf
data = yf.download("ABEV3.SA", start="2020-03-01", end="2020-03-30")

以上行下载指定日期为 3 月月份的数据。

数据将是 pandas 数据框,因此您可以直接使用它进行操作。

希望这会有所帮助。

【讨论】:

  • 感谢分享,这似乎只返回历史数据,至少当我尝试这个d = yf.download('DHER.DE', start='2020-03-01', end='2020-12-09')它只返回到昨天的数据。有什么方法可以访问当前的出价吗?
  • 要获取雅虎的当前价格,您可以查看此存储库:excel_stock_webscrape
【解决方案3】:

我使用这个过滤组合只得到最后一个报价。

tickers = ['ABEV3.SA']
for ticker in tickers:
    ticker_yahoo = yf.Ticker(ticker)
    data = ticker_yahoo.history()
    last_quote = (data.tail(1)['Close'].iloc[0])
    print(ticker,last_quote)

【讨论】:

    【解决方案4】:

    试试这个:

    import datetime
    import yfinance as yf
    now = datetime.datetime.now().strftime("%Y-%m-%d")
    data = yf.Ticker("ABEV3.SA")
    data = data.history(start="2010-01-01",  end=now)
    print(df)
    

    【讨论】:

    • 您的最后一行不正确。应该是print(df)
    【解决方案5】:

    买入价和卖出价实际上是交易所的报价。买入价是做市商准备为购买股票支付的价格,卖出价是做市商在卖出前要求的价格。点差是买入价和卖出价之间的差额。

    通常所说的股票价格是买入价和卖出价的平均值。如何计算平均值取决于交易所。如果您的 Feed 没有提供交易所提供的中间价,那么在很多情况下,取出价和询价的平均值就足够了。

    开盘价和收盘价也由交易所决定,可能不是第一笔或最后一笔交易,而是第一笔或最后 15 分钟交易的平均值,或者可能包括盘后价格。

    LSE 如何指定代码数据的一些细节: LSE ticker data

    而且,如果您想深入了解细节,请详细了解如何匹配订单并生成价格数据:

    Idiots Guide to the London Stock Exchange's SETSmm

    【讨论】:

      【解决方案6】:

      此方法返回我测试中的最新值。

      def get_current_price(symbol):
          ticker = yf.Ticker(symbol)
          todays_data = ticker.history(period='1d')
          return todays_data['Close'][0]
      
      print(get_current_price('TSLA'))
      

      【讨论】:

        【解决方案7】:

        以下代码将获取符号列表的当前价格并将所有结果添加到字典中。

        import yfinance as yf
        
        symbols = ["TSLA", "NIO"]
        result = {}
        for symbol in symbols:
            data = yf.Ticker(symbol)
            today_data = data.history(period='1d')
            result[symbol] = round((today_data['Close'][0]),2)
        print(result)
        

        【讨论】:

        • 没有任何解释的代码转储很少有帮助。 Stack Overflow 是关于学习的,而不是提供 sn-ps 来盲目复制和粘贴。请edit您的问题并解释它如何比OP提供的更好。见How to Answer
        【解决方案8】:

        要获得最后收盘价,请使用:

        import yfinance as yf
        
        tickerSymbol = 'AMD'
        
        tickerData = yf.Ticker(tickerSymbol)
        todayData = tickerData.history(period='1d')
        todayData['Close'][0] #use print() in case you're testing outside a interactive session
        

        【讨论】:

          【解决方案9】:

          试试这个:

          import yfinance as yf
          
          stock = yf.Ticker("ABEV3.SA")
          price = stock.info['regularMarketPrice']
          print(price)
           
          

          【讨论】:

            猜你喜欢
            • 2021-09-06
            • 2020-04-21
            • 2021-04-07
            • 2022-08-10
            • 2015-06-20
            • 2011-03-23
            • 1970-01-01
            • 1970-01-01
            • 2019-06-27
            相关资源
            最近更新 更多