- Katılım
- 23 Eki 2020
- Mesajlar
- 1,823
Hurst Exponent
Hurst Exponent, fiyat zaman serilerinin kaotik olup olmadığını belirlemek için kullanılır. Hurst Exponent, zaman serisinin trend davranışını ölçer. 0.5'e yaklaşan değerler rastgele bir yürüyüşü, 0.5'ten küçük değerler trend takip eden bir yürüyüşü, 0.5'ten büyük değerler ise momentumu gösterir.
Hurst Üssü Nedir?
Hurst Exponent, bir zaman serisinin trend bağımlılığı veya rastgelelik derecesini ölçen bir metriktir. Finansal zaman serilerinde, piyasa hareketlerinin uzun vadeli bağımlılığını analiz etmekte kullanılır.
Hurst Exponent, fiyat zaman serilerinin kaotik olup olmadığını belirlemek için kullanılır. Hurst Exponent, zaman serisinin trend davranışını ölçer. 0.5'e yaklaşan değerler rastgele bir yürüyüşü, 0.5'ten küçük değerler trend takip eden bir yürüyüşü, 0.5'ten büyük değerler ise momentumu gösterir.
Hurst Üssü Nedir?
Hurst Exponent, bir zaman serisinin trend bağımlılığı veya rastgelelik derecesini ölçen bir metriktir. Finansal zaman serilerinde, piyasa hareketlerinin uzun vadeli bağımlılığını analiz etmekte kullanılır.
- Hurst Exponent (H):
- H<0.5H < 0.5H<0.5: Zaman serisi düşüş eğilimli (mean-reverting) olabilir. Yani, değerler ortalamaya geri dönme eğilimindedir.
- H=0.5H = 0.5H=0.5: Zaman serisi bir Brownian motion'a (rastgele yürüyüş) benzer, bağımsız hareket eder.
- H>0.5H > 0.5H>0.5: Zaman serisi trend takip eder. Yani, geçmişteki yönelimler gelecekte de devam edebilir.
Kod:
import os
import pandas as pd
from hurst import compute_Hc
def calculate_hurst_exponent(data, column_name='Close'):
"""
Verilen bir DataFrame'deki belirli bir sütunun Hurst Exponent'ini hesaplar.
"""
try:
# Eksik ve geçersiz değerleri temizle
data[column_name] = pd.to_numeric(data[column_name], errors='coerce') # Sayıya dönüştür
data = data.dropna(subset=[column_name]) # Eksik değerleri kaldır
data = data[(data[column_name] != float('inf')) & (data[column_name] != float('-inf'))] # Sonsuz değerleri kaldır
# Getirileri hesapla
returns = data[column_name].pct_change().dropna()
# Aşırı getirileri filtrele
returns = returns[(returns > -1) & (returns < 1)] # Örneğin, %100'dan fazla değişimi kaldır
# Hurst Exponent hesapla
H, c, _ = compute_Hc(returns, kind='change', simplified=True)
return H
except Exception as e:
print(f"Hata oluştu: {e}")
return None
# CSV dosyalarının bulunduğu dizini belirtin
csv_dizin = r'csvlerin olduğu dizin'
dosya_listesi = os.listdir(csv_dizin)
csv_dosyaları = [dosya for dosya in dosya_listesi if dosya.lower().endswith('.csv')]
# Boş bir liste oluşturun
hurst_results = []
# Her dosya için analiz yapın
for csv_dosya in csv_dosyaları:
try:
print(f"İşleniyor: {csv_dosya}") # İşlenen dosyayı yazdır
# Veriyi yükleyin
data = pd.read_csv(os.path.join(csv_dizin, csv_dosya))
# Hurst Exponent'i hesaplayın
hurst_exponent = calculate_hurst_exponent(data, 'Close') # 'Close' sütununu kullan
# Sonuçları listeye ekleyin
hurst_results.append({
'Hisse': csv_dosya.replace('.csv', ''),
'Hurst_Exponent': hurst_exponent
})
except Exception as e:
print(f"Hata oluştu ({csv_dosya}): {e}")
# Listeyi DataFrame'e dönüştürün
hurst_results_df = pd.DataFrame(hurst_results)
# Sonuçları Excel dosyasına yazdırın
output_path = 'hurst_results.xlsx'
hurst_results_df.to_excel(output_path, index=False)
print(f"Sonuçlar '{output_path}' dosyasına kaydedildi.")
Son düzenleme: