Files
AI-Stock-Trader/WebServer/AIPython/ai-predictor.py
T
2026-02-18 15:17:10 -08:00

42 lines
1.2 KiB
Python

import os
import json
import numpy as np
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
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('Target_Close', 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().tolist()
print(f"Predicted Target_Close: {flat_predictions}")
return json.dumps(flat_predictions)