اختبار استراتيجية MACD: Backtesting وWalk-Forward وتجنب Overfitting
آخر تحديث ومراجعة: 25 أغسطس 2026.
الإجابة المختصرة: اختبار استراتيجية MACD بصورة صحيحة لا يبدأ بالبحث عن «أفضل إعداد»، بل بتثبيت تعريف المؤشر والإشارة والتنفيذ قبل رؤية النتائج. يجب أن تحدد Fast/Slow/Signal lengths، نوع المتوسط المستخدم في كل جزء، Source، الإطار الزمني، والمنصة أو الكود، ثم تفصل بين وقت معرفة الإشارة ووقت تنفيذ الصفقة. بعد ذلك تختبر على بيانات تطوير منفصلة عن التحقق والاختبار النهائي، وتدخل السبريد والعمولة والانزلاق والتمويل، وتفحص الحساسية وWalk-Forward بدل اختيار أعلى ربح تاريخي.
هذه الصفحة متخصصة في Backtesting ومنهجية التحقق. لفهم MACD نفسه والحساب والتقاطعات وخط الصفر والهيستوغرام والتباعد، راجع دليل مؤشر MACD. ولضبط المؤشر ومقارنة MT4 وTradingView راجع MACD على MT4 وTradingView.
تنبيه مخاطر: Backtesting وWalk-Forward وForward Testing أدوات تقييم وليست ضمانًا للربح. تداول الفوركس والعقود مقابل الفروقات والمنتجات ذات الرافعة قد يؤدي إلى خسارة رأس المال، وقد تختلف النتائج الحقيقية بسبب التنفيذ والسيولة والتكاليف.
1. ثبّت تعريف MACD قبل اختبار الاستراتيجية
عبارة «MACD 12/26/9» ليست مواصفة كاملة. يجب أن تتضمن بطاقة الاختبار:
- Fast Length.
- Fast MA Type: EMA أو SMA أو غيره.
- Slow Length.
- Slow MA Type.
- Signal Length.
- Signal MA Type.
- Source: Close أو غيره.
- Timeframe.
- منصة/كود التنفيذ.
- هل تستخدم MACD Main أو Signal أو MACD−Signal.
هذه النقطة مهمة لأن التطبيقات ليست متطابقة دائمًا. توثيق MetaTrader 4 للنسخة المدمجة يذكر EMA12 وEMA26 مع SMA9 لخط الإشارة، بينما TradingView يسمح باختيار EMA أو SMA لأنواع المتوسطات. إذا لم توثّق التنفيذ، قد تختبر استراتيجية ثم تنفذ نسخة حسابية مختلفة.
المراجع الرسمية: MetaTrader 4 — MACD وTradingView — MACD.
2. اختر فرضية واحدة قابلة للاختبار
ابدأ بسؤال واحد، مثل:
- هل Signal Crossover يغير توزيع العائد بعد N بارات؟
- هل Zero Cross أفضل من Signal Cross على نفس السوق والإطار بعد التكاليف؟
- هل Regular Divergence وفق Swing Rule ثابتة يضيف قيمة؟
- هل فلتر إطار أعلى يحسن النتائج خارج العينة؟
- هل نسخة حساب معينة أكثر استقرارًا من أخرى؟
لا تبدأ بعنوان غامض مثل «استراتيجية MACD المتقدمة» ثم تغيّر المؤشر والخروج والفلاتر والوقف في الوقت نفسه. كل تغيير إضافي يجعل من الصعب معرفة مصدر النتيجة.
3. افصل دراسة الإشارة عن استراتيجية التداول
| نوع الاختبار | السؤال | ما الذي تقيسه؟ |
|---|---|---|
| Signal Study | ماذا يحدث بعد Cross؟ | Return بعد N بارات، MFE، MAE |
| Barrier Study | أي حاجز يصل أولًا؟ | +1 ATR قبل -1 ATR مثلًا |
| Full Strategy | هل النظام قابل للتداول؟ | P&L، Drawdown، Expectancy، Costs |
| Filter Test | هل RSI/ADX/HTF يضيف قيمة؟ | Ablation مقابل النسخة الأساسية |
قد تكون للإشارة علاقة إحصائية صغيرة بالسعر التالي لكنها لا تتحول إلى استراتيجية مربحة بعد التكاليف. وقد يعمل نظام بسبب الخروج أو إدارة المركز أكثر من الإشارة نفسها.
4. حوّل Signal Crossover إلى قاعدة رياضية
مثال تعليمي:
- MACD(t-1) ≤ Signal(t-1).
- MACD(t) > Signal(t).
- الإشارة تصبح معروفة عند اكتمال البار t إذا كان النظام Close-based.
وفي الاتجاه المقابل:
- MACD(t-1) ≥ Signal(t-1).
- MACD(t) < Signal(t).
هذه شروط اكتشاف، وليست قواعد دخول مكتملة. ما زلت تحتاج إلى تحديد التنفيذ والخروج والإبطال والمخاطرة والتكاليف.
5. Signal Time ليس هو Execution Time
هذه من أهم نقاط الباكتيست. إذا كان التقاطع لا يصبح معروفًا إلا عند Close للبار t، فلا يجوز افتراض أنك حصلت على سعر Close التاريخي نفسه بعد أن أصبحت الإشارة معروفة، إلا إذا كان نموذج التنفيذ يبرر ذلك فعليًا.
وثّق وقتين:
- Signal Availability: أول لحظة أصبحت فيها القاعدة معروفة.
- Execution Time: أول لحظة سمح فيها النظام بالتنفيذ.
يمكن أن يكون التنفيذ:
- أول Tick بعد الإغلاق.
- Open البار التالي إذا كانت البيانات والمنهج يسمحان.
- Market Order مع Spread وSlippage.
- Stop/Limit Order مع احتمال عدم التنفيذ أو الانزلاق.
الأنظمة قصيرة الأجل قد تتأثر بشدة بهذا الفرق.
6. إذا كانت الإشارة Intrabar فلا تختبرها من OHLC فقط
يمكن أن يعبر MACD فوق Signal أثناء البار ثم يعود قبل الإغلاق. إذا كان نظامك يتداول التقاطع اللحظي، فأنت تحتاج بيانات داخل البار أو Ticks مناسبة تستطيع إعادة ترتيب الحركة بصورة واقعية.
أما استخدام High/Low/Close النهائية لاستنتاج مسار داخلي لم يحدث بالضرورة فهو مصدر تحيز.
7. Zero Cross فرضية مختلفة عن Signal Cross
Zero Cross يختبر علاقة Fast MA وSlow MA، بينما Signal Cross يختبر علاقة MACD بمتوسطه. لا تخلطهما تحت اسم «إشارة MACD» واحدة.
اختبر:
- Signal Cross فقط.
- Zero Cross فقط.
- Signal Cross + شرط MACD فوق/تحت الصفر.
ثم قارن عدد الإشارات والعائد والتكاليف والسحب.
8. Divergence يحتاج تعريف Swing موضوعي
التباعد اليدوي عرضة بشدة للاختيار البصري. لبناء اختبار قابل للتكرار، حدد:
- Swing High/Swing Low في السعر.
- Swing High/Swing Low في MACD أو Histogram.
- أي سلسلة تستخدم: MACD Main أم MACD−Signal.
- الحد الأدنى والأقصى للمسافة بين السوينغات.
- كيفية مطابقة Swing السعر مع Swing المؤشر.
- الحد الأدنى لفارق القمة/القاع إن وجد.
- متى تصبح الإشارة قديمة أو ملغاة.
9. Look-Ahead في Swing Divergence
إذا عرفت Swing High بأنه أعلى من 3 بارات قبله و3 بعده، فلن تعرف أن القمة Swing مؤكدة إلا بعد اكتمال 3 بارات لاحقة. وضع الإشارة على القمة والدخول عندها سيكون استخدامًا لمعلومة مستقبلية.
سجل:
- Pattern Location: مكان القمة/القاع تاريخيًا.
- Signal Availability: الوقت الذي اكتملت فيه البارات اللازمة لتأكيد Swing.
التنفيذ يجب أن يبدأ من الثانية، لا الأولى.
10. ثبّت مصدر البيانات والوقت
سجل في كل اختبار:
- الوسيط أو مزود البيانات.
- الرمز.
- المنطقة الزمنية.
- الفترة الزمنية.
- الإطار.
- Source.
- هل البيانات Bid فقط أم تمثل الجانبين.
- جودة التاريخ والفجوات.
في Spot FX قد تختلف بعض البارات بين الوسطاء. وعلى D1 قد يغير توقيت الخادم حدود اليوم ومن ثم EMA وMACD. راجع دليل شمعة D1.
11. Multi-Timeframe: تجنب قيمة الإطار الأعلى المستقبلية
إذا كنت تتداول H1 وتستخدم MACD D1 كفلتر، فلا تستخدم قيمة D1 النهائية قبل إغلاق اليوم. حدد أحد الخيارين:
- آخر بار أعلى مكتمل فقط.
- القيمة الحية للبار الأعلى الحالي، وفي هذه الحالة يجب أن يحاكي الاختبار تغيرها خلال اليوم.
استخدام القيمة النهائية لـD1 في منتصف اليوم هو Look-Ahead.
12. Development وValidation وFinal Out-of-Sample
| القسم | وظيفته |
|---|---|
| Development / In-Sample | تطوير عدد محدود من الفرضيات والقواعد. |
| Validation | اختيار محدود بين نسخ مرشحة. |
| Final Out-of-Sample | اختبار نهائي لم يستخدم في الضبط. |
إذا عدلت القاعدة بعد رؤية Final OOS، فقد أصبح جزءًا من عملية التطوير ولم يعد اختبارًا نهائيًا مستقلًا.
13. Walk-Forward
في Walk-Forward:
- تطور القاعدة في نافذة ماضية.
- تثبتها.
- تختبرها في النافذة التالية.
- تحرك النوافذ إلى الأمام.
- تكرر العملية.
سجل كل نافذة منفصلة. متوسط عام جيد قد يخفي انهيار النظام في عدة فترات.
Walk-Forward لا يلغي Overfitting إذا كنت تغير المنهج نفسه بعد قراءة كل نافذة دون تسجيل ذلك.
14. لا تبحث عن أفضل إعداد منفرد
بدل تجربة آلاف التركيبات واختيار الأعلى ربحًا، ابدأ بشبكة صغيرة لها معنى. مثال بحثي فقط:
| النسخة | Fast | Slow | Signal |
|---|---|---|---|
| أسرع نسبيًا | 8 | 21 | 5 |
| مرجعية شائعة | 12 | 26 | 9 |
| أبطأ نسبيًا | 19 | 39 | 9 |
هذه ليست توصيات. الهدف دراسة مناطق مختلفة من الحساسية، لا البحث عن «الإعداد السري».
15. اختبر نوع المتوسط أيضًا
لا تغير الأطوال فقط. إذا كانت منصة أو كود يستخدم Signal SMA وآخر يستخدم Signal EMA، فهما نسختان مختلفتان من MACD.
يمكن أن تقارن مثلًا:
- EMA Fast/Slow + SMA Signal.
- EMA Fast/Slow + EMA Signal.
مع تثبيت بقية القواعد. إذا كان الأداء يختلف كثيرًا، فهذا يؤكد أن تعريف المؤشر جزء من النظام وليس مجرد إعداد بصري.
16. اختبار الحساسية Parameter Sensitivity
إذا كان 12/26/9 ممتازًا لكن 11/25/9 و13/27/9 ينهاران، فهذه هشاشة محتملة. افحص:
- Fast ± عدة بارات.
- Slow ± عدة بارات.
- Signal ± عدة بارات.
- Signal MA Type.
- Source.
- الإطار.
- الخروج.
- تكاليف التنفيذ.
لا تحتاج النتائج أن تكون متطابقة، لكن اعتماد النظام على نقطة رقمية واحدة بصورة حادة يستحق الحذر.
17. Data Snooping وMultiple Testing
كلما جربت أزواجًا وأطرًا وإعدادات وفلاتر أكثر، زادت فرصة العثور على نتيجة جيدة بالصدفة. لا تسجل الفائز فقط.
احتفظ بسجل بحث يتضمن:
- كل فرضية.
- كل تعديل.
- كل إعداد.
- كل أصل وإطار تم اختباره.
- النتيجة.
- السبب الذي دفعك إلى الاختبار التالي.
استخدام AI أو Optimizer يسرع البحث لكنه لا يلغي Data Snooping؛ بالعكس قد يوسع مساحة البحث بسرعة أكبر.
18. Ablation Test للفلاتر
إذا أضفت RSI أو ADX أو دعمًا ومقاومة، لا تفترض أن التوافق «يزيد الدقة». اختبر:
| النسخة | المكونات |
|---|---|
| A | MACD وحده |
| B | الفلتر وحده |
| C | MACD + الفلتر |
| D | Baseline |
حافظ قدر الإمكان على الخروج والتكاليف وحجم المخاطرة نفسه. إذا لم تتحسن C خارج العينة، فقد يكون التعقيد بلا قيمة.
19. أدخل التكاليف الحقيقية
على الأقل:
- Spread متغير أو سيناريوهات Spread.
- Commission.
- Swap/Financing عند الاحتفاظ.
- Slippage.
- Gap risk.
- No Fill/Partial Fill إذا كانا ممكنين.
اختبر Base Cost وسيناريو تكلفة أعلى. إذا اختفت الميزة مع زيادة صغيرة في التكلفة، فقد تكون شديدة الهشاشة للتنفيذ.
20. Bid وAsk في الفوركس
إذا كانت بياناتك التاريخية Bid فقط بينما بعض أوامر الدخول أو الخروج تعتمد على Ask، فقد يكون اختبار Touch/Stop متفائلًا. كلما قصرت الأهداف زادت أهمية تمثيل السبريد بصورة واقعية.
21. مقاييس لا يجب إهمالها
| المقياس | لماذا مهم؟ |
|---|---|
| Trade Count | حجم العينة. |
| Win Rate | جزء من التوزيع فقط. |
| Avg Win / Avg Loss | أحجام النتائج. |
| Expectancy | متوسط النتيجة لكل صفقة. |
| Profit Factor | إجمالي الربح مقابل الخسارة. |
| Max Drawdown | أسوأ تراجع تاريخي. |
| Worst Losing Streak | ضغط تسلسل الخسائر. |
| MFE / MAE | سلوك الصفقة أثناء حياتها. |
| Exposure | مدة التعرض للسوق. |
| Turnover | حساسية النظام للتكاليف. |
22. Expectancy أهم من نسبة النجاح وحدها
Expectancy = (Win Rate × Avg Win) – (Loss Rate × Avg Loss)
يمكن أن يكون نظام بنسبة فوز منخفضة موجب التوقع، ونظام بنسبة فوز مرتفعة سالب التوقع. لذلك لا تستخدم «دقة 90%» كدليل على جودة استراتيجية MACD دون تفاصيل الخروج والخسارة والتكاليف والعينة.
23. اختبر ظروف السوق
إذا أردت معرفة أين يعمل النظام، افصل النتائج حسب Regimes معرفّة مسبقًا، مثل:
- اتجاه وفق قاعدة موضوعية.
- Range وفق قاعدة موضوعية.
- تقلب مرتفع أو منخفض وفق ATR/مقياس ثابت.
- فترات خبرية محددة مسبقًا.
لا تصنف الفترات بعد معرفة النتائج إلى «سوق مناسب» و«غير مناسب» من دون قاعدة.
24. Monte Carlo: ماذا يفيد وماذا لا يفيد؟
يمكن استخدام Monte Carlo أو إعادة ترتيب/أخذ عينات من الصفقات لفهم حساسية:
- Drawdown.
- سلاسل الخسائر.
- ترتيب النتائج.
لكنه لا يحول الماضي إلى مستقبل ولا يصلح Overfitting أو بيانات سيئة أو نموذج تنفيذ غير واقعي.
25. Forward Test
بعد تجميد القاعدة:
- شغّلها على Demo/Paper أو مراقبة حية.
- قارن الإشارات التاريخية والفعلية.
- قارن Spread وSlippage.
- قارن التوقيت.
- راقب اختلاف Feed.
- لا تغير القاعدة كل بضعة أيام.
إذا أجريت تعديلًا، أنشئ إصدارًا جديدًا بدل الاستمرار تحت الاسم نفسه.
26. Versioning
مثال:
- MACD_V1 = 12/26/9، Signal SMA، Signal Cross.
- MACD_V1.1 = نفس المؤشر مع خروج مختلف.
- MACD_V2 = Signal EMA بدل SMA.
- MACD_V3 = Zero Cross بدل Signal Cross.
سجل تاريخ التغيير والسبب والبيانات التي رأيتها قبله.
27. قالب اختبار MACD
| الحقل | القيمة المطلوبة |
|---|---|
| Asset / Symbol | محدد مسبقًا |
| Data Source / Timezone | محدد مسبقًا |
| Timeframe | محدد |
| Fast MA | Length + Type |
| Slow MA | Length + Type |
| Signal MA | Length + Type |
| Source | Close أو غيره |
| Signal | Cross / Zero / Divergence |
| Signal Availability | وقت معرفة الإشارة |
| Execution | أول سعر/قاعدة تنفيذ |
| Exit / Invalidation | قواعد ثابتة |
| Costs | Spread + Commission + Funding + Slippage |
| Dataset Role | Development / Validation / OOS |
| Version | معرف ثابت |
أسئلة شائعة
ما أفضل إعداد MACD للسكالبينغ؟
لا يوجد إعداد عالمي مثبت. الإعدادات الأسرع تزيد حساسية المؤشر وقد تزيد Whipsaw والتكلفة النسبية. اختبرها على بيانات وتكاليف السكالبينغ الفعلية.
هل 12/26/9 كافٍ لتعريف الاختبار؟
لا. يجب أيضًا تحديد أنواع Fast/Slow/Signal MA وSource والمنصة/الكود والإطار.
هل Divergence أفضل من Crossover؟
لا توجد إجابة عامة. عرّف كل منهما بدقة واختبرهما بالطريقة نفسها وخارج العينة.
هل إضافة RSI ترفع Win Rate؟
قد ترفع مقياسًا وتضعف آخر أو تقلل العينة. استخدم Ablation Test بدل الافتراض.
هل يمكن للذكاء الاصطناعي اختيار أفضل إعداد؟
يمكنه تسريع البحث، لكنه لا يلغي Overfitting وMultiple Testing. تحتاج إلى OOS واختبار حساسية وتوثيق كل المحاولات.
هل التنفيذ عند Close صحيح؟
فقط إذا كان نموذج التنفيذ يعكس وقت معرفة الإشارة والسعر المتاح فعليًا. في قاعدة لا تُعرف إلا عند الإغلاق، يجب التمييز بين Close التاريخي ووقت التنفيذ التالي.
هل Walk-Forward يضمن أن النظام متين؟
لا. هو أداة تحقق مفيدة، لكنه يمكن أن يتعرض هو نفسه لـOverfitting إذا تم ضبط نوافذه وقواعده بعد رؤية النتائج.
هل Backtest المربح يعني أن استراتيجية MACD مربحة مستقبلًا؟
لا. الباكتيست يصف أداء القاعدة على بيانات وافتراضات تاريخية. الأداء المستقبلي قد يختلف بسبب تغير السوق والتنفيذ والتكاليف أو لأن النتيجة كانت Overfit.
المصادر
- MetaTrader 4 — MACD.
- TradingView — MACD.
- Fidelity — MACD Technical Indicator Guide.
- الدليل المرجعي لمؤشر MACD.
- MACD على MT4 وTradingView.
الخلاصة
اختبار MACD الجيد لا يبحث عن أعلى ربح تاريخي أو «أفضل إعداد». يبدأ بتعريف المؤشر نفسه بالكامل، بما فيه نوع Signal MA وSource والمنصة، ثم يفصل بين وقت الإشارة والتنفيذ، ويمنع Look-Ahead في البار الحالي والتباعد والإطار الأعلى.
بعد ذلك تُقسم البيانات، وتُختبر الحساسية وWalk-Forward، وتُدخل تكاليف التنفيذ، ويُستخدم Ablation للفلاتر، وتُقارن النتيجة بخط أساس. إذا بقي الأداء معقولًا خارج العينة وفي Forward Test فهذه إشارة أقوى على المتانة، لكنها لا تضمن المستقبل.
لشرح المؤشر نفسه راجع مؤشر MACD، ولضبط التنفيذ بين المنصات راجع MACD على MT4 وTradingView.
تحذير مخاطر: التداول بالرافعة قد يؤدي إلى خسارة رأس المال. الاختبارات التاريخية والمؤشرات الفنية لا تضمن الأداء المستقبلي، وStop Loss لا يضمن سعر التنفيذ. هذا المحتوى تعليمي وليس توصية استثمارية.







