P
PipsGrowth
تداول بايثون

تداول الفوركس بالذكاء الاصطناعي مع MT5 و Python: نماذج ONNX وأتمتة ML

دليل شامل لبناء أنظمة تداول فوركس بالذكاء الاصطناعي مع MT5. تعلم تكامل نماذج ONNX وخطوط ML في Python وخادم MCP لـ Claude AI وتطوير إكسبرت آلي بالتعلم الآلي.

PG
فريق Pips Growth
2026-07-10
6 دقيقة

تداول الفوركس بالذكاء الاصطناعي مع MT5 و Python

تقاطع الذكاء الاصطناعي وتداول الفوركس لم يعد تجريبياً — أصبح جاهزاً للإنتاج. يدعم MetaTrader 5 نماذج ONNX أصلاً، وتكامل Python رسمي، ومساعدو الذكاء الاصطناعي مثل Claude يمكنهم كتابة وتجميع واختبار الإكسبرتات بشكل مستقل.

هذا الدليل يغطي ثلاث طرق لتداول الفوركس بالذكاء الاصطناعي مع MT5، من الأبسط إلى الأكثر تقدماً.

الطريقة 1: نماذج ONNX داخل إكسبرت MQL5

يسمح ONNX بتدريب نموذج في Python وتشغيله مباشرة داخل إكسبرت MT5 — بدون خادم خارجي.

الخطوة 1: تدريب النموذج في Python

import numpy as np
import pandas as pd
import MetaTrader5 as mt5
from sklearn.ensemble import GradientBoostingClassifier
from skl2onnx import to_onnx

# الاتصال بـ MT5 وجلب البيانات
mt5.initialize()
rates = mt5.copy_rates_from_pos("EURUSD", mt5.TIMEFRAME_H1, 0, 10000)
df = pd.DataFrame(rates)

# إنشاء الميزات
df['returns'] = df['close'].pct_change()
df['sma_10'] = df['close'].rolling(10).mean()
df['sma_50'] = df['close'].rolling(50).mean()
df['target'] = (df['close'].shift(-1) > df['close']).astype(int)
df = df.dropna()

# تدريب النموذج
features = ['returns', 'sma_10', 'sma_50']
X = df[features].values
y = df['target'].values

model = GradientBoostingClassifier(n_estimators=100, max_depth=4)
model.fit(X, y)

# تصدير إلى ONNX
onnx_model = to_onnx(model, X[:1].astype(np.float32), target_opset=15)
with open("price_predictor.onnx", "wb") as f:
    f.write(onnx_model.SerializeToString())

الخطوة 2: تحميل ONNX في إكسبرت MQL5

#property strict
#include <Trade\Trade.mqh>

long onnx_handle;
input double LotSize = 0.1;
input double ConfidenceThreshold = 0.6;

int OnInit()
{
   onnx_handle = OnnxCreate("Files\\price_predictor.onnx", ONNX_DEFAULT);
   if(onnx_handle == INVALID_HANDLE)
   {
      Print("فشل تحميل نموذج ONNX");
      return INIT_FAILED;
   }
   
   long input_shape[] = {1, 3};
   OnnxSetInputShape(onnx_handle, ONNX_DEFAULT, input_shape);
   
   long output_shape[] = {1, 2};
   OnnxSetOutputShape(onnx_handle, ONNX_DEFAULT, output_shape);
   
   return INIT_SUCCEEDED;
}

void OnTick()
{
   static datetime last_bar = 0;
   datetime current = iTime(_Symbol, _Period, 0);
   if(current == last_bar) return;
   last_bar = current;
   
   // إعداد الميزات
   float input_data[3];
   input_data[0] = (float)((iClose(_Symbol, _Period, 1) - iClose(_Symbol, _Period, 2)) / iClose(_Symbol, _Period, 2));
   input_data[1] = (float)iMA(_Symbol, _Period, 10, 0, MODE_SMA, PRICE_CLOSE, 1);
   input_data[2] = (float)iMA(_Symbol, _Period, 50, 0, MODE_SMA, PRICE_CLOSE, 1);
   
   // تشغيل الاستنتاج
   float output_data[2];
   if(!OnnxRun(onnx_handle, ONNX_DEFAULT, input_data, output_data))
      return;
   
   // تنفيذ الصفقات
   if(output_data[1] > ConfidenceThreshold)
      ExecuteBuy();
   else if(output_data[0] > ConfidenceThreshold)
      ExecuteSell();
}

الطريقة 2: جسر Python Flask API

للنماذج المعقدة التي لا تناسب ONNX، استخدم Flask API:

from flask import Flask, request, jsonify
import MetaTrader5 as mt5
import joblib

app = Flask(__name__)
model = joblib.load('models/gbm_model.pkl')
mt5.initialize()

@app.route('/predict', methods=['POST'])
def predict():
    data = request.json
    symbol = data.get('symbol', 'EURUSD')
    
    rates = mt5.copy_rates_from_pos(symbol, mt5.TIMEFRAME_H1, 0, 100)
    features = create_features(rates)
    
    pred = model.predict_proba(features[-1:].reshape(1, -1))[0]
    signal = 'BUY' if pred[1] > 0.6 else 'SELL' if pred[0] > 0.6 else 'HOLD'
    
    return jsonify({'signal': signal, 'confidence': float(max(pred))})

الطريقة 3: خادم MCP لتطوير الإكسبرت بالذكاء الاصطناعي

الأكثر تقدماً — دع الذكاء الاصطناعي يكتب ويجمع ويختبر الإكسبرتات بشكل مستقل.

التثبيت

git clone https://github.com/tusharrayamajhi/mt5-mcp-server.git
pip install mcp MetaTrader5 pandas lxml

التكوين

# config.py
META_EDITOR_PATH = r"C:\Program Files\MetaTrader 5\MetaEditor64.exe"
TERMINAL_PATH    = r"C:\Program Files\MetaTrader 5\terminal64.exe"
EXPERTS_DIR      = r"C:\Users\you\AppData\Roaming\MetaQuotes\Terminal\ID\MQL5\Experts"

أدوات الذكاء الاصطناعي (16 أداة)

الفئة الأدوات
مدير الإكسبرت write_ea, compile_mql5, read_file
الاختبار الراجع run_backtest, get_backtest_results
بيانات السوق get_price, get_price_data, run_python
المؤشرات calculate_indicators, scan_symbols
إدارة الصفقات get_open_positions, get_trade_history

أمثلة الاستخدام

اكتب واختبر إكسبرت من الصفر:

"اكتب إكسبرت تقاطع EMA(10/50) لـ EURUSD H1 بمخاطرة 1% لكل صفقة، وقف خسارة 1.5x ATR، وجني أرباح 3x ATR. جمّعه واشتغل اختباراً راجعاً من 2024.01.01 إلى 2025.01.01 برأس مال $10,000."

الذكاء الاصطناعي يستدعي: write_eacompile_mql5run_backtestget_backtest_results

خط أنابيب التداول بالذكاء الاصطناعي الكامل

┌──────────────────────────────────────────────────┐
│  خط أنابيب التداول بالذكاء الاصطناعي               │
│                                                   │
│  1. جمع البيانات   ←  MetaTrader5 Python API     │
│  2. هندسة الخصائص  ←  RSI, EMA, ATR, الحجم       │
│  3. تدريب النموذج  ←  scikit-learn / XGBoost     │
│  4. تصدير ONNX     ←  ONNX Runtime               │
│  5. كتابة الإكسبرت  ←  MQL5 + OnnxCreate()       │
│  6. التجميع         ←  MetaEditor CLI            │
│  7. الاختبار الراجع ←  terminal64.exe /config    │
│  8. التحليل         ←  Python XML parser         │
│  9. التحقق          ←  Walk-forward + Monte Carlo│
│ 10. النشر           ←  Demo → Live               │
└──────────────────────────────────────────────────┘

تكامل IDE: سير عمل تطوير التداول بالذكاء الاصطناعي

VS Code / Windsurf

أنشئ مهام بناء في .vscode/tasks.json:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "تدريب نموذج ONNX",
      "type": "shell",
      "command": "python",
      "args": ["${workspaceFolder}/train_model.py"],
      "group": "build"
    },
    {
      "label": "تجميع الإكسبرت",
      "type": "shell",
      "command": "C:\\Program Files\\MetaTrader 5\\MetaEditor64.exe",
      "args": ["/compile:${workspaceFolder}/AI_EA.mq5", "/log"],
      "group": "build",
      "dependsOn": "تدريب نموذج ONNX"
    },
    {
      "label": "اختبار الإكسبرت الذكي",
      "type": "shell",
      "command": "C:\\Program Files\\MetaTrader 5\\terminal64.exe",
      "args": ["/config:${workspaceFolder}/backtest_ai.ini"],
      "group": "build",
      "dependsOn": "تجميع الإكسبرت"
    }
  ]
}

اضغط Ctrl+Shift+B لتدريب النموذج ← تجميع الإكسبرت ← الاختبار الراجع.

Windsurf / Cursor: تطوير بالذكاء الاصطناعي

"أنشئ سكربت Python يدرب نموذج Gradient Boosting على بيانات EURUSD H1 باستخدام RSI وتقاطع EMA و ATR كخصائص. صدّره إلى ONNX. ثم اكتب إكسبرت MQL5 يحمل نموذج ONNX ويتداول بناءً على تنبؤاته بعتبة ثقة 0.65. جمّع الإكسبرت واشتغل اختباراً راجعاً من 2024.01.01 إلى 2025.01.01."

الذكاء الاصطناعي يكتب الكودين Python و MQL5، ينفذ التدريب والتجميع والاختبار، ويعرض النتائج.

أفضل الممارسات

  1. استخدم TimeSeriesSplit — لا تستخدم التحقق المتقاطع العشوائي للبيانات الزمنية
  2. ارفع تكاليف المعاملات — السبريد والانزلاق والعمولة في الاختبار الراجع
  3. عتبات الثقة — تداول فقط عندما ثقة النموذج > 60%
  4. التحليل الأمامي — أعد التدريب دورياً على نوافذ متدحرجة
  5. نماذج المجموعة — اجمع GBM و Random Forest و LSTM للمتانة
  6. ابدأ بنماذج بسيطة — Gradient Boosting غالباً يتفوق على التعلم العميق على البيانات المالية الجدولية
  7. طبّع الخصائص — قم بتوحيد المدخلات قبل التدريب
  8. احفظ metadata النموذج — سجل نطاق بيانات التدريب والخصائص والدقة بجانب ملف .onnx

الأسئلة الشائعة

هل أحتاج GPU لتدريب النموذج؟

لا. للنماذج في هذا الدليل (Gradient Boosting، Random Forest)، المعالج كافٍ. التدريب يستغرق ثوانٍ إلى دقائق. تحتاج GPU فقط لنماذج التعلم العميق على بيانات كبيرة.

هل يمكنني استخدام نماذج ONNX من TensorFlow/PyTorch؟

نعم. ONNX صيغة عامة. صدّر من TensorFlow باستخدام tf2onnx، من PyTorch باستخدام torch.onnx.export(). OnnxCreate في MT5 يحمل أي نموذج ONNX.

ما هي سرعة استنتاج ONNX في MQL5؟

عادة 1-5 مللي ثانية لكل تنبؤ. مقارنة بـ Flask API التي تضيف 10-50ms من الشبكة.

هل أستخدم ONNX أم Flask API؟

استخدم ONNX للإكسبرتات الإنتاجية — أسرع ومستقل. استخدم Flask API أثناء التطوير والتجريب لتبديل النماذج بسرعة.

كم مرة أعيد تدريب النموذج؟

كل 1-4 أسابيع. راقب الأداء الحي — إذا انخفض معدل الفوز بأكثر من 10% عن متوسط الاختبار الراجع، أعد التدريب فوراً.

أدلة ذات صلة

إفصاح التسويق بالعمولة: تحتوي هذه الصفحة على روابط تسويق بالعمولة. قد نحصل على عمولة عند النقر على روابط معينة أو التسجيل لدى الوسطاء المميزين على هذا الموقع، دون أي تكلفة إضافية عليك. مراجعاتنا وتوصياتنا مبنية على بحث شامل وتبقى محايدة.اعرف المزيد

تحذير بشأن المخاطر: تداول الفوركس وعقود الفروقات ينطوي على مخاطر كبيرة للخسارة. الأداء السابق لا يدل على النتائج المستقبلية. عقود الفروقات هي أدوات معقدة وتنطوي على مخاطر عالية لخسارة الأموال بسرعة بسبب الرافعة المالية. تأكد من فهمك للمخاطر قبل التداول. هذا المحتوى لأغراض تعليمية فقط ولا يشكل نصيحة مالية.

كتب بواسطة

فريق Pips Growth

فريق التعليم والأبحاث في التداول

فريق Pips Growth هو مجموعة من المتداولين ذوي الخبرة والمحللين الماليين ومعلمي التداول المكرسين لتقديم تعليم فوركس دقيق وعملي. يجمع فريقنا بين عقود من الخبرة العملية في الأسواق والمعرفة التقنية العميقة لإنشاء أدلة شاملة ومراجعات صادقة للوسطاء واستراتيجيات تداول مجربة. يتم البحث في كل مقال بدقة والتحقق من صحته ومراجعته من قبل عدة أعضاء في الفريق لضمان أعلى جودة ودقة.

15+ سنة خبرة81+ مقال منشور
تداول الفوركس والعقود مقابل الفروقاتالتحليل الفنيإدارة المخاطرمراجعات وتقييم الوسطاء
عرض الملف الشخصي الكامل
مشاركة

اشترك في النشرة

تداول الفوركس بالذكاء الاصطناعي مع MT5 و Python: نماذج ONNX وأتمتة ML | PipsGrowth