Комплексное руководство: алгоритмы прогнозирования акций Python с примерами кода

Прогнозирование акций – сложная задача, которая предполагает использование исторических данных для прогнозирования будущих тенденций и принятия обоснованных инвестиционных решений. Python с его богатой экосистемой библиотек и инструментов предлагает множество методов прогнозирования акций. В этой статье блога мы рассмотрим и предоставим примеры кода для нескольких популярных алгоритмов, используемых для прогнозирования акций.

  1. Метод скользящего среднего (MA):
    Метод скользящего среднего — это простой, но эффективный метод, который сглаживает колебания цен в течение определенного периода времени. Вот пример расчета скользящего среднего с использованием библиотеки pandas:
import pandas as pd
# Load stock data
data = pd.read_csv('stock_data.csv')
# Calculate moving average
data['MA'] = data['Close'].rolling(window=10).mean()
print(data)
  1. Метод линейной регрессии.
    Линейная регрессия — это широко используемый статистический метод прогнозирования цен на акции на основе исторических данных. Вот пример реализации линейной регрессии с использованием библиотеки scikit-learn:
from sklearn.linear_model import LinearRegression
# Load stock data
data = pd.read_csv('stock_data.csv')
# Prepare the features and target variables
X = data[['Open', 'Volume']]
y = data['Close']
# Create and train the linear regression model
model = LinearRegression()
model.fit(X, y)
# Predict future stock prices
future_data = pd.read_csv('future_data.csv')
predicted_prices = model.predict(future_data[['Open', 'Volume']])
print(predicted_prices)
  1. Метод регрессии опорных векторов (SVR):
    SVR — это алгоритм машинного обучения, который использует машины опорных векторов для задач регрессии. Он может фиксировать нелинейные связи между функциями и целевыми переменными. Вот пример реализации SVR с использованием библиотеки scikit-learn:
from sklearn.svm import SVR
from sklearn.preprocessing import StandardScaler
# Load stock data
data = pd.read_csv('stock_data.csv')
# Prepare the features and target variables
X = data[['Open', 'Volume']]
y = data['Close']
# Scale the features
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# Create and train the SVR model
model = SVR(kernel='rbf')
model.fit(X_scaled, y)
# Predict future stock prices
future_data = pd.read_csv('future_data.csv')
future_data_scaled = scaler.transform(future_data[['Open', 'Volume']])
predicted_prices = model.predict(future_data_scaled)
print(predicted_prices)
  1. Метод долгосрочной краткосрочной памяти (LSTM):
    LSTM — это тип рекуррентной нейронной сети (RNN), которая может фиксировать долговременные зависимости в последовательных данных. Он широко использовался для прогнозирования акций. Вот пример реализации LSTM с использованием библиотеки Keras:
from keras.models import Sequential
from keras.layers import LSTM, Dense
from sklearn.preprocessing import MinMaxScaler
# Load stock data
data = pd.read_csv('stock_data.csv')
# Normalize the data
scaler = MinMaxScaler(feature_range=(0, 1))
scaled_data = scaler.fit_transform(data[['Close']].values)
# Prepare the training data
X = []
y = []
lookback = 10  # Number of previous time steps to consider
for i in range(lookback, len(data)):
    X.append(scaled_data[i - lookback:i, 0])
    y.append(scaled_data[i, 0])
X, y = np.array(X), np.array(y)
X = np.reshape(X, (X.shape[0], X.shape[1], 1))
# Create and train the LSTM model
model = Sequential()
model.add(LSTM(units=50, return_sequences=True, input_shape=(X.shape[1], 1)))
model.add(LSTM(units=50))
model.add(Dense(units=1))
model.compile(optimizer='adam', loss='mean_squared_error')
model.fit(X, y, epochs=10, batch_size=32)
# Predict future stock prices
future_data = pd.read_csv('future_data.csv')
scaled_future_data = scaler.transform(future_data[['Close']].values)
X_future = np.reshape(scaled_future_data[-lookback:], (1, lookback, 1))
predicted_prices = model.predict(X_future)
predicted_prices = scaler.inverse_transform(predicted_prices)
print(predicted_prices)

В этой статье мы обсудили различные методы прогнозирования акций с использованием Python. Мы рассмотрели метод скользящего среднего, линейную регрессию, регрессию опорных векторов (SVR) и длинную краткосрочную память (LSTM). Каждый метод имеет свои преимущества и ограничения, а выбор алгоритма зависит от различных факторов, таких как характеристики данных и требования к прогнозированию. Используя эти методы, инвесторы и аналитики могут получить ценную информацию для принятия обоснованных решений на фондовом рынке.