Hisse senedi fiyat tahmini,Hisse senedi tahmini python, Stock market price prediction, Stock market price prediction with python

Stock market price prediction python1

Merhaba,

Bu yazımızda makine öğrenmesi gözetimli makine öğrenmesi altında yer alan lineer regresyon modeli ile hisse senedi fiyat tahminlemesi python dili kullanarak GUBRF(Gübre Fabrikalari Türk Anonim Sirketi) firması üzerinden test edeceğiz.Kullandığım editör Visual Studio Code,python versiyon 3.7.

 Öncelikle borsa verilerini,

https://finance.yahoo.com/quote/GUBRF.IS?p=GUBRF.IS&.tsrc=fin-srch

Stock market price prediction python2

Historical Data sekmesinden çalışma yapmak istediğimiz tarih aralığını seçerek verilerimizi .csv formatında ‘Download’ tıklayarak indiriyoruz. Bunu api aracılığıyla da yapabilirsiniz. İndirme işleminiz bittiğinde GUBRF.IS.csv isminde dosya bilgisayarınızda oluşacaktır.

 

Kullanacağımız Kütüphaneler

 

import numpy as np # temel işlemler

import pandas as pd #  veri operasyonları için ekledim.

import os

import matplotlib.pyplot as plt # grafik, çizdirme vs.

from sklearn import preprocessing #linner regresyon için ekledim.

from sklearn.metrics import mean_squared_error #loss fonksiyon,hata ölçümü

 

#ilk veriyi okuyoruz

hisse_veri1=pd.read_csv("GUBRF.IS.csv")

hisse_veri1.head()

hisse_veri1.shape

hisse_veri1.isnull().sum()

 

Oluşan dosyanın içeriğine bakacak olursak,

245günlük veri , 2020-01-16 ile 2021-01-08 arasında.

 

Date : hisse senedinin işlem gördüğü gün

Open :Açılış fiyatı

High: Gün içinde hissenin ulaştığı en yüksek değer

Low: Gün içinde hissenin ulaştığı en düşük değer

Close : Hisse gün sonu kapanış fiyatı

Adj Close : Düzeltmeli kapanış

Volume : Hisse hacmi ( Emirlerde hisse senedi değer ve sayısı çarpımı)

 

hisse_veri1[“Close”][:‘2020’].plot(figsize=(16,4), legend=True)

hisse_veri1[“Close”][“2021”:].plot(figsize=(16,4), legend=True)

plt.legend([“Eğitim set (önce 2021)”“Test seti (2020)”])

plt.title(“GUBRF Hisse Değeri”)

plt.show()

Stock market price prediction python3
             Stock market price prediction

2020 yılını  eğitim seti,2021 yılını da test seti olarak ayırarak işlem gerçekleştireceğiz.

print(hisse_veri1.describe())

Stock market price prediction python4
      Stock market price prediction

Datamızı inceleyecek olursak  pandas’ın describe() metodunu kullanarak

Open,High,Low,Close,Adj Close ve Volume değerlerinin toplam satır sayısı, ortalaması, standart sapması, minimum, maksimum değerlerinin yanı sıra

%25,%50 ve %75 gibi belirtilen  değerlerin yüzde dilimlerinin  o fiyatın üzerinde olduğunu göstermektedir.

  Open        High         Low       Close   Adj Close        Volume

count  245.000000  245.000000  245.000000  245.000000  245.000000  2.450000e+02

mean    28.229510   29.083184   27.458163   28.250694   28.250694  6.989810e+06

std     14.737932   15.269796   14.037277   14.709204   14.709204  7.687745e+06

min      8.450000    8.600000    8.340000    8.360000    8.360000  0.000000e+00

25%     16.010000   16.309999   15.710000   15.940000   15.940000  2.734124e+06

50%     27.799999   28.400000   27.219999   27.799999   27.799999  4.527484e+06

75%     34.020000   35.119999   33.400002   34.139999   34.139999  7.520533e+06

max     86.599998   88.599998   77.500000   86.150002   86.150002  5.361469e+07

 

hisse_veri1["Close"][:'2020'].plot(figsize=(16,4), legend=True)

hisse_veri1["Close"]["2021":].plot(figsize=(16,4), legend=True)

plt.legend(["Eğitim set (önce 2021)""Test seti (2020)"])

plt.title("GUBRF Hisse Değeri")

plt.show()

 

Stock market price prediction python5
              Stock market price prediction

 

X =data.loc[:,data.columns !=  'Close' ]   #hisse_veri3[['Open','High','Low','Volume']].to_numpy() #martrise çeviriyorum.

y = data['Close']

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)

Scikit-learn  lineer regresyon modelini kullanıyoruz,

from sklearn.linear_model import LinearRegression

model = LinearRegression()

model.fit(X_train, y_train)

#tahminleme

y_pred=model.predict(X_test)

print (model.score(X_test, y_test))

plot_df=pd.DataFrame({'Gerçek Fiyat':y_test,'Tahmini Fiyat':y_pred})

plot_df.head(20).plot(kind='bar',figsize=(16,8))

plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')

plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')

plt.show()

 

 

Stock market price prediction python6
            Stock market price prediction

 

#Mean Square error of the prediction

from sklearn.metrics import mean_squared_error

rmse = np.sqrt(mean_squared_error(y_test, y_pred))

print(f"Root mean squared error değeri {rmse}")

Root mean squared error değeri : 0.0650.065

Son olarak aşağıda gerçekleşen fiyat ile tahmin ettiğimiz değerleri tabloda gösterilmektedir.

Soldaki değerlerimiz index (date) değelerimiz.

 

Stock market price prediction python7
     Stock market price prediction 

Özellikle piyasada işlem yapanlarında aşina olacağı son sözümüz  yazımız yatırım tavsiyesi değildir(ytd).

Soru ve iletişim için  iletişim  formundan  bana ulaşabilirsiniz.

İlerleyen yazılarda görüşmek üzere.

Oğuz ALTUNTAŞ © 2021

error: Oğuz ALTUNTAŞ © 2020