# Importing Required Libraries
import pandas as pd
import yfinance as yf
import cufflinks as cf
import plotly.offline
cf.go_offline()
cf.set_config_file(offline=False, world_readable=True)
# Define the Ticker Symbol
ticker_symbol = "AAPL"
# Get the data on this ticker
ticker_data = yf.Ticker(ticker_symbol)
# Get the historical prices for the specified period
ticker_df = ticker_data.history(period="1d", start="2023-1-1", end="2023-07-07")
# Calculate True Range and Average True Range
ticker_df["HL"] = ticker_df["High"] - ticker_df["Low"]
ticker_df["HC"] = abs(ticker_df["High"] - ticker_df["Close"].shift())
ticker_df["LC"] = abs(ticker_df["Low"] - ticker_df["Close"].shift())
ticker_df["TR"] = ticker_df[["HL", "HC", "LC"]].max(axis=1)
ticker_df["ATR"] = ticker_df["TR"].rolling(window=14).mean()
# Plot the chart
ticker_df[["Close", "ATR"]].iplot(
title="Average True Range of " + ticker_symbol,
xTitle="Date",
yTitle="Price / ATR",
secondary_y="ATR",
secondary_y_title="ATR",
theme="pearl",
)