A

60
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# Örnek veri seti oluşturma (Bu kısmı kendi veri setinize göre düzenleyebilirsiniz)
dates = pd.date_range('2023-01-01', periods=100)
prices = np.random.rand(100) * 100
data = pd.DataFrame({'Date': dates, 'Close': prices})
data.set_index('Date', inplace=True)

# Hareketli ortalamaları hesaplama
short_window = 20
long_window = 50

data['SMA20'] = data['Close'].rolling(window=short_window, min_periods=1).mean()
data['SMA50'] = data['Close'].rolling(window=long_window, min_periods=1).mean()

# Al-sat sinyalleri oluşturma
data['Signal'] = 0.0
data['Signal'][short_window:] = np.where(data['SMA20'][short_window:] > data['SMA50'][short_window:], 1.0, 0.0)
data['Position'] = data['Signal'].diff()

# Al-sat noktalarını belirleme
buy_signals = data[data['Position'] == 1]
sell_signals = data[data['Position'] == -1]

# Veriyi görselleştirme
plt.figure(figsize=(14, 7))
plt.plot(data['Close'], label='Fiyat', alpha=0.5)
plt.plot(data['SMA20'], label='20 Günlük SMA', alpha=0.75)
plt.plot(data['SMA50'], label='50 Günlük SMA', alpha=0.75)
plt.scatter(buy_signals.index, buy_signals['Close'], label='Al', marker='^', color='g', alpha=1)
plt.scatter(sell_signals.index, sell_signals['Close'], label='Sat', marker='v', color='r', alpha=1)
plt.title('Basit Hareketli Ortalama Kesişim Stratejisi')
plt.xlabel('Tarih')
plt.ylabel('Fiyat')
plt.legend()
plt.show()

إخلاء المسؤولية

لا يُقصد بالمعلومات والمنشورات أن تكون، أو تشكل، أي نصيحة مالية أو استثمارية أو تجارية أو أنواع أخرى من النصائح أو التوصيات المقدمة أو المعتمدة من TradingView. اقرأ المزيد في شروط الاستخدام.