Build the AI predictor off the features so they are the same as the training model
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
import os
|
||||
import yfinance as yf
|
||||
import features
|
||||
import matplotlib
|
||||
matplotlib.use("Agg")
|
||||
|
||||
def Predict():
|
||||
# Define paths (consistent with your previous script)
|
||||
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
DATA_DIR = os.path.join(SCRIPT_DIR, "data")
|
||||
MODEL_PATH = os.path.join(DATA_DIR, "model.keras")
|
||||
|
||||
# Pull 1 month of current data to make prediction against | for volatility 20
|
||||
df = yf.download("SPY", period="2mo", auto_adjust=True)
|
||||
if not df.empty:
|
||||
df = features.MakeFeatures(df, 1)
|
||||
df = features.CleanDF(df)
|
||||
|
||||
# Drop our predictor
|
||||
df.drop('Volatility_5', axis=1, inplace=True)
|
||||
|
||||
# Lazy load this so it doesnt interfere with yfinance
|
||||
from keras.models import load_model
|
||||
|
||||
# Load the model
|
||||
reconstructed_model = load_model(MODEL_PATH)
|
||||
|
||||
# Verify it loaded correctly
|
||||
reconstructed_model.summary()
|
||||
|
||||
# Predict
|
||||
predictions = reconstructed_model.predict(df)
|
||||
|
||||
# 'predictions' will be a 2D array, flatten it if you want a simple list
|
||||
flat_predictions = predictions.flatten()
|
||||
|
||||
print(f"Predicted Volatility: {flat_predictions}")
|
||||
|
||||
return flat_predictions
|
||||
Reference in New Issue
Block a user