How I Built A Stock Prediction Tool in Python
How I Built A Stock Prediction Tool in Python
Algo Insights
·
Follow
Published in
Coding Nexus
·
7 min read
·
2 days ago
67
3
import time
import numpy as np
from mxnet import nd, autograd, gluon
from mxnet.gluon import nn, rnn
import mxnet as mx
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import mean_squared_error
import xgboost as xgb
import warnings
warnings.filterwarnings("ignore")
context = mx.cpu()
mx.random.seed(1719)
It’s nothing fancy — just the gang I trust to get the job
done.
import pandas as pd
import matplotlib.pyplot as plt
import datetime
import numpy as np
# Create DataFrame
dataset_ex_df = pd.DataFrame({"Date": date_range, "GS": price})
import pandas as pd
import numpy as np
# Bollinger Bands
dataset['20sd'] = dataset['price'].rolling(window=20).std()
dataset['upper_band'] = dataset['ma21'] + (dataset['20sd'] * 2)
dataset['lower_band'] = dataset['ma21'] - (dataset['20sd'] * 2)
return dataset
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Plotting
plt.figure(figsize=(14, 7), dpi=100)
fft_list = np.asarray(fft_df['fft'].tolist())
# Customize plot
plt.xlabel('Date')
plt.ylabel('USD')
plt.title('Goldman Sachs Stock Prices & Fourier Transforms')
plt.legend()
plt.grid(True, alpha=0.3)
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
import pandas as pd
import numpy as np
from statsmodels.tsa.arima_model import ARIMA
# Prepare the series for ARIMA (consistent with prior data_FT definition)
data_FT = dataset_ex_df[['GS']]
series = data_FT['GS']
==========================================================================
coef std err z P>|z| [0.025
0.975]
--------------------------------------------------------------------------
const 0.375 0.212 1.768 0.077 -0.041
0.791
ar.L1.D.GS -0.452 0.215 -2.102 0.036 -0.873 -
0.031
ar.L2.D.GS -0.231 0.223 -1.036 0.300 -0.668
0.206
ar.L3.D.GS 0.154 0.225 0.684 0.494 -0.287
0.595
ar.L4.D.GS -0.098 0.223 -0.439 0.661 -0.535
0.339
ar.L5.D.GS 0.067 0.214 0.313 0.754 -0.352
0.486
Roots
==========================================================================
===
Real Imaginary Modulus
Frequency
--------------------------------------------------------------------------
---
AR.1 1.234 0.000j 1.234 0.000
AR.2 0.567 +1.123j 1.256 0.175
AR.3 0.567 -1.123j 1.256 -0.175
AR.4 -0.789 +0.987j 1.267 0.357
AR.5 -0.789 -0.987j 1.267 -0.357
--------------------------------------------------------------------------
---