Klasik hatırlatmamızı yaparak yazımıza başlayayım, kesinlikle YTD! Bildiğiniz üzere Python, nesne yönelimli, yorumlamalı, birimsel ve etkileşimli yüksek seviyeli bir programlama dilidir. Modüler yapısı, sınıf dizgesini (sistem) ve her türlü veri alanı girişini destekler. Hemen hemen her türlü platformda çalışabilir. Blockchain (ayrıca yazı yazacağım) uygulamaları kodlanabilir, uzaktan kontrol veya görüntü işleme yapılabilir, veri analizi veya veri kontrolü yapılabilir, TensorFlow, PyTorch, Keras (Makine öğrenimi)gibi kütüphanlerle derin makine öğrenmesi uygulamaları yapılabilir. Bizde bugün benzer kütüphaneler olan TA-Lib ve pandas ile birlikte rsi, macd ve momentum indikatörünü kullanarak belirli tarih aralıklarındaki fiyatların analizini yaparak 3’lü olasılık oluşturacağız.

Pandas, veri işlemesi ve analizi için Python programlama dilinde yazılmış olan bir yazılım kütüphanesidir. Bu kütüphane temel olarak zaman etiketli serileri ve sayısal tabloları işlemek için bir veri yapısı oluşturur ve bu şekilde çeşitli işlemler bu veri yapısı üzerinde gerçekleştirilebilir olur. Yazılım ücretsizdir ve bir çeşit BSD ile lisansına sahiptir. Yazılım ismini bir ekonometri terimi olan veri panelinden almıştır. Bir veri paneli birçok zaman aralığı içinde farklı gözlemlerin işlenebildiği yapıyı tarif eder. TA-Lib ise içinde tam 150 tane farklı indikatörü bulunduran özellikle trade algoritmaları için kullanılan bir kütüphanedir.

Öncelikle verilerimizi çekeceğimiz yahoo finance kütüphanemiz ile birlikte pandas ve TA-Lib kütüphanelerini ekliyoruz.
import yfinance as yf
import talib as ta
import pandas as pd
daha sonra değişkenimizi atayarak hangi tarihler arasındaki fiyatların analiz edileceğini belirliyoruz.
def get_data(crypto):
df = yf.download(crypto, start="2020-01-01", end="2021-03-06")
return df
Analiz etmesini istediğimiz kriptoları isimlerini veya hisse isimlerini belirliyoruz. Burada Yahoo Finance adresindeki kodların aynı olmasına dikkat edin.
df1 = get_data("BTC-USD")
df2 = get_data("ETH-USD")
df3 = get_data("NIO")
df4 = get_data("TSLA")
MOM (Momentum), MACD (Moving Average Convergence Divergence) ve RSI (Relative Strength Index) indikatörlerimizi kullanıyoruz. Rsi aralığımız 25-75, Macd teknik analizi ise fiyatın kısa dönemli eğilimiyle uzun dönemli eğilimi arasındaki ilişkiyi gösterir. Kısa vadeli (12 günlük ) üssel ortalama ile uzun vadeli 26 günlük üssel ortalama arasındaki farkın alınmasıyla oluşturulmuştur. Kodumuzda da bu şekilde göstererek sinyal periyodu olarak 9 belirliyoruz.
ef get_MOM(data):
data["momentum"] = ta.MOM(data["Close"], timeperiod=7)
return data.momentum.iat[-1]
def get_RSI(data):
data["rsi"] = ta.RSI(data["Close"], timeperiod=7)
return data.rsi.iat[-1]
def get_macd(data):
data["macd"], data["macdsignal"], data["macdhist"] = ta.MACD(data["Close"], fastperiod=12, slowperiod=26, signalperiod=9)
def get_price(data):
return data.Close.iat[-1]
def get_slowk(data):
data["slowk"], data["slowd"] = ta.STOCH(data["High"], data["Low"], data["Close"], fastk_period=5, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0)
return data.slowk.iat[-1]
def get_slowd(data):
data["slowk"], data["slowd"] = ta.STOCH(data["High"], data["Low"], data["Close"], fastk_period=5, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0)
return data.slowd.iat[-1]
Mevcut verilerimizi ayrı ayrı listeliyoruz.
dataframes = [df1, df2, df3, df4]
Son olarak verilerimizi analiz ederek yazdırıyoruz.
or dataframe in dataframes:
dataframe.RSI = get_RSI(dataframe)
dataframe.MOM= get_MOM(dataframe)
dataframe.price = get_price(dataframe)
dataframe.macd = get_macd(dataframe)
if dataframe.RSI<=60 and dataframe.MOM <0:
dataframe.decision = "AL"
elif dataframe.RSI>=85 and dataframe.MOM >0:
dataframe.decision = "SAT"
else:
dataframe.decision = "ELİNDE TUT"
data = {'Kripto': ['BTC-USD', 'ETH-USD', 'NIO', 'TSLA'],
'Fiyat': [df1.price, df2.price, df3.price, df4.price],
'RSI': [df1.RSI, df2.RSI, df3.RSI, df4.RSI],
'Momentum' : [df1.MOM, df2.MOM, df3.MOM, df4.MOM],
'Sonuc' : [df1.decision, df2.decision, df3.decision, df4.decision]
}
dfinal = pd.DataFrame (data, columns = ['Kripto','Fiyat','RSI', 'Momentum', 'Sonuc'])
print (dfinal)
Sonuç çıktımız:

Son olarak yazı kesinlikle bilgilendirme amaçlıdır. Kütüphanelerin kullanımı ve veri analizi konusunda örnekleme içerir.
10 Replies to Python ile Pandas ve TA-Lib kütüphanelerini kullanarak Hisse Senedi ve Fiyatlarını Simüle Etme
Valla yaptım ustad ya 😀
Tebrikler. 🙂
Hata var
Tam olarak hangi satırda hata alıyorsunuz? Hata mesajını yazabilir misiniz?
Kod bende çalışmadı, yapan arkadaş nasıl yapmış
Tam olarak hangi satırda hata alıyorsunuz? Hata mesajını yazabilir misiniz?
Merhaba
Yahoo dan değilde binance dan 4 saatlik grafikler üzerinde bu verileri nasıl analiz ettirebiliriz?
Merhabalar, binance apisine bakmak lazım, Python’un binance kütüphanesi olduğu biliyorum. İnceleyip geri dönüş yapacağım.
Merhaba, hocam or dataframe in dataframes’te hata alıyorum am sorun şu. TA-lib’i indiremedim. Yüklemiyor. bunun yerine manuel yapmam gerekiyor fakat o zamanda macos GCC indirmemi istiyor. Açıkçası anlamadım hiçbir şey. Diğer kütüphaneleri indirebiliyorum. TA-lib hata veriyor sadece. Yeni yeni yazılım öğreniyorum. ios işletim sistemi kullanıyorum.
Merhabalar,
or dataframe in dataframes
hatasını almanızın sebebi kütüphanenin yüklenmemiş olması. Ta-lib yüklerken aldığınız hatayı yazabilir misiniz ? ve pip en son versiyon mu kullanıyorsunuz ?Borsadaki robot işlemleri ve Algo Trading
Python ile Pandas ve TA-Lib kütüphanelerini kullanarak Hisse Senedi ve Fiyatlarını Simüle Etme
Kripto paralarda bot çalıştırmak ve en iyi 5 kripto para botu
Binance LeaderBoard kullanıcılarının işlemlerine göre al sat yapan bot yazalım.
Pandas ve ta-talib kütüphanelerini kullanarak hisse senetleri ve kripto paralar üzerinde al-sat sinyali oluşturalım
Güncel Tradingview scriptlerim (Çoklu tradingview indikatörleri)
Yapay zeka siteleri ile para kazanma
Milletimizin başı sağ olsun