繁体   English   中英

来自yfinance的实时数据

[英]Real-time data from yfinance

我正在尝试使用以下代码从 yfinance 获取真实的 rime 数据。 但我只是得到相同的收盘价/最高价/最低价/开盘价结果。 我开始认为 yfinance 是不可能的。 有没有免费欧洲替代品?

非常感谢!

#import libraries
import schedule
import time
import alpaca_trade_api as tradeapi
import yfinance as yf
import pandas as pd

# Ask what stocks you want to check
pd = pd.DataFrame()
n = int(input("Enter the size of the list "))
print("\n")
numList = list(num for num in input("Enter the list numbers separated by space ").strip().split())[:n]
print("User List: ", numList)

# Get info for every stock chosen. 
def get_data():
    for ticker in numList:
        ticker_yahoo = yf.Ticker(ticker)
        data = ticker_yahoo.history(period = "1d", interval="1m")
        data = (data.tail(1).iloc[0])
        pd[ticker] = data 
    
    print(pd)
    
get_data()

使用 Pandas Datareader 使用get_quote_yahoo()方法更快

import pandas_datareader as web

tickers = ["MSFT", "XOM", "KKR"]

current_price = web.get_quote_yahoo(tickers)["regularMarketPrice"]

如果你坚持使用yfinance ,你可以使用下面的代码,但要注意它会慢得多 这是因为 1)实例化Ticker object 并拉取 info 属性需要时间,以及 2)使用Tickers class 不方便(如反对Ticker ),所以你必须使用 for 循环。

import yfinance as yf

tickers = ["MSFT", "XOM", "KKR"]
current_price = list()

for i in range(len(tickers)):
    company = yf.Ticker(ticker[i])
    current_price[i] = company.info["regularMarketPrice"]

显然,这些解决方案也适用于其他类型的证券。 请注意,由于请求限制、高延迟、稳定性问题等,使用此(或任何其他免费)数据源进行真实货币算法交易充其量是不可能的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM