Örneğin şöyle bir soru sorsak:
"Tesla Nasdaq için 5 dakikalık periyotta en iyi ortalama stratejisini bul:"
Aldığımız cevap***:
Kod:import pandas as pd import numpy as np # Tarih sütununu datetime formatına dönüştürmek için bir fonksiyon tanımlayalım date_parser = lambda x: pd.datetime.strptime(x, '%Y-%m-%d %H:%M:%S') # Telsa'nın 5 dakikalık periyotlu NASDAQ verilerini yükleyelim data = pd.read_csv('tesla_5min_stock_data.csv', parse_dates=['Date'], date_parser=date_parser) # Test edilecek hareketli ortalama periyotlarını tanımlayalım ma_periods = range(5, 60, 5) # 5 dakika ile 60 dakika arasında 5'er dakikalık artışlarla # Sonuçları saklamak için bir sözlük oluşturalım results = {} # Her bir hareketli ortalama periyodu için işlem stratejisini test edelim for ma_period in ma_periods: # Hareketli ortalama hesaplayalım data[f'MA_{ma_period}'] = data['Close'].rolling(window=ma_period).mean() # Alım sinyali (kısa periyotlu MA, uzun periyotlu MA'yı yukarıdan keserse) data[f'Signal_{ma_period}'] = np.where(data[f'MA_{ma_period}'].shift(1) > data[f'MA_200'].shift(1), 1, 0) # Günlük getirileri hesaplayalım data['Returns'] = np.log(data['Close'] / data['Close'].shift(1)) # Strateji getirilerini hesaplayalım data['Strategy_Returns'] = data[f'Signal_{ma_period}'].shift(1) * data['Returns'] # Kumulatif getirileri hesaplayalım data['Cumulative_Returns'] = data['Strategy_Returns'].cumsum() # Son kümülatif getiriyi saklayalım results[ma_period] = data['Cumulative_Returns'].iloc[-1] # En iyi hareketli ortalama periyodunu bulalım best_ma_period = max(results, key=results.get) best_cumulative_returns = results[best_ma_period] print(f"En iyi hareketli ortalama periyodu: {best_ma_period} dakika") print(f"En yüksek kümülatif getiri ile: {best_cumulative_returns}")
Bunu bir de önce makine öğrenmesi ve hatta mümkünse yapay zeka öğrenmesine bağlasak...?
Not***: Python kurulu bir makine ve orta-üst seviyede python bilgisi gerektirir.




Alıntı yaparak yanıtla

Yer İmleri