Hello and welcome to the Technical Indicators in Financial Analysis course! In today's lesson, we'll explore how to calculate and visualize the Simple Moving Average (SMA) for Tesla ($TSLA
) stock prices using Pandas
in Python. The goal is to help you understand how to handle stock price data, compute a key technical indicator (SMA), and interpret the results visually. Here is the lesson plan:
- Introduction to Financial Data Handling.
- Loading and Preprocessing
$TSLA
Data. - Calculating the 20-day Simple Moving Average (SMA).
- Visualizing SMA with Stock Prices.
- Summary and Next Steps.
Before diving into the code, it's essential to understand why financial data handling is crucial. Financial data analysis allows traders and analysts to interpret market trends, predict future stock movements, and make informed decisions.
We'll be using Pandas
, a powerful Python library for data manipulation and analysis. Pandas mainly operates with DataFrames
and Series
, making it excellent for time series data like stock prices.
Time series data involves data points indexed in time order. In the context of stock prices, each data point corresponds to the stock price at a specific date and time.
First, let's load the $TSLA
dataset. We'll use the datasets
library to fetch this data. After loading, we'll review the columns and convert the 'Date' column to datetime
format, as it's crucial for time series processing.
Python1import pandas as pd 2import datasets 3import datetime as dt 4 5# Load TSLA dataset 6tesla_data = datasets.load_dataset('codesignal/tsla-historic-prices') 7tesla_df = pd.DataFrame(tesla_data['train'])
The output of the above code will be a DataFrame
tesla_df
containing historical price data for Tesla stock, sourced from the codesignal/tsla-historic-prices
dataset. This data includes columns for open, close, high, low stock prices, and volume for each trading day.
Next, we need to ensure the 'Date' column is in datetime
format and set it as the DataFrame
index. This will help us handle the data more efficiently for time series analysis.
Python1# Convert 'Date' to datetime format and set as index 2tesla_df['Date'] = pd.to_datetime(tesla_df['Date']) 3tesla_df.set_index('Date', inplace=True) 4 5# Sort the dataset by date 6tesla_df.sort_index(inplace=True)
The preprocessing steps ensure that our data is in the correct format and order for further analysis.
The Simple Moving Average (SMA) is a widely-used technical indicator in financial analysis. It helps to smooth out price data by calculating the average stock price over a specific number of periods. This technique allows traders to easily identify the trend direction and filter out noise from random short-term price fluctuations.
The SMA is calculated by taking the arithmetic mean of the closing prices over a defined number of periods. For example, a 20-day SMA is the average closing price over the last 20 trading days.
We'll calculate the 20-day SMA for the closing price of the $TSLA
stock. Pandas makes this task straightforward by providing the rolling
method, which we can use to compute the moving average.
Python1# Calculate the 20-day Simple Moving Average for the Close Price 2tesla_df['SMA_20'] = tesla_df['Close'].rolling(window=20).mean()
By adding the new 'SMA_20' column to our DataFrame
, we can easily compare the SMA with the actual closing prices. This comparison will help us analyze the trends in Tesla's stock over the specified period.
Visualization helps us interpret the data more intuitively. We'll use Matplotlib
, a popular Python library for plotting, to visualize the $TSLA
closing prices along with the calculated 20-day SMA.
First, we'll subset the data to a smaller range (e.g., the year 2018) for better visualization.
Python1import matplotlib.pyplot as plt 2 3# Using a smaller date range for better visualization 4tesla_df_small = tesla_df.loc['2018']
Next, we'll plot the 'Close' price and 'SMA_20' on the same chart.
Python1# Plotting 2tesla_df_small[['Close', 'SMA_20']].plot(figsize=(12, 6), title="TSLA Close Price and 20-day SMA (2018)") 3plt.show()
The output of the above code is a plot showing Tesla's closing prices and the 20-day SMA for the year 2018. This visualization is key for analyzing the trend and volatility of Tesla's stock, demonstrating how the SMA provides a smoothed average of the closing prices over the specified period.
In this lesson, we covered how to load and preprocess $TSLA
stock price data, calculate the 20-day Simple Moving Average (SMA), and visualize it alongside the stock prices. These are foundational skills that will be essential as we move forward to more advanced technical indicators.
Practice these steps with different date ranges or other stocks to reinforce your learning. In the upcoming lessons, we will explore more advanced indicators, such as the Exponential Moving Average (EMA).
Keep practicing, and you'll steadily build a robust toolkit for making informed trading decisions using machine learning and financial analysis!