File size: 1,063 Bytes
5980fe0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
38
39
40
41
42
43
import yfinance as yf
import numpy as np
import joblib
from tensorflow.keras.models import load_model

model = load_model("model.h5")
scaler = joblib.load("scaler.pkl")

TICKER = "HBL.KA"     
WINDOW_SIZE = 60      


def get_live_data(ticker, days=90):
    """Fetch last N days candles from yfinance"""
    data = yf.Ticker(ticker).history(period=f"{days}d")
    return data["Close"].values


def prepare_features(close_prices):
    """Prepare last window as model input"""
    scaled = scaler.transform(close_prices.reshape(-1, 1))
    window = scaled[-WINDOW_SIZE:]      # last 60 prices
    return window.reshape(1, WINDOW_SIZE, 1)


def predict_next_price(ticker):
    # latest prices
    close_prices = get_live_data(ticker)

    # input
    X = prepare_features(close_prices)

    # Predict
    pred_scaled = model.predict(X)[0][0]

    # Inverse scale
    pred_price = scaler.inverse_transform([[pred_scaled]])[0][0]

    return pred_price

pred = predict_next_price(TICKER)
print("Next Price Prediction:", pred)