Exploring Python Basics and Stock Analysis with Yahoo Finance
In this blog post, we will introduce some Python basics, including variable types, control flow statements, and importing libraries. After that, we will dive into stock analysis using the Yahoo Finance library to retrieve stock data, calculate returns, and visualize the results. Let’s begin by looking at some basic Python operations and python for stock analysis.
Printing and Variable Types
print("Hello, World!") print(type("Hello, World!")) myFirstString = "Hello, World!" print(myFirstString)
type function returns the data type of the given variable. In this case, we’re working with a string.
Multiplying Two Integers
Integers are a variable type in Python and most other programming languages. Here we will declare them and then add them together. stockPrice = 15 numberOfShares = 10 print('The amount of money I have in these stocks is: ' + str(stockPrice*numberOfShares))
We declare two integer variables,
numberOfShares, and multiply them together to calculate the total amount of money we have in these stocks.
Running a For Loop
values = [1,2,3,4,5,6,7,8,9,10] print(type(values)) for i in values: print(i)
A for loop is a control flow statement that iterates over a sequence of values and executes a block of code for each value in the sequence. In this example, we iterate over a list of integers and print each value.
Executing an If Statement
a = 8 b = 10 if a > b: print("a is greater than b") elif b > a: print("b is greater than a") for i in values: if i > 5: print(i)
An if statement is a control flow statement that allows us to execute a block of code if a particular condition is true, and skip that block of code if the condition is false. In this example, we compare two integer variables and print a message based on their relationship. We also use a for loop and an if statement to print values greater than 5 from a list of integers.
import yfinance as yf import pandas as pd from pandas_datareader import data as pdr import datetime as dt import numpy as np
In Python, libraries are collections of pre-written code that extend the language’s functionality. We need to import them into our code to use their functions, classes, and other features. In this example, we import the necessary libraries for stock analysis, including
Declaring the Date Range for Our Stock Returns
endDate = dt.datetime.now() startDate = endDate - dt.timedelta(days = 365*5) endDate, startDate
Here, we use Python’s
datetime module to define a date range for our stock analysis. We declare the current date as the
endDate, and the
startDate as five years before the current date.
Creating a List of Stocks
stocks = ['MSFT', 'SPY', 'QQQ']
We create a list of stock symbols that we are interested in analyzing. This list can be modified to include any stock symbols available on Yahoo Finance.
Downloading Stock Data from Yahoo Finance
df = yf.download(stocks, start = startDate, end = endDate)
Using the `yfinance` library, we download the historical stock data for our selected stocks within the specified date range. **Exploring the Dataframe** ```python df.head()
head function allows us to take a peek at the first few rows of the dataframe containing our downloaded stock data.
Selecting Adjusted Close Prices
adj_close_prices = df['Adj Close'] adj_close_prices.head()
We extract the adjusted close prices from the dataframe and store them in a new variable called
Calculating Daily Returns
# To calculate the daily returns, we can use the pct_change() function from pandas log_returns = np.log(adj_close_prices/adj_close_prices.shift(1)) log_returns.head()
We calculate the daily log returns of the stocks using the
pct_change() function from the
pandas library and the natural logarithm function from the
Calculating Cumulative Returns
cumulative_log_returns = log_returns.cumsum()
We compute the cumulative log returns by summing up the daily log returns using the
cumsum() function from
Plotting Cumulative Returns
# We'll use the same plot() function from pandas to visualize the cumulative returns of the stocks cumulative_log_returns.plot(title="Cumulative Returns", figsize=(10, 6))
Finally, we visualize the cumulative returns of our selected stocks using the
plot() function from
pandas. This provides us with a clear picture of how the stocks have performed over the specified date range.
In this blog post, we have covered some Python basics and demonstrated how to analyze stocks using the Yahoo Finance library. This process can be easily adapted to analyze different stocks, timeframes, or even other financial instruments.
In this tutorial, we explored the basics of Python, including variable types, control flow statements, and importing libraries. We then demonstrated how to use the Yahoo Finance library to perform stock analysis, starting from retrieving stock data to calculating daily and cumulative returns, and finally visualizing the results.
This tutorial provides a solid foundation for anyone interested in learning Python programming and applying it to finance. The techniques demonstrated can be easily adapted to analyze different stocks, timeframes, or even other financial instruments. As you progress in your journey with Python and finance, you can explore more advanced topics such as machine learning, portfolio optimization, and algorithmic trading to further enhance your skills and knowledge. Happy coding!