Files
2018-05-06 22:19:59 -04:00

143 lines
29 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3377 3377\n",
"[ 1083.49335139 1056.60503202 1056.43792044 1045.04144897 1031.22382956\n",
" 1038.95835134 1053.15992699 1065.38172817 1070.13182025 1073.09201021\n",
" 1068.92817777 1072.40920946 1078.06308049 1092.56437887 1106.55304582\n",
" 1101.09232178 1094.60656404 1091.99682926 1090.3661724 1087.30577082\n",
" 1081.21288155 1076.87108698 1074.49633397 1094.30983622 1112.71982041\n",
" 1117.01227351 1131.90997769 1135.92300494 1134.44297075 1132.0172933\n",
" 1133.75516716 1152.40172044 1151.55913955 1161.34086434 1157.93452202] 0.978856956172 35\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11de71be0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import quandl, datetime\n",
"import sklearn\n",
"import pandas as pd\n",
"import math as mt\n",
"import numpy as np\n",
"from sklearn import preprocessing, cross_validation, svm\n",
"from sklearn.linear_model import LinearRegression\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib import style\n",
"\n",
"style.use('ggplot')\n",
"\n",
"df=quandl.get('WIKI/GOOGL')\n",
"#print (df.head())\n",
"df=df[['Adj. Open', 'Adj. High', 'Adj. Low', 'Adj. Close', 'Adj. Volume',]]\n",
"df['HL_PCT']=(df['Adj. Close']-df['Adj. Open'])/df['Adj. Close']*100.0\n",
"#print (df['HL_PCT']) #shows high/low percent\n",
"df['PCT_change']=(df['Adj. High']-df['Adj. Close'])/df['Adj. Open']*100.0 #shows % change\n",
"\n",
"df=df[['Adj. Close', 'HL_PCT', 'PCT_change', 'Adj. Volume']]\n",
"\n",
"#print (df.head())\n",
"forecast_col='Adj. Close'\n",
"df.fillna('-99999', inplace=True)\n",
"forecast_out=int(mt.ceil(0.01*len(df)))\n",
"df['label']=df[forecast_col].shift(-forecast_out)\n",
"\n",
"#print (df.head())\n",
"#print (df.tail())\n",
"\n",
"X=np.array(df.drop(['label'],1))\n",
"X=X[:-forecast_out]\n",
"X=preprocessing.scale(X)\n",
"X_lately=X[-forecast_out:]\n",
"\n",
"df.dropna(inplace=True)\n",
"y=np.array(df['label'])\n",
"y=np.array(df['label'])\n",
"\n",
"print (len(X),len(y))\n",
"\n",
"X_train, X_test, y_train, y_test= cross_validation.train_test_split(X,y, test_size=0.2)\n",
"clf=LinearRegression(n_jobs=10)\n",
"clf.fit(X_train, y_train)\n",
"accuracy=clf.score(X_test, y_test)\n",
"\n",
"forecast_set=clf.predict(X_lately)\n",
"print (forecast_set, accuracy, forecast_out)\n",
"\n",
"df['forecast']=np.nan\n",
"\n",
"last_date=df.iloc[-1].name\n",
"last_unix=last_date.timestamp()\n",
"one_day=86400\n",
"next_unix=last_unix + one_day\n",
"\n",
"for i in forecast_set:\n",
" next_date=datetime.datetime.fromtimestamp(next_unix)\n",
" next_unix+=one_day\n",
" df.loc[next_date]=[np.nan for _ in range(len(df.columns)-1)]+[i]\n",
"df['Adj. Close'].plot()\n",
"df['forecast'].plot()\n",
"plt.legend(loc=4)\n",
"plt.xlabel('Date')\n",
"plt.ylabel('Price')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}