python
import pandas as pd
import numpy as np
import yfinance as yf
import matplotlib.pyplot as plt

# Получаем исторические данные о цене актива
ticker = 'AAPL' # здесь указываем тикер актива
data = yf.download(ticker, start='2021-01-01', end='2021-12-31')

# Рассчитываем скользящие средние
data['SMA50'] = data['Close'].rolling(window=50).mean()
data['SMA200'] = data['Close'].rolling(window=200).mean()

# Определяем точки входа
data['Signal'] = 0
data['Signal'][data['SMA50'] > data['SMA200']] = 1 # долгосрочное пересечение
data['Signal'][data['SMA50'] < data['SMA200']] = -1 # короткосрочное пересечение

# Визуализируем точки входа
plt.figure(figsize=(12, 6))
plt.plot(data['Close'], label='Цена закрытия', alpha=0.7)
plt.plot(data['SMA50'], label='SMA 50', linestyle='--', alpha=0.7)
plt.plot(data['SMA200'], label='SMA 200', linestyle='--', alpha=0.7)
plt.plot(data[data['Signal'] == 1].index, data['SMA50'][data['Signal'] == 1], '^', markersize=10, color='g', label='Покупка')
plt.plot(data[data['Signal'] == -1].index, data['SMA50'][data['Signal'] == -1], 'v', markersize=10, color='r', label='Продажа')
plt.title(f'Точки входа на {ticker}')
plt.legend()
plt.show()
Technical Indicators

Disclaimer