State bank of india stock price analysis and forecasting of 2024

State bank of india stock price analysis

The State Bank of India (SBI) is the largest and one of the oldest banking institutions in India. Established in 1806 as the Bank of Calcutta, it was later renamed the Bank of Bengal and eventually became the State Bank of India in 1955. It operates as a government-owned corporation, with the Indian government holding a significant stake.

Features of SBI:

Size and Reach: SBI has an extensive network with over 22,000 branches and more than 60,000 ATMs across India. It also has a presence in over 30 countries worldwide, serving a global clientele.

Products and Services: SBI offers a wide range of financial products and services, including savings and current accounts, loans (personal, home, and business), credit cards, investment services, and insurance. It caters to individuals, businesses, and government entities.

Digital Banking: SBI has embraced digital transformation with various online and mobile banking services, allowing customers to perform transactions, manage accounts, and access financial services conveniently.

Public Sector Undertaking: As a public sector bank, SBI plays a crucial role in implementing government policies and programs, including financial inclusion initiatives and various social welfare schemes.

Financial Strength: SBI is known for its strong financial position and significant market share in the Indian banking sector. It is often seen as a barometer for the overall health of the Indian banking industry.

Social Responsibility: SBI engages in various corporate social responsibility (CSR) activities, focusing on areas like education, healthcare, and environmental sustainability.

How to collect sbi historical price?

Analyzing and forecasting the stock price of the State Bank of India (SBI) involves examining historical price data, conducting data analysis, and applying forecasting techniques. Here's a step-by-step guide on how to perform SBI stock price analysis and forecasting using Python:

Import Libraries:
Start by importing the necessary Python libraries for data manipulation, analysis, and visualization. Commonly used libraries include pandas, numpy, matplotlib, yfinance for fetching historical data, and libraries for time series forecasting, such as stats models or Prophet:

Python
Copy code
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import yfinance as yf
from statsmodels.tsa.holtwinters import ExponentialSmoothing
Data Retrieval:
Use the yfinance library or other financial data sources to fetch historical price data for SBI's stock. Specify the start and end dates for the data you want to analyze:

Python
Copy code
sbi = yf.download('SBIN.BO', start='2020-01-01', end='2021-12-31')
Data Exploration:
Explore the fetched data to understand its structure and contents. Use functions like head(), tail(), describe(), and info() to inspect the dataset:

Python
Copy code
print(sbi.head())
Data Visualization:
Create visualizations to analyze the historical performance of SBI's stock. Common visualizations include line charts to visualize price movements:

Python
Copy code
plt.figure(figsize=(12, 6))
plt.plot(sbi['Adj Close'], label='SBI Stock Price')
plt.title('SBI Stock Price')
plt.xlabel('Date')
plt.ylabel('Price')
plt.legend()
plt.show()
Time Series Analysis:
Conduct time series analysis to understand trends, seasonality, and potential stationarity in the data. Use tools like autocorrelation and partial autocorrelation plots to identify the order of differencing for stationarity.

Data Preprocessing:
Prepare the data for forecasting by splitting it into training and testing sets, handling missing values, and applying any necessary transformations.

Forecasting Model Selection:
Choose an appropriate forecasting model. Popular models for time series forecasting include ARIMA (AutoRegressive Integrated Moving Average), Exponential Smoothing, and Prophet.

For example, to apply Exponential Smoothing:

Python
Copy code
model = ExponentialSmoothing(sbi['Adj Close'], trend='add', seasonal='add', seasonal_periods=12)
results = model.fit()
forecast = results.forecast(steps=12)  # Forecast for the next 12 months
Model Evaluation:
Evaluate the forecasting model's performance using appropriate metrics such as Mean Absolute Error (MAE), Mean Squared Error (MSE), and Root Mean Squared Error (RMSE). Compare the forecasted values to the actual values in the testing set.

Visualization of Forecast:
Visualize the forecasted stock prices alongside the actual prices to assess the model's accuracy.

Regular Updates and Monitoring:
Keep your forecasting model up to date with the latest data and monitor its performance over time. Adjust the model as needed to improve accuracy.

Risk Management and Decision Making:
Based on your analysis and forecasting, formulate investment strategies, set risk management parameters, and make informed investment decisions regarding SBI's stock.

Please note that forecasting stock prices is inherently uncertain, and predictions should be used cautiously for investment decisions. The choice of forecasting model and parameters may require tuning, and additional factors such as market news, economic indicators, and company-specific events should also be considered when making investment decisions.

!pip install yfinance

How to install sbi data from yahoo in python?

import yfinance as yf
import numpy as np
import os
import random
import torch
import torch.optim as optim
import torch.nn as nn
from torch.utils.data import (Dataset, TensorDataset,
 DataLoader, Subset)
from collections import OrderedDict
from sklearn.metrics import mean_squared_error
import pandas as pd
from statsmodels.tsa.seasonal import seasonal_decompose
df = yf.download('SBIN.NS',
 start='2010-01-01',
 end='2021-09-08',
 adjusted=True,
 progress=False)
df.tail()
df.describe()
df = df.loc[:, ['Adj Close']]
df.rename(columns={'Adj Close''price'}, inplace=True)
df = df.resample('M').last()
WINDOW_SIZE = 12
df['rolling_mean'] = df.price.rolling(window=WINDOW_SIZE).mean()
df['rolling_std'] = df.price.rolling(window=WINDOW_SIZE).std()
df.plot(title='State Bank Stock Price')
<matplotlib.axes._subplots.AxesSubplot at 0x7f92720ec250>

How to plot sbi historical price?

State Bank Stock Price, rolling mean and std

How to plot sbi Multiplicative Decomposition ?

decomposition_results = seasonal_decompose(df.price,
 model='multiplicative')
decomposition_results.plot() \
 .suptitle('Multiplicative Decomposition',
 fontsize=18);
sbi Multiplicative Decomposition

How to forcast sbi stock price in 2022?

import pandas as pd
import seaborn as sns
from fbprophet import Prophet
train_indices = df.ds.apply(lambda x: x.year) < 2021
df_train = df.loc[train_indices].dropna()
df_test = df.loc[~train_indices].reset_index(drop=True)
model_prophet = Prophet(seasonality_mode='additive')
model_prophet.add_seasonality(name='monthly', period=30.5,fourier_order=5)
model_prophet.fit(df_train)
df_future = model_prophet.make_future_dataframe(periods=365)
df_pred = model_prophet.predict(df_future)
model_prophet.plot(df_pred)
sbi stock price in 2022

How to forcast sbi seasonal stock price in python?

model_prophet.plot_components(df_pred)

sbi seasonal price
selected_columns = ['ds''yhat_lower''yhat_upper''yhat']
df_pred = df_pred.loc[:, selected_columns].reset_index(drop=True)
df_test = df_test.merge(df_pred, on=['ds'], how='left')
df_test.ds = pd.to_datetime(df_test.ds)
df_test.set_index('ds', inplace=True)
import matplotlib.pyplot as plt
fig, ax = plt.subplots(11)
ax = sns.lineplot(data=df_test[['y''yhat_lower''yhat_upper','yhat']])
ax.fill_between(df_test.index,
 df_test.yhat_lower,
 df_test.yhat_upper,
 alpha=0.3)
ax.set(title='Stock Price - actual vs. predicted',
 xlabel='Date',
 ylabel='Stock Price ')

How to predict sbi stock price in python?

sbi Stock Price - actual vs. predicted
import pandas as pd
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
from statsmodels.tsa.stattools import adfuller, kpss
def adf_test(x):
 indices = ['Test Statistic''p-value',
 '# of Lags Used''# of Observations Used']
 adf_test = adfuller(x, autolag='AIC')
 results = pd.Series(adf_test[0:4], index=indices)
 for key, value in adf_test[4].items():
  results[f'Critical Value ({key})'] = value
 return results

How to find sbi adf test in python?

adf_test(df.y)
Test Statistic -2.152640 p-value 0.223881 # of Lags Used 17.000000 # of Observations Used 2862.000000 Critical Value (1%) -3.432637 Critical Value (5%) -2.862550 Critical Value (10%) -2.567308 dtype: float64

How to forcast sbi stock price kpss test in python?

def kpss_test(xh0_type='c'):
 indices = ['Test Statistic''p-value''# of Lags']
 kpss_test = kpss(x, regression=h0_type)
 results = pd.Series(kpss_test[0:3], index=indices)
 for key, value in kpss_test[3].items():
  results[f'Critical Value ({key})'] = value
 return results
kpss_test(df.y)
Test Statistic 3.723934 p-value 0.010000 # of Lags 28.000000 Critical Value (10%) 0.347000 Critical Value (5%) 0.463000 Critical Value (2.5%) 0.574000 Critical Value (1%) 0.739000 dtype: float64
N_LAGS = 40
SIGNIFICANCE_LEVEL = 0.05
fig, ax = plt.subplots(21, figsize=(1612), sharex=True)
plot_acf(df.y, ax=ax[0], lags=N_LAGS,
 alpha=SIGNIFICANCE_LEVEL)
plot_pacf(df.y, ax=ax[1], lags=N_LAGS,
 alpha=SIGNIFICANCE_LEVEL)

How to plot sbi stock price in python?

sbi autocorrelation  and partial autocorrelation


New updates of sbi analysis

Post a Comment

0 Comments