اختبار مناطق العرض والطلب: Backtesting دون Hindsight أو Look-Ahead Bias
آخر تحديث ومراجعة: 25 أغسطس 2026.
الإجابة المختصرة: الاختبار الجيد لمناطق العرض والطلب لا يبدأ بالنظر إلى الرسم التاريخي كاملًا ثم اختيار المناطق التي انعكس منها السعر. يبدأ بتعريف مكتوب للمنطقة وحدودها وتوقيت اكتمالها والزيارة والإبطال، ثم يعرض البيانات كما كانت متاحة وقت القرار، ويسجل جميع الحالات لا الأمثلة الناجحة فقط. بعد ذلك تُختبر فرضيات مثل Freshness وقوة الخروج وعدد الزيارات والتأكيد بصورة منفصلة، وتُقاس النتائج قبل وبعد السبريد والعمولة والانزلاق والتمويل، مع Validation وOut-of-Sample لم تُستخدم في ضبط القواعد.
هذه الصفحة مخصصة لـمنهج الاختبار. إذا لم تكن قد ثبّتَّ بعد تعريف Base وحدود Proximal/Distal وحركة الخروج والزيارة والإبطال، ابدأ من دليل رسم مناطق العرض والطلب وتحديد إبطالها.
تنبيه مخاطر: Backtesting وForward Testing أدوات تقييم وليسا ضمانًا للأداء المستقبلي. التداول بالهامش والرافعة قد يؤدي إلى خسارة جزء كبير من رأس المال أو كله، كما أن Stop Loss لا يضمن سعر التنفيذ. هذا المحتوى تعليمي وليس توصية تداول.
1. ثبّت تعريف المنطقة قبل فتح نتائج الاختبار
إذا تغيّر تعريف المنطقة من حالة إلى أخرى فلن تعرف ما الذي تختبره. قبل تشغيل Replay أو كود الاختبار دوّن على الأقل:
- الرمز أو مجموعة الرموز.
- الإطار الزمني.
- تعريف Base وعدد باراته الأقصى/الأدنى.
- طريقة حساب الحد القريب Proximal والحد البعيد Distal.
- هل تستخدم الأجسام أم High/Low الكامل أم تعريفًا آخر.
- تعريف حركة الخروج Departure.
- متى تصبح المنطقة مؤهلة ومعروفة فعليًا.
- تعريف Touch أو Penetration.
- رقم الزيارة وكيف يُحسب.
- شرط الإبطال Expiry/Invalidation.
- أي شرط تأكيد لاحق وتعريفه الرياضي.
لا تغيّر هذه العناصر بعد رؤية كل صفقة. التعديل يكون في مرحلة Development، ويُسجل كتجربة جديدة.
2. فرّق بين Zone Detection وTrade Entry
وجود منطقة مؤهلة لا يعني وجود صفقة. افصل بين مرحلتين:
- Zone Detection: متى اكتملت شروط تكوّن المنطقة وأصبحت معروفة؟
- Entry Trigger: ما الحدث الذي يسمح بالدخول بعد زيارة المنطقة؟
هذا الفصل مهم لأن تعريف المنطقة قد يعتمد على حركة خروج تستغرق عدة بارات. إذا احتجت ثلاثة بارات لتأكيد Departure، فلا يجوز اعتبار المنطقة معروفة منذ أول بار في Base.
3. ما هو Hindsight Bias؟
التحيز الرجعي يحدث عندما ترى ما فعله السعر لاحقًا ثم تعتقد أن المنطقة كانت «واضحة» منذ البداية. في الرسم الكامل يصبح من السهل تجاهل القواعد التي فشلت واختيار قاعدة نجحت.
لتقليل هذا التحيز:
- استخدم Replay يخفي المستقبل.
- سجل المنطقة لحظة اكتمال شروطها، لا بعد الزيارة.
- لا تعدل حدودها بعد معرفة النتيجة.
- احتفظ بكل المناطق المؤهلة، الناجحة والفاشلة.
- إن كان التقييم يدويًا، استخدم Checklist ثابتًا لكل حالة.
4. ما هو Look-Ahead Bias؟
Look-Ahead Bias يعني استخدام معلومة لم تكن متاحة وقت القرار. مثال شائع: تسمية منطقة بأنها «قوية» لأنك تعرف أنها سببت لاحقًا حركة كبيرة، أو استخدام قيمة نهائية لشمعة D1/H4 قبل اكتمالها.
القاعدة الأساسية:
At time T, use only information available at or before T.
أي شرط يعتمد على Close النهائي لا يصبح معروفًا إلا بعد إغلاق البار. وأي منطقة تعتمد على Departure لاحق لا تصبح معروفة قبل اكتمال شرط Departure.
5. Signal Study قبل Strategy Backtest
قبل إضافة وقف وهدف وحجم صفقة، اختبر الإشارة أو المنطقة نفسها. هذا يمنع أن تخفي إدارة الصفقة الضعف الأصلي في الفرضية.
لكل زيارة منطقة، سجل مثلًا:
- العائد بعد 1 و5 و10 و20 بارًا.
- MFE — Maximum Favorable Excursion: أقصى حركة مواتية بعد الزيارة.
- MAE — Maximum Adverse Excursion: أقصى حركة معاكسة.
- الوقت حتى MFE وMAE.
- هل حدث الإبطال أولًا أم الحركة المواتية أولًا.
- هل عادت الأسعار إلى المنطقة مرة أخرى خلال نافذة محددة.
ثم قارن النتائج بخط أساس مناسب. إذا لم يظهر فرق قابل للتكرار في Signal Study، فلا تفترض أن إضافة إدارة صفقة معقدة ستخلق ميزة حقيقية.
6. حوّل كل ادعاء إلى فرضية منفصلة
بدل عبارات مثل «Fresh Zone أقوى» أو «الخروج القوي يعني منطقة أفضل»، اكتب أسئلة قابلة للاختبار:
- هل تختلف الزيارة الأولى عن الثانية والثالثة بعد تثبيت القواعد الأخرى؟
- هل يرتبط Departure الأكبر بوحدات ATR بنتيجة مختلفة؟
- هل عرض المنطقة النسبي إلى ATR يؤثر في الأداء؟
- هل شرط التأكيد يضيف قيمة بعد خصم أثر تقليل عدد الحالات؟
- هل Expiry بعد عدد معين من البارات يحسن الاستقرار؟
اختبر متغيرًا واحدًا قدر الإمكان بدل تغيير خمسة شروط دفعة واحدة.
7. كيف تختبر Fresh Zones وعدد الزيارات؟
أنشئ متغيرًا واضحًا لرقم الزيارة:
- Visit 1.
- Visit 2.
- Visit 3+.
حدد أيضًا ما الذي يعد زيارة جديدة: هل يجب أن يخرج السعر من المنطقة بمسافة معينة قبل العودة؟ هل Touch ثانية داخل البار نفسه زيارة جديدة أم لا؟ يجب كتابة ذلك مسبقًا.
إذا تفوقت Visit 1 في Development فقط ولم يتكرر الفرق في Validation أو Out-of-Sample، فلا تحول «Fresh is stronger» إلى قانون.
8. كيف تختبر قوة الخروج Departure Strength؟
حوّل «الخروج القوي» إلى رقم. أمثلة لمقاييس ممكنة:
DepartureATR = DistanceFromZone / ATR_at_detection
أو:
- العائد خلال N بارات بعد Base.
- عدد البارات للوصول إلى مسافة معينة.
- المسافة نسبة إلى متوسط Range سابق.
- مقدار الإغلاق خارج القاعدة بالنسبة إلى ATR.
لا توجد قيمة عالمية مثل 2 ATR أو3 ATR. اختبر نطاقًا من القيم وافحص Parameter Sensitivity. إذا كانت النتيجة ممتازة عند 2.15 ATR فقط وتنهار عند 2.0 و2.3، فهذه هشاشة محتملة.
9. اختبر Confirmation بواسطة Ablation
إذا أضفت شمعة أو RSI أو كسر Swing أو فلتر اتجاه، لا تسمه «تأكيدًا» قبل قياس أثره. استخدم Ablation:
- المنطقة وحدها.
- الفلتر وحده إن أمكن.
- المنطقة + الفلتر.
- Baseline.
قارن Expectancy وDrawdown وTrade Count وMFE/MAE، وليس Win Rate وحده. قد يرفع الفلتر نسبة الفوز لأنه يقلل عدد الحالات لكنه يخفض التوقع أو يزيد تركّز النتائج.
10. Intrabar: OHLC قد لا تكون كافية
إذا كانت القاعدة تعتمد على ترتيب أحداث داخل الشمعة — مثل لمس المنطقة ثم ضرب الوقف ثم الهدف — فإن OHLC وحدها لا تكشف دائمًا أيهما حدث أولًا. في هذه الحالة استخدم بيانات أصغر زمنيًا أو Tick Data ومحاكاة مناسبة.
لا تفترض أن High وLow حدثا بالترتيب الذي يخدم الصفقة، ولا تستخدم نهاية البار لحساب شرط ثم تتعامل معه كأنه كان معروفًا في بدايته.
11. الأطر الزمنية الأعلى وD1/H4
في Spot FX يمكن أن تختلف شموع D1 وH4 بين الوسطاء بسبب توقيت الخادم ومصدر الأسعار. هذا قد يغيّر Base وDeparture والمنطقة نفسها. لذلك سجل:
- مزود البيانات أو الوسيط.
- توقيت الخادم.
- طريقة بناء D1/H4.
- عدد الشموع اليومية في الأسبوع إن كان مؤثرًا.
إذا كنت تتداول إطارًا أدنى باستخدام منطقة من إطار أعلى، فلا تستخدم القيمة النهائية للبار الأعلى قبل اكتماله. راجع دليل شمعة D1.
12. Development وValidation وOut-of-Sample
قسّم عملية البحث إلى مراحل مستقلة:
- Development: بناء تعريف المنطقة واختيار المتغيرات الأولية.
- Validation: فحص الحساسية ومقارنة البدائل قبل تجميد القاعدة.
- Out-of-Sample: اختبار نهائي على بيانات لم تُستخدم في اختيار القواعد.
إذا عدلت القاعدة بعد رؤية Out-of-Sample، فقد أصبحت هذه العينة جزءًا من التطوير ولم تعد اختبارًا نهائيًا مستقلًا. يمكن بعدها تخصيص فترة جديدة أو استخدام Walk-Forward.
13. Data Snooping وOverfitting
كلما اختبرت أطرًا وأزواجًا وأطوال ATR وفلاتر وأهدافًا أكثر، زاد احتمال العثور على تركيبة ممتازة بالصدفة. لذلك:
- سجل كل تجربة، لا الإعداد الفائز فقط.
- قلل عدد المعلمات الحرة قدر الإمكان.
- افحص الأداء حول القيم المجاورة.
- لا تضف شرطًا فقط لأنه يحذف خسائر تاريخية.
- لا تختار الرموز أو السنوات بعد رؤية النتائج ثم تصفها بأنها «الأسواق المناسبة».
14. Baseline: ما الذي تتفوق عليه المناطق؟
نتيجة موجبة لا تكفي إذا كان السوق نفسه تحرك بقوة في الاتجاه ذاته. أنشئ مقارنة مرجعية مناسبة، مثل:
- دخول غير مشروط في الاتجاه نفسه.
- عينات عشوائية بنفس أوقات الاحتفاظ تقريبًا.
- مستويات/نطاقات سعرية بديلة وفق قاعدة أبسط.
- الاستراتيجية نفسها من دون Freshness أو Confirmation.
الهدف هو معرفة ما إذا كانت خاصية المنطقة تضيف معلومة فوق ما كان سيحدث أصلًا.
15. لا تختبر Win Rate وحده
نسبة الفوز لا تصف حجم الأرباح والخسائر. سجل على الأقل:
| المقياس | الغرض |
|---|---|
| Sample Size / Trade Count | حجم العينة الفعلي |
| Win Rate | نسبة الحالات الرابحة وفق التعريف |
| Average Win / Average Loss | حجم الربح والخسارة المتوسط |
| Expectancy | المتوسط المتوقع لكل حالة في العينة |
| Profit Factor | إجمالي الأرباح مقابل الخسائر |
| Maximum Drawdown | أكبر تراجع تاريخي |
| Consecutive Losses | أسوأ سلسلة خسائر مسجلة |
| MFE / MAE | توزيع الحركة المواتية والمعاكسة |
| Holding Period | مدة التعرض |
| After-Cost Result | النتيجة بعد تكاليف التنفيذ |
لا تستخدم أرقامًا مثل «80% نجاح» من دون ذكر تعريف النجاح وحجم العينة والفترة والأسواق والتكاليف.
16. أدخل تكاليف التداول والتنفيذ الواقعي
أدخل ما ينطبق على الأداة والحساب:
- Spread.
- Commission.
- Slippage.
- Swap / Financing.
- Gap Risk.
- احتمال عدم تنفيذ Limit Order بالسعر المرئي.
- اختلاف السيولة حول الأخبار والجلسات.
اختبر سيناريوهات تكلفة طبيعية ومرتفعة وضغط. إذا اختفت الميزة مع زيادة بسيطة في السبريد أو الانزلاق، فهذا مؤشر على هشاشتها.
17. الأخبار والجلسات كمتغيرات، لا أعذار بعد الخسارة
إذا كنت تعتقد أن الأداء يختلف قرب أخبار عالية التأثير أو في جلسة معينة، حدد النافذة مسبقًا ثم قارن النسخة بالفلتر وبدونه. لا تحذف الحالات الخاسرة بعد وقوعها وتصفها بأنها «بسبب الأخبار» ما لم تكن قاعدة الاستبعاد مكتوبة قبل الاختبار.
18. نموذج سجل Backtest
| الحقل | ما تسجله |
|---|---|
| Zone ID | معرف فريد لكل منطقة |
| Detection Time | أول وقت أصبحت فيه المنطقة مؤهلة |
| Symbol / Timeframe | الرمز والإطار |
| Zone Type | Supply / Demand |
| Proximal / Distal | حدود المنطقة وفق التعريف |
| Zone Width | بالسعر أو النقاط أو نسبة إلى ATR |
| Departure Strength | وفق المقياس المحدد مسبقًا |
| Visit Number | 1 / 2 / 3+ |
| Entry Trigger | Touch أو Close أو Confirmation |
| Invalidation | الشرط ووقت تحققه |
| MFE / MAE | الحركة بعد الزيارة |
| Costs | Spread + Commission + Slippage + Financing |
| Result | R أو مبلغ/نسبة وفق نظام موحد |
| Dataset | Development / Validation / OOS |
19. الاختبار اليدوي أم البرمجي؟
Replay اليدوي مفيد عندما يكون التعريف لا يزال بصريًا، لكنه أبطأ وأكثر عرضة لاختلاف الحكم. الاختبار البرمجي أكثر اتساقًا عندما يمكن تحويل القواعد إلى شروط موضوعية، لكنه لا يصلح تعريفًا سيئًا ولا بيانات رديئة.
مسار جيد: راجع عددًا من الحالات يدويًا لتثبيت التعريف، ثم برمج القاعدة إن أمكن، وبعد ذلك راجع عينة من إشارات البرنامج بصريًا للتأكد من أن الكود يطبق المنطق المقصود.
20. Robustness عبر الأسواق والفترات
لا تعتمد على شهر واحد أو اتجاه واحد. افحص:
- اتجاهات ونطاقات جانبية.
- تقلب مرتفع ومنخفض.
- سنوات وفترات مختلفة.
- أزواج أو أصول مختلفة إذا كانت الفرضية عامة.
- مزودي بيانات مختلفين إن كانت D1/H4 جزءًا أساسيًا من المنهج.
لا يشترط أن تعمل القاعدة في كل بيئة؛ المهم أن تعرف أين يظهر السلوك وأين يختفي، وأن يكون هذا الاستنتاج مستقرًا خارج عينة التطوير.
21. ما حجم العينة الكافي؟
لا يوجد رقم سحري. حجم العينة المطلوب يعتمد على تباين النتائج وحجم الأثر وعدد المعلمات والبيئات التي تغطيها البيانات. عشر حالات لا تبني ثقة عادة، لكن مئات الحالات المختارة بتحيز أو من نظام سوق واحد لا تضمن التعميم أيضًا.
لا تسأل فقط «كم صفقة؟»؛ اسأل أيضًا: هل القواعد ثابتة؟ هل العينة متنوعة؟ هل الاختبار مستقل؟ وهل عدد المحاولات أثناء التطوير موثق؟
22. Forward Test بعد تجميد القاعدة
بعد نتيجة مقبولة في Out-of-Sample، نفذ Forward Test على حساب تجريبي أو محاكاة زمن حقيقي. الهدف قياس ما لا يظهر جيدًا تاريخيًا:
- التزام القاعدة.
- وقت اكتشاف المنطقة فعليًا.
- السبريد والانزلاق الحقيقيان.
- احتمال عدم تنفيذ الأوامر.
- مشاكل المنصة والاتصال.
لا تنتقل من Backtest جيد مباشرة إلى مخاطرة كبيرة برأس المال.
23. كيف تفسر نتيجة سلبية؟
النتيجة السلبية معلومة وليست «فشلًا للاختبار». قد تعني أن Freshness لا تضيف قيمة، أو أن Departure لا يرتبط بالنتيجة، أو أن التكاليف تمحو الميزة، أو أن تعريف المنطقة غير مستقر.
لا تستمر في إضافة فلاتر حتى تصبح النتيجة موجبة؛ هذا أحد أقصر الطرق إلى Overfitting.
قائمة فحص قبل اعتماد أي نتيجة
- هل تعريف Base والحدود وDeparture وTouch والإبطال مكتوب مسبقًا؟
- هل وقت معرفة المنطقة صحيح بلا Look-Ahead؟
- هل سجلت كل المناطق المؤهلة؟
- هل فرّقت بين Signal Study وStrategy Backtest؟
- هل MFE وMAE محسوبان دون افتراض ترتيب داخلي غير معروف؟
- هل استخدمت بيانات أدق عند الحاجة إلى Intrabar sequencing؟
- هل Validation وOut-of-Sample مستقلتان؟
- هل سجلت جميع مجموعات المعلمات التي جُربت؟
- هل اختبرت Freshness وDeparture وConfirmation كلًا على حدة؟
- هل قارنت Baseline؟
- هل النتائج بعد التكاليف؟
- هل فحصت حساسية المعلمات؟
- هل النتيجة مستقرة عبر فترات أو مصادر بيانات مناسبة؟
مصادر ومقالات مكملة
- مناطق العرض والطلب: الرسم والإبطال.
- دليل إدارة المخاطر.
- Investor.gov — Technical Analysis.
- BIS — 2025 Triennial Central Bank Survey.
الخلاصة
اختبار مناطق العرض والطلب باحتراف ليس محاولة إثبات أن المناطق «تعمل»، بل تصميم تجربة يصعب التلاعب بنتيجتها. ثبّت التعريف، وحدد متى تصبح المنطقة معروفة، وأخفِ المستقبل، وافصل Signal Study عن إدارة الصفقة، وقس MFE وMAE، واختبر Freshness وDeparture وConfirmation بصورة منفصلة، ثم استخدم Validation وOut-of-Sample مع تكاليف تنفيذ واقعية وBaseline واضح. إذا لم تتكرر الميزة خارج العينة، تعامل معها كملاحظة تاريخية لا كقانون تداول.
تحذير مخاطر: الاختبارات التاريخية لا تضمن الأداء المستقبلي. التداول بالرافعة قد يؤدي إلى خسارة رأس المال، وStop Loss لا يضمن سعر التنفيذ.







