import pandas as pd import numpy as np import matplotlib.pyplot import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import yfinance as yf
# Stock data download (for example, Apple stock)
stock_symbol = 'AAPL'
data = yf.download(stock_symbol, start='2020-01-01', end='2025-01-01')
# Calculate Short and Long Moving Averages
short_window = 40
long_window = 100
data = data .rolling(window=short_window, min_periods=1).mean()
data = data .rolling(window=long_window, min_periods=1).mean()
# Generate signals
data = 0
data = np.where(data > data , 1, 0)
data = data .diff()
# Plotting the data
plt.figure(figsize=(12,6))
plt.plot(data , label='Close Price')
plt.plot(data , label=f'{short_window} Days Moving Average')
plt.plot(data , label=f'{long_window} Days Moving Average')
plt.scatter(data.index [data == 1], data [data == 1], marker='^', color='g', label='Buy Signal', alpha=1)
plt.scatter(data.index [data == -1], data [data == -1], marker='v', color='r', label='Sell Signal', alpha=1)
plt.title(f'{stock_symbol} Moving Average Crossover Strategy')
plt.legend(loc='best')
plt.show()