Python ta Kütüphanesiyle Teknik Analiz İndikatörleri (RSI ve Hareketli Ortalama)

kusha · 03 Ağustos 2026 · 6 dk okuma

Teknik analiz yapan yatırımcıların en sık kullandığı iki gösterge RSI (Göreceli Güç Endeksi) ve hareketli ortalamalardır. Bu derste ta kütüphanesiyle bu iki indikatörü kendi kodunuzda nasıl hesaplayacağınızı göreceğiz.

Kurulum

pip install ta yfinance pandas

Veriyi Hazırlamak

import yfinance as yf

veri = yf.download("BTC-USD", period="3mo", interval="1d")

ta kütüphanesi, girdisini bir pandas Series olarak bekler — yfinance'ten gelen veri zaten bu formatta olduğu için ek bir dönüştürmeye gerek yoktur.

RSI Hesaplamak

from ta.momentum import RSIIndicator

rsi = RSIIndicator(close=veri["Close"], window=14)
veri["RSI"] = rsi.rsi()

print(veri[["Close", "RSI"]].tail())

window=14, RSI'nin standart hesaplama periyodu olan 14 günü ifade eder — bu, teknik analizde yaygın olarak kabul görmüş varsayılan değerdir.

RSI'yi Yorumlamak

RSI değeri 0 ile 100 arasında değişir:

  • 70'in üzeri: piyasa genelde "aşırı alım" bölgesinde kabul edilir — fiyatın düzeltme yapma ihtimali artmış olabilir.
  • 30'un altı: piyasa genelde "aşırı satım" bölgesinde kabul edilir — fiyatın toparlanma ihtimali artmış olabilir.
son_rsi = veri["RSI"].iloc[-1]

if son_rsi > 70:
    print("Aşırı alım bölgesi")
elif son_rsi < 30:
    print("Aşırı satım bölgesi")
else:
    print("Nötr bölge")

Basit Hareketli Ortalama (SMA) Hesaplamak

from ta.trend import SMAIndicator

sma20 = SMAIndicator(close=veri["Close"], window=20)
veri["SMA20"] = sma20.sma_indicator()

Hareketli ortalama, son N günün fiyatının aritmetik ortalamasıdır — ani fiyat dalgalanmalarını yumuşatarak genel eğilimi (trend) daha net görmenizi sağlar.

Fiyat ile Hareketli Ortalamayı Karşılaştırmak

Yaygın bir basit strateji mantığı: fiyat hareketli ortalamanın üzerindeyse yükseliş eğilimi, altındaysa düşüş eğilimi olarak yorumlanır:

if veri["Close"].iloc[-1] > veri["SMA20"].iloc[-1]:
    print("Fiyat 20 günlük ortalamanın üzerinde")
else:
    print("Fiyat 20 günlük ortalamanın altında")

Grafikte Göstermek

import matplotlib.pyplot as plt

plt.plot(veri.index, veri["Close"], label="Kapanış Fiyatı")
plt.plot(veri.index, veri["SMA20"], label="20 Günlük Ortalama")
plt.legend()
plt.savefig("teknik_analiz.png")

Not: RSI ve SMA gibi indikatörler, geçmiş fiyat verisine dayalı istatistiksel araçlardır — tek başına bir alım/satım kararı için yeterli değildir ve yatırım tavsiyesi olarak kullanılmamalıdır.

Sırada Ne Var?

Sırada, CoinGecko API'sini kullanarak kripto para fiyat, hacim ve 24 saatlik değişim verilerini çekmeyi göreceğiz.