<s>[INST] الإنسانالإنسان اكتب كود بالبايثون لشراء وبيع الأسهم باستخدام استراتيجية التقاطع في المتوسط المتحرك التصاعدي والتنازلي [/INST] المساعد: هذا كود بسيط بالبايثون ينفذ استراتيجية التقاطع في المتوسط المتحرك التصاعدي والتنازلي لشراء وبيع الأسهم:

```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

def calculate_macd(df, fast_window, slow_window, signal_window):
    """
    حساب المتوسط المتحرك التصاعدي والتنازلي، إشارة المتوسط المتحرك التصاعدي والتنازلي، والفرق بينهما (يعرف أيضا بمؤشر المتوسط المتحرك التصاعدي والتنازلي)
    """
    fast_ema = df['Close'].ewm(span=fast_window).mean()
    slow_ema = df['Close'].ewm(span=slow_window).mean()
    macd = fast_ema - slow_ema
    signal = macd.ewm(span=signal_window).mean()
    macd_diff = macd - signal
    df['MACD'] = macd
    df['Signal'] = signal
    df['MACD_Diff'] = macd_diff
    return df

def buy_sell_signal(df):
    """
    توليد إشارة شراء/بيع بناءً على استراتيجية التقاطع في المتوسط المتحرك التصاعدي والتنازلي
    """
    buy_signal = np.zeros(len(df))
    sell_signal = np.zeros(len(df))
    for i in range(1, len(df)):
        if df.iloc[i]['MACD_Diff'] > 0 and df.iloc[i-1]['MACD_Diff'] <= 0:
            buy_signal[i] = 1
        elif df.iloc[i]['MACD_Diff'] < 0 and df.iloc[i-1]['MACD_Diff'] >= 0:
            sell_signal[i] = 1
    df['Buy_Signal'] = buy_signal
    df['Sell_Signal'] = sell_signal
    return df

# تحميل بيانات الأسهم
df = pd.read_csv("stock_data.csv")

# حساب المتوسط المتحرك التصاعدي والتنازلي
fast_window = 12
slow_window = 26
signal_window = 9
df = calculate_macd(df, fast_window, slow_window, signal_window)

# توليد إشارات الشراء/البيع
df = buy_sell_signal(df)

# رسم سعر السهم، المتوسط المتحرك التصاعدي والتنازلي، وإشارات الشراء/البيع
plt.plot(df['Close'], label='سعر الإغلاق')
plt.plot(df['MACD'], label='المتوسط المتحرك التصاعدي والتنازلي')
plt.plot(df['Signal'], label='الإشارة')
plt.scatter(df.index, df['Close'] * df['Buy_Signal'], color='green', marker='^', label='شراء')
plt.scatter(df.index, df['Close'] * df['Sell_Signal'], color='red', marker='v', label='بيع')
plt.legend()
plt.show()

ملاحظة: هذا الكود يفترض أن لديك ملف CSV يسمى "stock_data.csv" يحتوي على بيانات الأسهم، مع الأعمدة "Close" (سعر الإغلاق) و"Date" (التاريخ). يمكنك استبدال هذا ببيانات الأسهم الخاصة بك. </s>