小编Mar*_*ale的帖子

Python, Pandas datareader and Yahoo Error RemoteDataError: Unable to read URL

I am trying to download historical data from Yahoo using Pandas datareader. This is the code that I normally use:

import pandas_datareader as pdr
df = pdr.get_data_yahoo('SPY')
Run Code Online (Sandbox Code Playgroud)

However, I started receiving this error today: RemoteDataError: Unable to read URL: https://finance.yahoo.com/quote/SPY/history?period1=1467511200&period2=1625277599&interval=1d&frequency=1d&filter=history

Does anyone know how to solve it?

Thank you very much in advance!

yahoo trading pandas pandas-datareader

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

如何在 Python 中创建一个简单的标志

从雅虎获得 SPY 的数据后,我创建了一个收盘价通道,如下所示,最大和最小滚动窗口。色谱柱是 HC 和 HL。

我需要创建一个列(我称之为标志),当收盘价等于 HC 时显示 1,并且该值会持续到收盘价等于 HL。此时Flag的值为-1。如您所见,非常简单,Flag 可以只有两个值;1 或 -1。

简单的公式是这样的:

  1. 如果关闭 == HC 则标志为 1
  2. 如果关闭 == HL 则标志为 -1
  3. 如果 Close != HC 和 Close !=HL 则 flag 等于保存在变量 flag 上的最后一个值。

我尝试了几件事,包括下面的代码,但都没有成功。此代码的问题在于显示了 0 值。而且我不知道如何通过条件使其消失:

import pandas as pd
import pandas_datareader as dr
import numpy as np
from datetime import date

df = dr.data.get_data_yahoo('SPY',start='01-01-2019',end=date.today())

df['HC'] = df['Close'].rolling(20).max() 
df['LC'] = df['Close'].rolling(20).min() 

df['Flag'] = [1 if (df.loc[ei, 'Close'] == df.loc[ei, 'HC']) else 
              -1 if (df.loc[ei, 'Close'] == …
Run Code Online (Sandbox Code Playgroud)

python trading algorithmic-trading pandas

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

如何在滚动窗口中应用 Python 中的 Hurst 指数

我试图在滚动窗口上对 SPY 收盘价应用赫斯特指数。如果我将以下代码(我从这里获得:https : //www.quantstart.com/articles/Basics-of-Statistical-Mean-Reversion-Testing)应用于收盘价列,则效果很好。然而,这给了我一个静态值。考虑到最近 200 个收盘价,我想在滚动窗口上应用赫斯特指数。我的目标是获得一列,其中考虑到最近 200 个收盘价,在每一行中更新 Hurst 指数。

from numpy import cumsum, log, polyfit, sqrt, std, subtract
from numpy.random import randn
import pandas_datareader as dr
from datetime import date

df = dr.data.get_data_yahoo('SPY',start='23-01-1991',end=date.today())

def hurst(ts):
    """Returns the Hurst Exponent of the time series vector ts"""
    # Create the range of lag values
    lags = range(2, 100)

    # Calculate the array of the variances of the lagged differences
    tau = [sqrt(std(subtract(ts[lag:], ts[:-lag]))) for lag in lags]

    # …
Run Code Online (Sandbox Code Playgroud)

python trading algorithmic-trading quantitative-finance

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

如何使用Numpy在Python中重塑数组的数组

如下所示,我创建了三个包含不同随机数的数组:

np.random.seed(200)
Array1  = np.random.randn(300)
Array2 = Array1 + np.random.randn(300) * 2
Array3 = Array1 + np.random.randn(300) * 2

data = np.array([Array1, Array2 , Array3])
#data.reshape(data, (Array3, Array1)
mydf = pd.DataFrame(data)
mydf.tail()
Run Code Online (Sandbox Code Playgroud)

我的目标是使用这三个数组构建一个DataFrame。每个数组应在不同的列中显示其值。DataFrame应该具有三列和索引。我上面的代码的问题是,数据框是在水平位置而不是垂直位置构建的。DataFrame看起来像这样:

在此处输入图片说明

我试图使用reshape函数来重塑名为“ data”的numpy数组,但是我无法使其工作。任何帮助都将受到欢迎。谢谢!

python numpy pandas

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