اختبار استراتيجية MACD — Backtesting وWalk-Forward

اختبار استراتيجية 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:

  1. تطور القاعدة في نافذة ماضية.
  2. تثبتها.
  3. تختبرها في النافذة التالية.
  4. تحرك النوافذ إلى الأمام.
  5. تكرر العملية.

سجل كل نافذة منفصلة. متوسط عام جيد قد يخفي انهيار النظام في عدة فترات.

Walk-Forward لا يلغي Overfitting إذا كنت تغير المنهج نفسه بعد قراءة كل نافذة دون تسجيل ذلك.

14. لا تبحث عن أفضل إعداد منفرد

بدل تجربة آلاف التركيبات واختيار الأعلى ربحًا، ابدأ بشبكة صغيرة لها معنى. مثال بحثي فقط:

النسخةFastSlowSignal
أسرع نسبيًا8215
مرجعية شائعة12269
أبطأ نسبيًا19399

هذه ليست توصيات. الهدف دراسة مناطق مختلفة من الحساسية، لا البحث عن «الإعداد السري».

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 أو دعمًا ومقاومة، لا تفترض أن التوافق «يزيد الدقة». اختبر:

النسخةالمكونات
AMACD وحده
Bالفلتر وحده
CMACD + الفلتر
DBaseline

حافظ قدر الإمكان على الخروج والتكاليف وحجم المخاطرة نفسه. إذا لم تتحسن 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 MALength + Type
Slow MALength + Type
Signal MALength + Type
SourceClose أو غيره
SignalCross / Zero / Divergence
Signal Availabilityوقت معرفة الإشارة
Executionأول سعر/قاعدة تنفيذ
Exit / Invalidationقواعد ثابتة
CostsSpread + Commission + Funding + Slippage
Dataset RoleDevelopment / 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.

المصادر

الخلاصة

اختبار MACD الجيد لا يبحث عن أعلى ربح تاريخي أو «أفضل إعداد». يبدأ بتعريف المؤشر نفسه بالكامل، بما فيه نوع Signal MA وSource والمنصة، ثم يفصل بين وقت الإشارة والتنفيذ، ويمنع Look-Ahead في البار الحالي والتباعد والإطار الأعلى.

بعد ذلك تُقسم البيانات، وتُختبر الحساسية وWalk-Forward، وتُدخل تكاليف التنفيذ، ويُستخدم Ablation للفلاتر، وتُقارن النتيجة بخط أساس. إذا بقي الأداء معقولًا خارج العينة وفي Forward Test فهذه إشارة أقوى على المتانة، لكنها لا تضمن المستقبل.

لشرح المؤشر نفسه راجع مؤشر MACD، ولضبط التنفيذ بين المنصات راجع MACD على MT4 وTradingView.

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

موضوعات ذات صلة