Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project 12 - Osakemarkkinaennuste LSTM:llä

Projekti on tehty Tietotekniikan laboratoriokurssia varten. Projektin ideana on rakentaa LSTM-pohjainen neuroverkko, joka ennustaa S&P 500 -indeksin päivittäistä suuntaa teknisten indikaattorien avulla.

Yleiskatsaus

Malli hakee historiallisen S&P 500 -datan vuodesta 2010 alkaen ja laskee teknisiä indikaattoreita, kuten RSI, ATR, Bollingerin nauhat sekä liukuvien keskiarvojen suhteita. Näiden pohjalta LSTM-verkko ennustaa seuraavan päivän logaritmista tuottoa. Kohdemuuttujana käytetään logaritmista tuottoa raakojen hintojen sijaan, jotta datan stationaarisuus säilyy koko aika-alueella.

Teknologiat

  • Suoritusympäristö: Python 3.14
  • Syväoppiminen: PyTorch (LSTM-arkkitehtuuri)
  • Data: yfinance (S&P 500, tunnus ^GSPC)
  • Esikäsittely: NumPy, Pandas, scikit-learn

Projektin rakenne

src/
  dataProcess.py  # Datan haku, piirteiden laskenta, skaalaus ja sekvenssien luonti
  model.py        # StockLSTM-arkkitehtuuri
  train.py        # Opetussilmukka, validointi ja oppimisnopeuden säätö
  main.py         # Pääohjelma: pipeline, opetus ja arviointi
  test_model.pth  # Tallennettu mallin tila

Aloittaminen

Vaatimukset

  • Python 3.14
  • pip

Asennus

python -m venv venv
source venv/bin/activate
pip install torch numpy pandas scikit-learn yfinance

Mallin opetus ja arviointi

cd src
python main.py

Ohjelma hakee datan automaattisesti, opettaa mallin ja tulostaa tulokset.

Arkkitehtuuri

Parametri Arvo
Malli LSTM
Piirteet 7
Piilokerroksen koko 64
Kerroksia 2
Dropout 0.2
Sekvenssipituus 60 päivää
Optimoija Adam
Häviöfunktio MSELoss

Piirteet

Piirre Kuvaus
RSI Suhteellinen voimaindeksi (0–100)
ATR_pct Keskimääräinen todellinen vaihteluväli suhteessa hintaan
BB_width Bollingerin nauhojen leveys suhteessa SMA_20:een
BB_pct Hinnan sijainti Bollingerin nauhojen sisällä (0–1)
EMA_ratio EMA_12 / SMA_20, lyhyen aikavälin momentumsignaali
SMA_ratio SMA_20 / SMA_50, trendin suuntasignaali
Volume_relative Päivän volyymi suhteessa 20 päivän keskivolyymiin

Tulokset

Mittari Tulos
Suuntatarkkuus 56.6%
MAE 0.6456% (logaritminen tuotto)
Opetushäviö ~0.0027
Validointihäviö ~0.0018

About

LSTM based stock predictor

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages