从yfinance导入数据

2024-04-18 01:33:29 发布

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

在过去的几个小时里,我一直在这里碰壁,我对python不太熟悉,我正在尝试从Yahoo finance导入历史数据

我已经将其设置为导入我想要的数据,但在尝试添加一些技术指标时,实际数据遇到了问题。我看到数据是四舍五入的,使得低价格和高价格完全相同,这对我的项目毫无用处,除非我能解决这个问题

我曾尝试使用yfinance的替代品,即alpha vantage,但遇到了同样的问题,我尝试将字段转换为浮点,但它也给了我相同的值,只是后面有很多零

我怀疑这是我导入数据的方式,或者可能是我的爬行器的设置方式。下面的代码是我如何导入数据的

 import numpy as np
 import pandas as pd
 import yfinance as yf
 from alpha_vantage.foreignexchange import ForeignExchange

 api_key = "XXXXXXXXXXXXXXXX"

 data = yf.download(tickers='EURUSD=X', period='7d', interval='1m', rounding ="True")
 data3 = data.to_numpy()

 fx =ForeignExchange(key=api_key, output_format="pandas")
 data_FX, meta_data_FX = fx.get_currency_exchange_intraday(from_symbol="EUR", to_symbol = "USD",interval="1min", outputsize = "full")

这是将数据添加到数据集的方式

Datetime                     Open    High     Low   Close Adj Close Volume
2021-01-15 00:00:00+00:00   1.2154  1.2154  1.2154  1.2154  1.2154  0
2021-01-15 00:01:00+00:00   1.2157  1.2157  1.2157  1.2157  1.2157  0
2021-01-15 00:02:00+00:00   1.2155  1.2155  1.2155  1.2155  1.2155  0
2021-01-15 00:03:00+00:00   1.2157  1.2157  1.2157  1.2157  1.2157  0
2021-01-15 00:04:00+00:00   1.2158  1.2158  1.2158  1.2158  1.2158  0
2021-01-15 00:05:00+00:00   1.2158  1.2158  1.2158  1.2158  1.2158  0
2021-01-15 00:06:00+00:00   1.2158  1.2158  1.2158  1.2158  1.2158  0
2021-01-15 00:07:00+00:00   1.2161  1.2161  1.2161  1.2161  1.2161  0

这是需要调整的爬行器,还是有更好/正确的方法导入数据


Tags: 数据keyfromimportalphanumpypandasdata
1条回答
网友
1楼 · 发布于 2024-04-18 01:33:29

我不知道为什么yfinance具有相同的高值和低值,但如果将yfinance设置为1小时间隔,高值和低值将不同,因此如果将alpha侧调整为1小时,您可以处理它。如果规范要求间隔1分钟,则此答案无效

import datetime
import pandas as pd
import yfinance as yf

data = yf.download(tickers='EURUSD=X', period='7d', interval='1h', rounding ="True")
data3 = data.to_numpy()

    Open    High    Low     Close   Adj Close   Volume
Date                        
2021-01-18  1.2070  1.2085  1.2069  1.2079  1.2079  0
2021-01-18  1.2080  1.2085  1.2076  1.2082  1.2082  0
2021-01-18  1.2085  1.2089  1.2080  1.2086  1.2086  0
2021-01-18  1.2086  1.2088  1.2074  1.2079  1.2079  0
2021-01-18  1.2077  1.2080  1.2070  1.2073  1.2073  0
...     ...     ...     ...     ...     ...     ...
2021-01-25  1.2145  1.2148  1.2142  1.2146  1.2146  0
2021-01-26  1.2145  1.2149  1.2137  1.2139  1.2139  0
2021-01-26  1.2139  1.2151  1.2139  1.2149  1.2149  0
2021-01-26  1.2149  1.2154  1.2149  1.2149  1.2149  0
2021-01-26  1.2148  1.2148  1.2148  1.2148  1.2148  0

146 rows × 6 columns

from alpha_vantage.foreignexchange import ForeignExchange

with open('./alpha_vantage_api_key.txt') as f:
    api_key = f.read()

fx =ForeignExchange(key=api_key, output_format="pandas")
data_FX, meta_data_FX = fx.get_currency_exchange_intraday(from_symbol="EUR", to_symbol = "USD", interval="60min", outputsize = "full")

    1. open     2. high     3. low  4. close
date                
2021-01-26 03:00:00     1.2145  1.2146  1.2143  1.2145
2021-01-26 02:00:00     1.2134  1.2146  1.2132  1.2145
2021-01-26 01:00:00     1.2143  1.2143  1.2131  1.2134
2021-01-26 00:00:00     1.2142  1.2145  1.2140  1.2143
2021-01-25 23:00:00     1.2137  1.2145  1.2134  1.2142
...     ...     ...     ...     ...
2020-11-30 20:00:00     1.1952  1.1952  1.1940  1.1947
2020-11-30 19:00:00     1.1954  1.1960  1.1949  1.1952
2020-11-30 18:00:00     1.1947  1.1955  1.1940  1.1954
2020-11-30 17:00:00     1.1964  1.1965  1.1941  1.1948
2020-11-30 16:00:00     1.1994  1.2003  1.1954  1.1964

相关问题 更多 >

    热门问题