Spaces:
Running
Running
| import streamlit as st | |
| import numpy as np | |
| import pickle | |
| # Function to load the model from pickle | |
| def load_model(path): | |
| with open(path, 'rb') as f: | |
| model = pickle.load(f) | |
| return model | |
| # Define the main function for predicting stock price | |
| def predict_stock_price(open_val, high_val, low_val, close_val, adj_close_val, volume, model): | |
| try: | |
| # Prepare the input data as a numpy array | |
| X = np.array([[open_val, high_val, low_val, close_val, adj_close_val]]) | |
| # Use the loaded model for prediction | |
| predicted_price = model.predict(X) | |
| return predicted_price[0] | |
| except (ValueError, AttributeError) as e: | |
| st.error(f'Error occurred: {str(e)}') | |
| return None | |
| # Define the Streamlit app | |
| def main(): | |
| st.title('Stock Prediction') | |
| # Load your trained model from pickle | |
| model_path = 'model.pkl' # Replace with your actual path | |
| model = load_model(model_path) | |
| # Input fields for user to enter stock data | |
| open_val = st.number_input('Open (Range: 0 to 100000)', min_value=0.0, max_value=100000.0, value=0.0) | |
| high_val = st.number_input('High (Range: 0 to 100000)', min_value=0.0, max_value=100000.0, value=0.0) | |
| low_val = st.number_input('Low (Range: 0 to 100000)', min_value=0.0, max_value=100000.0, value=0.0) | |
| close_val = st.number_input('Close* (Range: 0 to 100000)', min_value=0.0, max_value=100000.0, value=0.0) | |
| adj_close_val = st.number_input('Adj Close** (Range: 0 to 100000)', min_value=0.0, max_value=100000.0, value=0.0) | |
| volume = st.number_input('Volume (Range: 0 to 1,000,000,000)', min_value=0.0, max_value=1000000000.0, value=0.0) | |
| # Predict button | |
| if st.button('Predict'): | |
| if any([open_val == 0.0, high_val == 0.0, low_val == 0.0, close_val == 0.0, adj_close_val == 0.0, volume == 0.0]): | |
| st.error('Please enter valid numeric values for all fields.') | |
| else: | |
| # Call prediction function | |
| predicted_price = predict_stock_price(open_val, high_val, low_val, close_val, adj_close_val, volume, model) | |
| if predicted_price is not None: | |
| st.success(f'The predicted stock price is: {predicted_price:.2f}') | |
| else: | |
| st.error('Failed to predict stock price.') | |
| if __name__ == '__main__': | |
| main() | |