1
File size: 934 Bytes
0122544
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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()