每日赫斯特指数

时间:2015-12-29 07:04:18

标签: python

我试图估算股票收益的每日赫斯特指数值(例如,每天还有赫斯特指数 - 类似于:https://www.quandl.com/data/PE/CKEC_HURST-Hurst-Exponent-of-Carmike-Cinemas-Inc-Common-Stock-CKEC-NASDAQ)。

我正在使用这个Python代码(取自https://www.quantstart.com/articles/Basics-of-Statistical-Mean-Reversion-Testing),但我不知道如何为每日Hurst值而不是仅仅一个值来容纳它:

from datetime import datetime
from pandas.io.data import DataReader
from numpy import cumsum, log, polyfit, sqrt, std, subtract
from numpy.random import randn

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]

    # Use a linear fit to estimate the Hurst Exponent
    poly = polyfit(log(lags), log(tau), 1)

    # Return the Hurst exponent from the polyfit output
    return poly[0]*2.0


# Download the stock prices series from Yahoo
aapl = DataReader("AAPL", "yahoo", datetime(2012,1,1), datetime(2015,9,18))

# Call the function
hurst(aapl['Adj Close'])

2 个答案:

答案 0 :(得分:1)

我想你的意思是:

from datetime import timedelta
current_date = datetime(2012,1,3)
end_date = datetime(2015,9,18)
aapl = DataReader("AAPL", "yahoo", current_date, end_date)
index = 0
while index < len(aapl['Adj Close']):     
    print current_date.strftime("%Y-%m-%d")
    print hurst(aapl['Adj Close'][index:index + 1])
    index += 1
    current_date += timedelta(days=1)

答案 1 :(得分:0)

您正试图将dataframe传递给期望list

的函数
print( hurst( aapl['Adj Close'].values ) )