从 yfinance 轮次数据导入

问题描述

过去几个小时我一直在这里撞墙,我对 python 不太熟悉,我正在尝试从雅虎财经导入历史数据。

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

我曾尝试使用 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

这个蜘蛛是不是需要调整,或者有更好/更正确的方式导入数据

解决方法

我不知道为什么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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...