def get_data(symbol, start_date=datetime(year=2015, month=1, day=1)): data = DataReader(symbol, 'yahoo', start_date).reset_index() data['Daily_Returns'] = data['Adj Close'].pct_change() data['Daily_Log_Returns'] = np.log(data['Adj Close']) - np.log( data['Adj Close'].shift(1)) data.drop(data.index[:1], inplace=True) data.columns = StockDataDownloader.COLUMNS return data
import pandas as pd import pandas_ta as ta from pandas_datareader import DataReader import datetime import matplotlib.pyplot as plt # Load data symbol = 'AAPL' num_of_years = 1 start_date = datetime.datetime.now() - datetime.timedelta(days=int(365.25 * num_of_years)) end_date = datetime.date.today() df = DataReader(symbol, 'yahoo' ,start_date, end_date) df.columns = map(str.lower, df.columns) df.ta.strategy(name='all') # Sanity check. Make sure all the columns are there print(df.columns) print(df.tail()) plt.plot(df['bbands'])
import pandas as pd from pandas_datareader import DataReader import datetime as dt from stockstats import StockDataFrame import matplotlib.pyplot as plt pd.set_option('display.max_columns', None) pd.set_option('display.max_rows', None) ticker = 'AAPL' num_of_years = 1 start = dt.datetime.now() - dt.timedelta(int(365.25 * num_of_years)) now = dt.datetime.now() df = DataReader(ticker, 'yahoo', start, now) df.columns = ['high', 'low', 'open', 'close', 'volume', 'adj close'] df = df[['open', 'close', 'high', 'low', 'volume']] stock = StockDataFrame.retype(df) print(stock['rsi_12']) plt.gcf() plt.plot(stock['boll']) plt.plot(stock['boll_ub']) plt.plot(stock['boll_lb'])
HMM在股票市场中的应用 我们假设隐藏状态数量是6,即假设股市的状态有6种,虽然我们并不知道每种状态到底是什么, 但是通过后面的图我们可以看出那种状态下市场是上涨的,哪种是震荡的,哪种是下跌的。 可观测的特征状态我们选择了3个指标进行标示,进行预测的时候假设假设所有的特征向量的状态服从高斯分布 ''' from hmmlearn.hmm import GaussianHMM import numpy as np from matplotlib import cm, pyplot as plt import matplotlib.dates import pandas as pd import datetime from pandas_datareader import DataReader # from sklearn.datasets import # 测试时间从2005年1月1日到2015年12月31日,拿到每日沪深300的各种交易数据。 # beginDate = '2005-01-01' # endDate ='2015-12-31' beginDate = datetime.datetime(2015, 1, 1) endDate = datetime.datetime(2015, 12, 31) n = 6 # 6个隐藏状态 df = DataReader('XOM', 'yahoo', beginDate, endDate) print(df.head()) df.columns = [ 'OpeningPx', 'HighPx', 'LowPx', 'ClosingPx', 'Adj Close', 'TotalVolumeTraded' ] print(df.head())