Stock Price Checker: Real-Time Stock Prices in Python
Stock Price Checker: Build a program that fetches and displays real-time stock prices.
Input values:
1. Ticker symbol of the stock (e.g., AAPL, GOOGL, MSFT).
Output value:
- Real-time stock price of the given ticker symbol.
- Additional information (optional):
- Stock price change (amount and percentage) from the previous close.
- Market capitalization.
- Volume of shares traded.
Examples:
Example 1:
- Input:
- Ticker symbol: "AAPL"
- Output:
- Current price: $145.67
- Price change: +$1.23 (+0.85%)
- Market cap: $2.45T
- Volume: 76.89M
Example 2:
- Input:
- Ticker symbol: "GOOGL"
- Output:
- Current price: $2734.56
- Price change: -$15.78 (-0.57%)
- Market cap: $1.82T
- Volume: 1.23M
Solution 1: Using yfinance for Stock Price Checker
Download market data from Yahoo! Finance's API
Installation
pip install yfinance
This solution uses the yfinance library to fetch real-time stock data, including current stock price, price change, market capitalization, and volume.
Code:
# Importing necessary libraries
import yfinance as yf
# Solution 1: Fetch stock data using yfinance
def get_stock_data(ticker_symbol):
# Download stock data for the given ticker symbol
stock = yf.Ticker(ticker_symbol)
# Get today's stock data
stock_info = stock.history(period="1d")
if len(stock_info) > 0:
# Get current price
current_price = stock_info['Close'].iloc[0] # Get the first row
# Check if there is a previous close available
prev_close = stock.info.get('previousClose', current_price) # Use previous close if available
# Calculate price change and percentage change
price_change = current_price - prev_close
percentage_change = (price_change / prev_close) * 100 if prev_close != 0 else 0
# Get market cap and volume
market_cap = stock.info.get('marketCap', 'N/A') # Handle cases where market cap may not be available
volume = stock_info['Volume'].iloc[0]
# Display stock information
print(f"Current price: ${current_price:.2f}")
print(f"Price change: ${price_change:.2f} ({percentage_change:.2f}%)")
if market_cap != 'N/A':
print(f"Market cap: ${market_cap/1e12:.2f}T")
else:
print("Market cap: N/A")
print(f"Volume: {volume/1e6:.2f}M")
else:
print("No data available for this ticker.")
# Example usage:
ticker = input("Enter the stock ticker symbol (e.g., AAPL, GOOGL): ")
get_stock_data(ticker)
Output:
Enter the stock ticker symbol (e.g., AAPL, GOOGL): AAPL Current price: $235.86 Price change: $-0.62 (-0.26%) Market cap: $3.59T Volume: 34.96M
Enter the stock ticker symbol (e.g., AAPL, GOOGL): GOOGL Current price: $165.14 Price change: $1.07 (0.65%) Market cap: $2.04T Volume: 16.16M
Enter the stock ticker symbol (e.g., AAPL, GOOGL): NVDA Current price: $143.59 Price change: $-0.12 (-0.08%) Market cap: $3.52T Volume: 223.04M
Explanation:
- Import Libraries:
- The yfinance library is imported to fetch stock data from Yahoo Finance.
- Function Definition:
- The function get_stock_data(ticker_symbol) is defined to take a stock ticker symbol (e.g., AAPL, GOOGL) as input.
- Download Stock Data:
- stock = yf.Ticker(ticker_symbol) initializes the stock object for the given ticker symbol.
- stock_info = stock.history(period="1d") fetches the stock's historical data for the last day.
- Check for Data:
- The function checks if there is any data available using if len(stock_info) > 0:. If there is no data, it prints a message saying "No data available for this ticker."
- Fetch Current Price:
- current_price = stock_info['Close'].iloc[0] gets the closing price for the stock from today's data.
- Fetch Previous Close:
- prev_close = stock.info.get('previousClose', current_price) retrieves the previous close price. If it's unavailable, the function uses the current price as a fallback.
- Calculate Price Change and Percentage Change:
- price_change = current_price - prev_close calculates the difference between the current price and previous close.
- percentage_change = (price_change / prev_close) * 100 calculates the percentage change from the previous close. If prev_close is zero, the percentage is set to zero.
- Fetch Market Cap and Volume:
- market_cap = stock.info.get('marketCap', 'N/A') retrieves the market capitalization. If it's unavailable, it returns 'N/A'.
- volume = stock_info['Volume'].iloc[0] fetches today's trading volume.
- Display Stock Information:
- The function prints the current price, price change (both in dollars and percentage), market capitalization (in trillions, if available), and trading volume (in millions).
- Input and Function Call:
- The user is prompted to input a stock ticker symbol with ticker = input("Enter the stock ticker symbol (e.g., AAPL, GOOGL): ").
- The function get_stock_data(ticker) is called with the user’s input to display the stock information.
Solution 2: Using requests and Alpha Vantage API
This solution uses the requests library to fetch stock data from Alpha Vantage API, which provides real-time stock prices and additional financial information.
Code:
# Import necessary libraries
import requests
# Solution 2: Fetch stock data using Alpha Vantage API
def get_stock_data_alpha_vantage(ticker_symbol, api_key):
# API URL to get stock data
url = f"https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol={ticker_symbol}&interval=1min&apikey={api_key}"
# Fetch stock data from Alpha Vantage
response = requests.get(url)
data = response.json()
# Extract stock information
time_series = data["Time Series (1min)"]
latest_time = list(time_series.keys())[0]
latest_data = time_series[latest_time]
current_price = float(latest_data["4. close"])
# Additional info (previous close and volume)
previous_close = float(latest_data["1. open"])
price_change = current_price - previous_close
percentage_change = (price_change / previous_close) * 100
volume = int(latest_data["5. volume"])
# Display stock information
print(f"Current price: ${current_price:.2f}")
print(f"Price change: ${price_change:.2f} ({percentage_change:.2f}%)")
print(f"Volume: {volume:,}")
# Example usage:
ticker = input("Enter the stock ticker symbol (e.g., AAPL, GOOGL): ")
api_key = "your_alpha_vantage_api_key"
get_stock_data_alpha_vantage(ticker, api_key)
Output:
Enter the stock ticker symbol (e.g., AAPL, GOOGL): MSFT Current price: $426.80 Price change: $0.00 (0.00%) Volume: 539
Enter the stock ticker symbol (e.g., AAPL, GOOGL): TSLA Current price: $217.49 Price change: $-0.01 (-0.00%) Volume: 3,181
Explanation:
- Uses the requests library to fetch stock data from Alpha Vantage.
- This requires an API key.
- Extracts the latest stock price, price change, percentage change, and volume from the API response.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/projects/python/python-project-fetch-and-display-real-time-stock-prices.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics