A
SYNOPSIS REPORT
On
Real-Time Stock Price Analysis
Submitted in partial fulfillment of the requirements of the degree
of
BACHELOR OF INFORMATION TECHNOLOGY
Submitted by
Daliya Billgates ([Link].1)
Sohail Nadaf ([Link].19)
Shruthika Pillai (Roll no.27)
Ritesh Thakur ([Link].43)
Nisha Yadav ([Link].50)
1
• Problem Of Statement:
Stock market prices are highly volatile influenced by numerous factors
such as economic indicators, news sentiment, and investor behavior.
Predicting them accurately and precisely in real time is a really
challenging task. Traditional Statistical model often struggles to capture
these patterns effectively.
• Objective and Scope of the project:
• The objective of this project is to provide a real-time stock price
analysis tool using Python that fetches live data from Yahoo Finance,
displays minute-by-minute closing prices, and calculates a Simple
Moving Average (SMA) to visualize short-term trends.
• It aims to create a user-friendly interactive dashboard for monitoring
multiple stocks and cryptocurrencies, helping users understand market
behaviour and price movements.
• The scope of the project includes tracking any stock or cryptocurrency
available on Yahoo Finance by entering its ticker symbol, providing real-
time updates every 30 seconds, and allowing analysis of short-term
trends using the SMA and latest prices.
• Methodology:
Real Time Stock Price Analysis-
Data Collection: Real-time stock price data is collected using publicly
available APIs like Yahoo Finance through Python libraries.
Data Storage: The fetched data is stored in a structured format using a
database (e.g., SQLite or MySQL)
Data Analysis: Python is used to analyse the stored data.
Data Visualization: Analytical results are visualized using graphing libraries
like matplotlib or plotly to help users understand stock performance over time.
2
• Hardware & Software to use:
Hardware Requirements-
o Laptop (with intel i3/i5), (10-13 gen)
o RAM(8 GB)
o 518 MB SSD
o Operating System (Windows 10)
o Wifi & Bluetooth
o Integrated Intel UHD
Software Requirements-
o Python Programming (v3.7 or higher)
o Libraries (yfinance, matplotlib, etc)
o Code Editor (VS code)
o API (Yahoo Finance API)
• Application & Future Scope of the Project:
o This project can be applied in various real-world scenarios where live stock
market insights are valuable
o Personal Investment Tracking, Education Use, Research and Reports, Financial
Data Dashboards, etc.
o This project has great potential for expansion and improvement. In the future, it
can be enhanced with-
o Machine Learning, Web Interface or Mobile App, Advanced Analytics, Real
Time Trading Integrations.
• Project Time Line (Gantt Chart):
Week → | 1 |2 |3 |4 |5 |6 |
---------------------------------------------------------------------
Research ██████
Setup ░░░░░░
Data Fetching ██████
DB Integration ████
Analysis ███
Visualization █████
Interface ████
Testing & Report ██████
3
• Reference & Bibliography:
o Python Software Foundation. (n.d.). [Link]
o W3Schools. (n.d.). SQL Tutorial. Retrieved from [Link]
o GeeksforGeeks. (n.d.). Python & data visualization tutorials.
[Link]
o Stack Overflow. (n.d.). Discussions and code examples related to stock analysis and
Python.
o Charles D. Kirkpatrick & Julie R. Dahlquist. Technical Analysis: The Complete
Resource for Financial Market Technicians.
o Wes McKinney. Python for Data Analysis (Creator of pandas library).
• CODE:
import yfinance as yf
import [Link] as plt
import pandas as pd
import time
# Ask user for ticker
ticker = input("Enter the stock ticker (e.g., AAPL, TSLA, [Link], BTC-
USD): ")
# Enable interactive plotting
[Link]()
fig, ax = [Link](figsize=(12, 6))
prev_data = [Link]()
# Length for moving average
sma_window = 5 # last 5 minutes
while True:
try:
# Fetch 1-day intraday data (1-minute interval) with auto_adjust to avoid
warning
data = [Link](ticker, period="1d", interval="1m", auto_adjust=True)
# Append only new rows
if not prev_data.empty:
new_rows = data[~[Link](prev_data.index)]
if not new_rows.empty:
prev_data = [Link]([prev_data, new_rows])
else:
prev_data = data
# Keep last 50 points for plotting
plot_data = prev_data.tail(50)
4
[Link]()
# Plot closing price
[Link](plot_data.index, plot_data["Close"], label="Close Price",
color="blue")
# Plot simple moving average
if len(plot_data) >= sma_window:
sma = plot_data["Close"].rolling(window=sma_window).mean()
[Link](plot_data.index, sma, label=f"SMA ({sma_window})",
color="orange")
# Show latest price on chart
if not plot_data.empty:
last_price = plot_data["Close"].iloc[-1].item()
last_time = plot_data.index[-1].to_pydatetime()
[Link](last_time, last_price, f"{last_price:.2f}",
fontsize=10, color="red", ha="left")
# Titles and labels
ax.set_title(f"Real-Time Stock Price: {ticker}", fontsize=16)
ax.set_xlabel("Time")
ax.set_ylabel("Price")
[Link]()
plt.tight_layout()
# Update every 30 seconds
[Link](30)
except KeyboardInterrupt:
print("\n Real-time analysis stopped by user.")
break
• OUTPUT: