تداول الفوركس بالذكاء الاصطناعي مع 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_ea ← compile_mql5 ← run_backtest ← get_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، ينفذ التدريب والتجميع والاختبار، ويعرض النتائج.
أفضل الممارسات
- استخدم TimeSeriesSplit — لا تستخدم التحقق المتقاطع العشوائي للبيانات الزمنية
- ارفع تكاليف المعاملات — السبريد والانزلاق والعمولة في الاختبار الراجع
- عتبات الثقة — تداول فقط عندما ثقة النموذج > 60%
- التحليل الأمامي — أعد التدريب دورياً على نوافذ متدحرجة
- نماذج المجموعة — اجمع GBM و Random Forest و LSTM للمتانة
- ابدأ بنماذج بسيطة — Gradient Boosting غالباً يتفوق على التعلم العميق على البيانات المالية الجدولية
- طبّع الخصائص — قم بتوحيد المدخلات قبل التدريب
- احفظ 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 هو مجموعة من المتداولين ذوي الخبرة والمحللين الماليين ومعلمي التداول المكرسين لتقديم تعليم فوركس دقيق وعملي. يجمع فريقنا بين عقود من الخبرة العملية في الأسواق والمعرفة التقنية العميقة لإنشاء أدلة شاملة ومراجعات صادقة للوسطاء واستراتيجيات تداول مجربة. يتم البحث في كل مقال بدقة والتحقق من صحته ومراجعته من قبل عدة أعضاء في الفريق لضمان أعلى جودة ودقة.