BaşlayınÜcretsiz başlayın

Hareketli ortalama ve RSI özellikleri oluştur

Daha iyi tahminler yapmak için Machine Learning modellerimize geçmiş verileri eklemek istiyoruz, ancak çok sayıda geçmiş zaman adımı eklemek zorlu olabilir. Bunun yerine, önceki noktalardaki bilgiyi göstergelerle tek bir zaman adımında yoğunlaştırabiliriz.

Hareketli ortalama en basit göstergelerden biridir — önceki veri noktalarının ortalamasıdır. Bu, TAlib kütüphanesindeki talib.SMA() fonksiyonudur.

Bir diğer yaygın teknik gösterge göreli güç endeksidir (RSI). Şöyle tanımlanır:

\(RSI = 100 - \frac{100} {1 + RS}\)

\(RS = \frac{\text{ n dönemindeki ortalama kazanç}} {\text{ n dönemindeki ortalama kayıp}}\)

Buradaki n dönemi, talib.RSI() içinde timeperiod argümanıyla ayarlanır.

RSI için yaygın bir dönem 14'tür; bu yüzden hesaplamalarımızda bir ayar olarak bunu kullanacağız.

Bu egzersiz, kursun bir parçasıdır

Python ile Finans için Machine Learning

Kursa Göz Atın

Egzersiz talimatları

  • Bir özellik adları listesi oluştur (yalnızca '5d_close_pct' içeren bir listeyle başla).
  • Düzeltilmiş kapanış fiyatlarından (lng_df['Adj_Close']) talib.SMA() ile 14, 30, 50 ve 200 dönemleri kullanarak hareketli ortalamaları hesapla.
  • Hareketli ortalamaları Adj_Close'a bölerek düzeltilmiş kapanışla normalize et.
  • Döngü içinde, Adj_Close'dan ve timeperiod olarak n kullanarak talib.RSI() ile RSI hesapla.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

feature_names = ____  # a list of the feature names for later

# Create moving averages and rsi for timeperiods of 14, 30, 50, and 200
for n in [____]:

    # Create the moving average indicator and divide by Adj_Close
    lng_df['ma' + str(n)] = talib.SMA(lng_df['Adj_Close'].values,
                              timeperiod=n) / lng_df[____]
    # Create the RSI indicator
    lng_df['rsi' + str(n)] = talib.____(lng_df['Adj_Close'].____, timeperiod=____)
    
    # Add rsi and moving average to the feature name list
    feature_names = feature_names + ['ma' + str(n), 'rsi' + str(n)]

print(feature_names)
Kodu Düzenle ve Çalıştır