import yfinance as yf import pandas as pd import joblib from tabulate import tabulate import os tickers = ['GME', 'SOFI', 'RIVN', 'UCL', 'DGHI'] def load_model(ticker): try: return joblib.load(f"{ticker}_model.pkl") except: return None def predict_stock_move(ticker): model = load_model(ticker) if not model: return None data = yf.download(ticker, period='2d', interval='1d') if data.shape[0] < 2: return None latest = data.iloc[-1][['Open', 'High', 'Low', 'Close', 'Volume']].values.reshape(1, -1) prediction = model.predict(latest)[0] return round(prediction, 2) def main(): results = [] for ticker in tickers: pred = predict_stock_move(ticker) if pred is not None: results.append([ticker, f"{pred:+.2f}%"]) print(tabulate(results, headers=["Ticker", "Predicted % Change (7d)"])) if __name__ == "__main__": main()