Prediksi Harga Saham Harian Menggunakan LSTM (Time Series)
Proyek ini membahas prediksi harga saham harian menggunakan model Long Short-Term Memory (LSTM) yang merupakan bagian dari Recurrent Neural Network (RNN) untuk memodelkan data time series. Topik ini cocok dijadikan skripsi atau tugas akhir yang berfokus pada deep learning dan data finansial, dan dapat dibantu pengerjaannya oleh tim ITS Academics atau jasa joki skripsi.
Pendahuluan
Prediksi harga saham merupakan salah satu tantangan besar dalam bidang keuangan karena data saham bersifat non-linear dan bergantung pada waktu. Model Long Short-Term Memory (LSTM) dalam kategori Recurrent Neural Network (RNN) mampu menangani data deret waktu (time series) dan mempertahankan informasi penting dari data masa lalu. Proyek ini sangat ideal untuk dijadikan topik skripsi atau tugas akhir, apalagi dengan bimbingan dari ITS Academics atau layanan jasa joki skripsi.
Dataset
Dataset yang digunakan adalah harga saham historis dari Yahoo Finance dengan kolom:
| Fitur | Deskripsi |
|---|---|
| Date | Tanggal transaksi |
| Open | Harga pembukaan |
| High | Harga tertinggi hari itu |
| Low | Harga terendah hari itu |
| Close | Harga penutupan |
| Volume | Jumlah transaksi |
Rumus LSTM (Singkat)
LSTM memiliki tiga gerbang utama:
-
Forget Gate:
-
Input Gate:
-
Output Gate:
Dengan memori sel internal , LSTM menjaga informasi yang relevan untuk prediksi berkelanjutan.
Implementasi Python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import MinMaxScaler
from keras.models import Sequential
from keras.layers import LSTM, Dense
# Load dataset
url = 'https://raw.githubusercontent.com/datasets/finance-vix/master/data/vix-daily.csv'
df = pd.read_csv(url)
df = df[['Date', 'VIXClose']].rename(columns={'VIXClose': 'Close'})
df['Date'] = pd.to_datetime(df['Date'])
df.set_index('Date', inplace=True)
# Normalisasi
scaler = MinMaxScaler()
data_scaled = scaler.fit_transform(df[['Close']])
# Buat dataset untuk LSTM
def create_sequences(data, seq_length):
X, y = [], []
for i in range(len(data) - seq_length):
X.append(data[i:i+seq_length])
y.append(data[i+seq_length])
return np.array(X), np.array(y)
seq_length = 10
X, y = create_sequences(data_scaled, seq_length)
# Split data
train_size = int(0.8 * len(X))
X_train, X_test = X[:train_size], X[train_size:]
y_train, y_test = y[:train_size], y[train_size:]
# Model LSTM
model = Sequential()
model.add(LSTM(50, return_sequences=False, input_shape=(seq_length, 1)))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mse')
model.fit(X_train, y_train, epochs=20, batch_size=16, verbose=1)
# Prediksi
predicted = model.predict(X_test)
predicted = scaler.inverse_transform(predicted)
actual = scaler.inverse_transform(y_test)
# Visualisasi
plt.figure(figsize=(10, 5))
plt.plot(actual, label='Actual')
plt.plot(predicted, label='Predicted')
plt.title('Prediksi Harga Saham Harian dengan LSTM')
plt.xlabel('Waktu')
plt.ylabel('Harga Saham')
plt.legend()
plt.show()
Kesimpulan
Model LSTM terbukti efektif dalam memprediksi harga saham harian, terutama pada data time series yang kompleks dan fluktuatif. Dengan implementasi Python dan pustaka deep learning seperti Keras, mahasiswa dapat membangun model yang kuat dan akurat. Proyek ini sangat cocok untuk dijadikan skripsi atau tugas akhir, apalagi dengan bimbingan dari tim ITS Academics atau layanan jasa joki skripsi terpercaya.
Langkah pengembangan selanjutnya bisa mencakup:
-
Tambahan indikator teknikal (moving average, RSI, dll)
-
Perbandingan model LSTM dengan ARIMA atau Prophet
-
Penerapan model multi-step forecasting dan real-time prediction
Apa Reaksi Anda?