标签: yahoo-finance

从新的雅虎财经历史数据下载 csv 时出错

既然旧的 API 已经正式失效,我已经尝试让一些代码适用于新的雅虎财务历史数据。代码如下:

Private Function DownloadData(ByVal StockSymbol As String)

    Try

        'https://query1.finance.yahoo.com/v7/finance/download/CPG.TO?period1=1492824351&period2=1495416351&interval=1d&events=history&crumb=M3Ig5MvcK77

        Dim Period1 As Integer = (New DateTime(2007, 1, 1, 0, 0, 0) - New DateTime(1980, 1, 1, 0, 0, 0)).TotalSeconds
        Dim Period2 As Integer = (DateTime.UtcNow - New DateTime(1980, 1, 1, 0, 0, 0)).TotalSeconds

        Dim csvData As String = String.Empty

        Using Web As New WebClient

            Dim strm As Stream = Web.OpenRead("https://finance.yahoo.com/quote/" & StockSymbol & "/history?p=" & StockSymbol)

            Dim Crumb As String = ScrapeCrumb(strm)

            Dim s As String = "https://query1.finance.yahoo.com/v7/finance/download/" …
Run Code Online (Sandbox Code Playgroud)

csv cookies yahoo-finance

2
推荐指数
1
解决办法
3428
查看次数

Python Backtrader 错误:FileNotFoundError:[Errno 2] 没有这样的文件或目录:'AAPL'

我正在尝试使用Python 3.8 中的backtrader对使用的模块AAPL从雅虎财经获得的历史股票价格进行回测。backtraderYahooFinanceData

问题:数据似乎是从雅虎财经下载的,但在回测过程中,我们得到一个错误:

FileNotFoundError:[Errno 2]没有这样的文件或目录:'AAPL'

知道我们如何解决这个问题吗?

系统:

  • Mac OS X 10.15.3
  • Python 3.8.0
  • 反向交易者 1.9.74.123

重现错误的 Python 代码

from datetime import datetime
import backtrader as bt

class SmaSignal(bt.Signal):
    param = (('period', 20), )

    def __init__(self):
        self.lines.signal = self.data - bt.ind.SMA(period=self.p.period)

data = bt.feeds.YahooFinanceData(dataname='AAPL',
                                fromdate=datetime(2018, 1, 1),
                                todate=datetime(2018, 12, 31))
cerebro = bt.Cerebro(stdstats=False)
cerebro.adddata(data)
cerebro.broker.setcash(1000.0)
cerebro.add_signal(bt.SIGNAL_LONG, SmaSignal)
cerebro.addobserver(bt.observers.BuySell)
cerebro.addobserver(bt.observers.Value)

print(f'Starting Portfolio Value: {cerebro.broker.getvalue():.2f}')
cerebro.run()
print(f'Final Portfolio Value: {cerebro.broker.getvalue():.2f}')
cerebro.plot(iplot=True, volume=False)
Run Code Online (Sandbox Code Playgroud)

错误堆栈

Traceback …
Run Code Online (Sandbox Code Playgroud)

python python-3.x yahoo-finance back-testing backtrader

2
推荐指数
2
解决办法
7239
查看次数

Python yFInance api如何获取收盘价而不是调整后的收盘价?

我正在尝试从 Devon 的 yFinance API 获取收盘价DVN。问题是 API 给出的adjusted closing share price响应closing share price数据有时可能不同。

雅虎财经显示,天地网络2021年9月9日收盘股价为28.45,调整后收盘股价为27.96

在此输入图像描述

在 yFinance 的 API 响应中,我得到的收盘股价为 27.96,这应该是调整后的值,而不是收盘值。

在此输入图像描述

现在我如何从 yFinance 获取收盘价而不是调整后的股价?

python finance yahoo-finance yfinance

2
推荐指数
1
解决办法
1万
查看次数

如何导入外汇数据并使用 yfinance 和 pandas 数据阅读器读取它?

大家好,希望你们一切顺利。我使用了一个代码,通过从雅虎财经导入股票数据来绘制砖形图并计算柱形,效果很好,但我想在代码中使用雅虎财经的外汇数据,但它不起作用。

Stocklist=['AAPL']
start='2016-1-1'
for stock in StockList:
data[stock]=pdr.get_data_yahoo(stock, start)
Run Code Online (Sandbox Code Playgroud)

这就是我获取股票数据并使用它的方式,但它不适用于外汇,例如 EURUSD=X

python algorithm algorithmic-trading yahoo-finance pandas

2
推荐指数
1
解决办法
4238
查看次数

Yahoo Stock API自动收报机趋势功能

任何人都可以透露雅虎为此次通话返回的内容吗?

该参考是t7股票趋势.

当提交此功能的符号时,雅虎会回复类似于以下内容的内容:

AAPL nbsp;==+-+==nbsp;
Run Code Online (Sandbox Code Playgroud)

我已经搜索了这个互联网以找到这个输出的解释,但空手而归.

有人有这个电话的经验吗?

api yahoo-finance

1
推荐指数
1
解决办法
2020
查看次数

来自雅虎财务的股票行情为印度NSE,BSE

以下是我使用YQL查询,使用雅虎融资获取数据,我使用的是印度NSE交易股票的符号,BSE

http://query.yahooapis.com/v1/public/yql?q=select  * from yahoo.finance.quotes where 
symbol in ("AIAENG.NS","ATULAUTO.NS")&env=http://datatables.org/alltables.env&format=json
Run Code Online (Sandbox Code Playgroud)

奇怪的是,这个查询总是返回所有字段的空数据(无效数据),即使我使用的符号是正确的,并且可以在Yahoo财务上用于查询详细信息.实际上同样是另一个印度交换BSE,各自的符号AIAENG.BO,ATULAUTO.BO

但是,如果我用"YHOO","AAPL","GOOG","MSFT"等美国纳斯达克代码替换它,它的工作没有问题.

stockquotes yahoo-api yahoo-finance

1
推荐指数
2
解决办法
1万
查看次数

pandas DataFrame和Yahoo Finance API

我正在尝试使用Yahoo Finance API将数据读入DataFrame.但是,当我从列表中读取符号的值时,它们最终会出现在DataTable中的单个列中.我正在使用API​​,因为我实际上想要分红,P/E等数据,我认为你不能用datareader访问这些数据.我有两个问题:

  1. 如何从列表中获取值以映射到DataFrame中的列(而不是行)
  2. 我将如何完成我想要为股票代码列表做的事情

    import urllib2
    from pandas import DataFrame
    def get_data2(symbol):
        columns = ['last','date','change','high','low','vol']    
        url = "http://download.finance.yahoo.com/d/quotes.csv?s=%s&f=sl1d1c1hgv" % symbol
        file =urllib2.urlopen(url)    
        s = file.read()
        file.close()
        s= s.strip()
        L = s.split(',')
        L[0] = L[0].replace('"','')
        L[2] = L[2].replace('"','')
        D = DataFrame(L, columns=columns)
        return D
    
    Run Code Online (Sandbox Code Playgroud)

使用此代码,我得到一个ValueError,因为形状不匹配,但实质上我想从列表中读取每个值到DataTable中的一列,并最终迭代一个符号列表.

谢谢你的帮助

api dataframe python-2.7 yahoo-finance pandas

1
推荐指数
1
解决办法
1971
查看次数

Python Pandas DataReader

这可能是一个非常简单的问题,但我真的被卡住了.我想把Pandas的DataReader称为;

from pandas.io.date import DataReader
Run Code Online (Sandbox Code Playgroud)

但它确实得到了DataReader,我不知道我做错了什么,特别是对于这么简单的事情.我所要做的就是从雅虎财务中获取数据.

非常感谢您的帮助.

yahoo python-3.x yahoo-finance pandas

1
推荐指数
1
解决办法
2万
查看次数

从盈透证券交易平台下载数据

我一直在与盈透证券TWS和R合作,并且取得了不同的成功。

library(IBrokers)
IBConn <- twsConnect(port = xxxx)
currency_df = twsCurrency("NZD",currency = "USD")
test = reqHistoricalData(IBConn, Contract = currency_df, whatToShow ='BID_ASK', useRTH = "0", barSize = '1 min', duration="1 D", endDateTime = paste0(gsub("-","", reqCurrentTime(IBConn))," EST"))
plot(test$NZD.USD.Close)

library(quantmod)
plot(test$NZD.USD.Close)
chartSeries(test$NZD.USD.Close)
addBBands(n = 20, sd = 2, ma = "SMA", draw = 'bands', on = -1)
Run Code Online (Sandbox Code Playgroud)

效果很好,我可以下载当天的1分钟货币数据。

当我尝试获取公司的股票数据时就会出现问题

tws = twsConnect(port=7497)
symbol = twsSTK("AAPL")
data_AAPL = reqHistoricalData(tws, symbol)
print (data_AAPL)
Run Code Online (Sandbox Code Playgroud)

但是,我没有得到与该博客相同的结果(reqHistoricalData函数 -大约在页面的一半)。

我使用以下代码请求的其他数据运行了几个小时,并且我不得不在R控制台中单击“停止”。

tws <- twsConnect()
aapl.csv <- file("AAPL.csv", open="w") …
Run Code Online (Sandbox Code Playgroud)

api r quantmod yahoo-finance interactive-brokers

1
推荐指数
1
解决办法
1129
查看次数

NameError:调用 yahoo_fin.options.get_expiration_dates() 时未定义名称“HTMLSession”

yahoo_fin.options.get_expiration_dates()从一个非常简单的代码中调用,这样我就不太可能加载了同名的其他模块。

我的整个代码是这样的:

import matplotlib.pyplot as plt
import pandas as pd

from numpy import *
from yahoo_fin import options

plt.style.use("seaborn")

expirationDates = options.get_expiration_dates("goog")
Run Code Online (Sandbox Code Playgroud)

最后一行的输出是:

NameError: name 'HTMLSession' is not defined
Run Code Online (Sandbox Code Playgroud)

你能帮我理解发生了什么吗?

python yahoo-finance

1
推荐指数
1
解决办法
1745
查看次数