P
PipsGrowth

إعداد بيئة Python للتداول

أعدّ بيئة تطوير Python كاملة للتداول الخوارزمي في أقل من 30 دقيقة. من التثبيت إلى أول استراتيجية.

المستوى: مبتدئ
المدة: 35 دقيقة
الخطوة 1 من مسار التعلم

ماذا ستتعلم

تثبيت Python والأدوات
إنشاء بيئة افتراضية
تثبيت مكتبات التداول
إعداد Jupyter Notebook
تنظيم مشروع التداول
بناء أول استراتيجية

المتطلبات المسبقة

المتطلبات

  • Windows 10+, macOS 10.14+, أو Ubuntu 18.04+
  • ذاكرة RAM 4 جيجا كحد أدنى (8 جيجا مُوصى)
  • 5 جيجا مساحة تخزين حرة

أدوات مطلوبة

  • Python 3.10+
  • محرر أكواد (VS Code مُوصى)
  • سطر الأوامر / Terminal

معرفة مسبقة

  • أساسيات Python (متغيرات، دوال، حلقات)
  • فهم أساسي لأسواق المال
  • معرفة أساسية بسطر الأوامر

الدليل خطوة بخطوة

1

تثبيت Python

تحميل وتثبيت Python 3.10+ على نظامك

Python
# Check if Python is installed
python --version
# Expected output: Python 3.10.x or higher
# On Windows: Download from https://www.python.org/downloads/
# On macOS:
brew install python3
# On Ubuntu/Debian:
sudo apt update && sudo apt install python3 python3-pip python3-venv
# Verify installation
python3 --version
pip3 --version
2

إنشاء بيئة افتراضية

عزل مشروعك عن حزم النظام باستخدام venv

Python
# Create a new project directory
mkdir my-trading-bot
cd my-trading-bot
# Create virtual environment
python -m venv venv
# ACTIVATE the virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
# You'll see (venv) in your terminal prompt
# (venv) $ pip install ...
# Deactivate when done
deactivate
3

تثبيت المكتبات الأساسية

تثبيت جميع المكتبات المطلوبة للتداول الخوارزمي

Python
# Core data science stack
pip install pandas numpy matplotlib
# Market data
pip install yfinance
# Technical analysis
pip install ta-lib pandas-ta
# Backtesting
pip install backtrader vectorbt
# Broker integration
pip install MetaTrader5 # Windows only
# Machine learning (optional)
pip install scikit-learn tensorflow xgboost
# Save all dependencies
pip freeze > requirements.txt
# Later, recreate the environment:
pip install -r requirements.txt
4

إعداد Jupyter Notebook

بيئة تفاعلية لتطوير واختبار الاستراتيجيات

Python
# Install Jupyter
pip install jupyter jupyterlab
# Launch Jupyter Lab (recommended)
jupyter lab
# Or classic Jupyter Notebook
jupyter notebook
# Install useful extensions
pip install jupyter-contrib-nbextensions
jupyter contrib nbextension install --user
# Create your first notebook and test:
# In a new cell, type:
import pandas as pd
import numpy as np
import yfinance as yf
import matplotlib.pyplot as plt
# Download test data
df = yf.download("EURUSD=X", period="6mo")
df['Close'].plot(figsize=(12, 6), title="EUR/USD")
plt.show()
print("Setup complete! Ready to trade.")
5

هيكل المشروع المُوصى به

تنظيم مشروع التداول بشكل احترافي

Python
# Recommended project structure:
#
# my-trading-bot/
# ├── venv/ # Virtual environment (don't commit)
# ├── data/ # Cached market data
# │ ├── raw/ # Raw downloaded data
# │ └── processed/ # Cleaned data
# ├── strategies/ # Trading strategies
# │ ├── __init__.py
# │ ├── sma_crossover.py
# │ └── rsi_reversal.py
# ├── indicators/ # Custom indicators
# │ ├── __init__.py
# │ └── custom_rsi.py
# ├── backtests/ # Backtest scripts & results
# │ ├── run_backtest.py
# │ └── results/
# ├── live/ # Live trading scripts
# │ ├── mt5_trader.py
# │ └── risk_manager.py
# ├── notebooks/ # Jupyter notebooks for research
# │ ├── exploration.ipynb
# │ └── strategy_dev.ipynb
# ├── config.py # Configuration & API keys
# ├── requirements.txt # Dependencies
# ├── .env # Environment variables (don't commit)
# └── .gitignore # Git ignore rules
# Create this structure:
import os
dirs = [
"data/raw", "data/processed",
"strategies", "indicators",
"backtests/results", "live",
"notebooks"
]
for d in dirs:
os.makedirs(d, exist_ok=True)
init_file = os.path.join(d.split("/")[0], "__init__.py")
if not os.path.exists(init_file):
open(init_file, "w").close()
print("Project structure created!")
6

بناء أول استراتيجية

استراتيجية تقاطع المتوسط المتحرك البسيطة

Python
import yfinance as yf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 1. Download data
print("📥 Downloading data...")
df = yf.download("EURUSD=X", period="1y", interval="1d")
print(f"Downloaded {len(df)} bars")
# 2. Calculate indicators
df['SMA_20'] = df['Close'].rolling(20).mean()
df['SMA_50'] = df['Close'].rolling(50).mean()
# 3. Generate signals
df['Signal'] = 0
df.loc[df['SMA_20'] > df['SMA_50'], 'Signal'] = 1 # Buy
df.loc[df['SMA_20'] < df['SMA_50'], 'Signal'] = -1 # Sell
# 4. Calculate returns
df['Returns'] = df['Close'].pct_change()
df['Strategy'] = df['Signal'].shift(1) * df['Returns']
# 5. Performance metrics
total_return = (1 + df['Strategy'].dropna()).prod() - 1
sharpe = df['Strategy'].mean() / df['Strategy'].std() * np.sqrt(252)
win_rate = (df['Strategy'] > 0).sum() / (df['Strategy'] != 0).sum() * 100
print(f"\n📊 Results:")
print(f"Total Return: {total_return*100:.2f}%")
print(f"Sharpe Ratio: {sharpe:.2f}")
print(f"Win Rate: {win_rate:.1f}%")
print(f"Total Trades: {df['Signal'].diff().abs().sum() / 2:.0f}")
# 6. Plot
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(14, 8), sharex=True)
ax1.plot(df.index, df['Close'], label='EUR/USD', alpha=0.7)
ax1.plot(df.index, df['SMA_20'], label='SMA 20', linewidth=1)
ax1.plot(df.index, df['SMA_50'], label='SMA 50', linewidth=1)
ax1.set_title('EUR/USD with Moving Averages')
ax1.legend()
ax2.plot(df.index, (1 + df['Strategy']).cumprod(), label='Strategy', color='green')
ax2.plot(df.index, (1 + df['Returns']).cumprod(), label='Buy & Hold', color='gray', alpha=0.5)
ax2.set_title('Cumulative Returns')
ax2.legend()
plt.tight_layout()
plt.savefig('first_strategy.png', dpi=150)
plt.show()
print("\n✅ Setup verified! Your environment is ready.")

حل المشاكل الشائعة

!

pip غير موجود

استخدم python -m pip بدلاً من pip مباشرة

!

خطأ في تثبيت TA-Lib

على Windows: حمّل ملف .whl من الموقع الرسمي. على macOS: استخدم brew install ta-lib أولاً

!

MetaTrader5 لا يعمل على macOS/Linux

MetaTrader5 Python يعمل فقط على Windows. استخدم Wine أو VPS

!

Jupyter لا يعثر على المكتبات

تأكد من تثبيت Jupyter داخل البيئة الافتراضية نفسها

إعداد محرر الأكواد

Python Extension

الإكمال التلقائي وتصحيح الأخطاء

Jupyter Extension

تشغيل Notebooks داخل VS Code

Pylance

تحليل الأنواع والأداء المحسن

GitLens

تتبع التغييرات والتعاون

PipsGrowth - مراجعات خبراء الوسطاء، استراتيجيات التداول والأدوات