مختبر الاستراتيجيات
يوضح هذا الدليل كيفية اختبار استراتيجية بأثر رجعي (Back-test) باستخدام مختبر الاستراتيجيات (Strategy Tester) في JForex4، ويغطي الإعداد، وطرق الاختبار، ومنطق تنفيذ الأوامر، وكيفية قراءة النتائج.
1. فتح مختبر الاستراتيجيات
- انتقل إلى View في شريط القوائم العلوي وحدد Strategy Tester.
- يفتح المختبر كعلامة تبويب جديدة بجانب Orders وPositions وMessages.
- اختر استراتيجيتك من القائمة المنسدلة. إذا لم تُضاف بعد إلى مساحة العمل، انقر على Open لإضافتها أولاً.
- (اختياري) انقر على Edit لفتح الكود المصدري للاستراتيجية في محرر الكود — متاح فقط في حال وجود ملف المصدر
.java.
2. إعداد الاختبار
إعدادات الحساب
انقر على Account لتحديد حساب التداول المُحاكى:
- الإيداع الأولي وعملة الحساب
- الرافعة المالية (Leverage)
- مستوى قطع الهامش (Margin Cut) (كنسبة % من الرافعة المستخدمة)
- إيقاف الخسارة على حقوق الملكية (MC Equity) — يوقف الاختبار تلقائيًا إذا انخفضت حقوق الملكية دون هذا المستوى
الأدوات المالية (Instruments)
انقر على Instruments لاختيار الأدوات المالية التي يجب تحميل بياناتها التاريخية. اختر كل الأدوات المالية التي تستخدمها الاستراتيجية للتداول أو للحسابات.
ملاحظة: هذا ليس المكان الذي تختار فيه الأداة المالية التي تتداول بها الاستراتيجية فعليًا — يتم تحديد ذلك بشكل منفصل، إما مُبرمَجًا بشكل ثابت داخل الاستراتيجية، أو يتم اختياره لاحقًا في نافذة Define Parameters.
فترة العينة والإطار الزمني
اختر النطاق الزمني التاريخي (Sample Period) والإطار الزمني (Time Frame):
- Ticks (التِكّات) — يستخدم بيانات التِكّات التاريخية الحقيقية (الأكثر دقة، والأبطأ).
- Candles (الشموع) (دقيقة واحدة / ساعة واحدة / يوم واحد) — أسرع، ويستخدم الاستيفاء (Interpolation) لتوليد تِكّات من بيانات الشموع OHLC. يتيح أيضًا اختيار Bid أو Ask كأساس.
الوضع البصري (Visual Mode)
فعّل Visual Mode لمشاهدة المحاكاة وهي تجري على رسم بياني مباشر أثناء تشغيلها. عند تفعيله، يُتيح زر Start أيضًا عناصر تحكم في التشغيل لإيقاف الاختبار مؤقتًا أو إبطاء سرعته.
التحسين (Optimization)
إذا كانت استراتيجيتك تحتوي على معايير قابلة للتخصيص، فعّل Optimization لاختبار مجموعات متعددة من المعايير في تشغيل واحد. لكل معيار (بخلاف الأداة المالية والفترة) يمكنك تحديد قيمة أدنى، وحجم خطوة، وقيمة أعلى — يتم اختبار الاستراتيجية بعد ذلك مرة واحدة لكل مجموعة من الخطوات.
تظهر نتائج كل مجموعة في الجزء السفلي من نافذة المختبر. انقر بزر الفأرة الأيمن على أي صف لإلغائها، أو نسخ إعداداتها، أو عرض تقريرها، أو إعادة استخدام معاييرها المُدخلة.
عامل الربح (Profit Factor) = إجمالي الربح ÷ إجمالي الخسارة (يؤخذ كل منهما كقيمة موجبة). مثال: إجمالي ربح 1000 وإجمالي خسارة 250 → عامل الربح = 4.0. تكون هذه القيمة دائمًا موجبة، وارتفاعها يشير عمومًا إلى نسبة أكثر ملاءمة بين الصفقات الرابحة والخاسرة.
3. مرشحات التِكّات (Tick Filters) (فقط في الإطار الزمني Ticks)
عند اختيار Ticks كإطار زمني، اختر طريقة تصفية التِكّات:
| المرشح (Filter) | السلوك |
|---|---|
| Process all ticks (معالجة جميع التِكّات) | الأكثر دقة، ولكنه الأبطأ — يعيد تشغيل كل تِكّة تم تسجيلها على الإطلاق. |
| Process all ticks with a different non-recurrent price (معالجة جميع التِكّات ذات السعر غير المتكرر) | يتجاوز التِكّات التي تكرر نفس السعر. |
| Process ticks on a market direction (معالجة التِكّات وفق اتجاه السوق) | يتجاوز التِكّات إلا إذا كانت تمثل نقطة انعكاس/تحول حقيقية في اتجاه السعر. |
| Process ticks on a predefined price range change (معالجة التِكّات وفق تغيّر محدد مسبقًا في نطاق السعر) | يتجاوز التِكّات حتى يتحرك السعر بمقدار نطاق محدد. |
| Process ticks with the specified time interval (معالجة التِكّات وفق فاصل زمني محدد) | يتجاوز التِكّات وفقًا لفاصل زمني محدد. |
4. طرق الاستيفاء (Interpolation Methods) (فقط للإطارات الزمنية للشموع)
متاحة عندما يكون الإطار الزمني عبارة عن فترة شمعة (دقيقة واحدة، ساعة واحدة، يوم واحد). بدلاً من تحميل بيانات تِكّات حقيقية، يقوم المختبر بتوليد تِكّات مُصنّعة من بيانات الشموع OHLC — مما يُسرّع عملية الاختبار بشكل كبير.
| الطريقة | الوصف |
|---|---|
| Cubic Spline (الاستيفاء بالمنحنى التكعيبي) | الطريقة الأكثر دقة القائمة على الشموع. تبني التِكّات باستخدام أسعار OHLC كنقاط أساس عبر الاستيفاء بالمنحنى التكعيبي (Cubic Spline). قد تولّد أحيانًا عددًا أكبر من التِكّات مقارنةً بما يُنتجه تدفق بيانات حقيقي بالنسبة للفترات القصيرة جدًا (مثل 10 ثوانٍ). |
| 4 ticks at OHLC (4 تِكّات عند OHLC) | الطريقة الأكثر موثوقية بين طرق الاستيفاء المتاحة. تستوفي كل شمعة إلى 4 تِكّات سعرية بالضبط — Open، وHigh، وLow، وClose. يعتمد ترتيب تِكّتي High وLow على أي منهما أقرب إلى سعر الافتتاح (Open): الأقرب إلى Open يُعالَج كالتِكّة الثانية، قبل الأخرى. |
| Tick on Open (تِكّة عند الافتتاح) | يولّد تِكّة واحدة باستخدام سعر الافتتاح (Open) للشمعة. |
| Tick on Close (تِكّة عند الإغلاق) | يولّد تِكّة واحدة باستخدام سعر الإغلاق (Close) للشمعة. |
مثال: إذا كانت استراتيجيتك تتداول على شموع دقيقة واحدة (1 Min) ولا تحتاج إلى دقة أدق، فاختر 1 Min كإطار زمني و4 ticks at OHLC كطريقة استيفاء — ستحصل الاستراتيجية بعد ذلك على 4 تِكّات بالضبط في الدقيقة (الافتتاح، ثم الأعلى/الأدنى بترتيب القرب، ثم الإغلاق).
5. الإعدادات المخصصة
- Save interpolated price data (حفظ بيانات السعر المستوفاة) — الاحتفاظ ببيانات التِكّات المُولَّدة عن طريق الاستيفاء أو التخلص منها.
- Visual Mode (الوضع البصري): إظهار/إخفاء Equity (حقوق الملكية) وBalance (الرصيد) وP/L (الربح/الخسارة)؛ اختيار قالب (Template) رسم بياني محفوظ؛ تحديد الفترة (Period) الافتراضية المعروضة أثناء الوضع البصري.
- Messages (الرسائل): تفعيل Save Messages to لحفظ الرسائل في ملف؛ تفعيل Save Reports to لحفظ التقارير في ملف؛ تفعيل Show Reports لفتح التقرير تلقائيًا بعد انتهاء الاختبار.
6. منطق معالجة الأوامر
فهم كيفية تنفيذ المختبر للأوامر بدقة أمرٌ ضروري للوثوق بنتائج الاختبار بأثر رجعي.
القاعدة العامة: يتم تنفيذ الأوامر بسعر الأمر نفسه — باستثناء عند وجود فجوة في السوق (Gap) (مثل إعادة افتتاح السوق بفجوة بعد فترة توقف). في حالات الفجوة:
- أوامر LIMIT يتم تنفيذها بسعر أفضل من سعر الأمر.
- أوامر STOP بدون إعداد MAX.SLIPPAGE يتم تنفيذها بأول سعر متاح بعد الفجوة.
- أوامر STOP مع إعداد MAX.SLIPPAGE، إذا كان سعر التنفيذ سيقع خارج حد الانزلاق السعري (Slippage) هذا، يتم تلقائيًا إعادة تقديمها كأوامر LIMIT بدلاً من ذلك.
منطق التنفيذ التفصيلي:
- الأوامر التي يتم تفعيلها على جانب BID تُقارَن بأسعار شموع BID المستوفاة؛ والأوامر التي يتم تفعيلها على جانب ASK تُقارَن بأسعار شموع ASK المستوفاة.
- إذا تم تفعيل أمر (بغض النظر عن نوعه) بواسطة تِكّة سعر CLOSE أو HIGH أو LOW، يتم تنفيذه بسعر الأمر نفسه، مع تعديله حسب فرق السعر (Spread) الأخير المعروف إذا لزم الأمر (يُطبَّق هذا التعديل عندما يأتي المُحفِّز من الجانب المعارض).
- إذا تم تفعيل أمر بواسطة تِكّة سعر OPEN، يتم تنفيذه بسعر تِكّة OPEN تلك على الجانب المقابل — باستثناء أمر STOP الذي تم فيه تعيين MAX.SLIPPAGE: إذا وقعت تِكّة OPEN خارج حد الانزلاق السعري لأمر STOP، يتم تحويل الأمر إلى أمر LIMIT بدلاً من ذلك.
نصيحة: بما أن "4 ticks at OHLC" تتضمن دائمًا تِكّة Open لكل شمعة، فإن هذا المنطق المُحفَّز بواسطة OPEN (واستثناءه المتعلق بـ STOP/MAX.SLIPPAGE) يُطبَّق بشكل مباشر عند الاختبار باستخدام طريقة الاستيفاء هذه.
7. تشغيل الاختبار
- انقر على زر Start.
- تفتح نافذة Define Parameters — حدد فيها القيم القابلة للتخصيص للاستراتيجية (الأداة المالية، الكمية، الانزلاق السعري، إيقاف الخسارة/جني الربح، إلخ). تعتمد الحقول المعروضة بالضبط على كود استراتيجيتك.
- انقر على Run لبدء المحاكاة.
- إذا كان الوضع البصري مفعّلاً، استخدم عناصر تحكم التشغيل لإيقاف الاختبار مؤقتًا أو إبطائه أثناء تشغيله.
- عند الانتهاء (قد تستغرق الاختبارات الكبيرة المعتمدة على التِكّات وقتًا طويلاً)، يفتح تقرير الاختبار تلقائيًا في متصفحك (إذا كانت خيار Show Reports مفعّلاً).
8. مراجعة النتائج
يتضمن التقرير نتائج كل صفقة على حدة، ومنحنيات حقوق الملكية/الرصيد، وإحصائيات ملخصة مثل عامل الربح (Profit Factor) الموصوف أعلاه. إذا قمت بتشغيل عملية مسح Optimization، قارن التقارير لكل مجموعة معايير من قائمة النتائج في الجزء السفلي من نافذة المختبر قبل اختيار التكوين المناسب للمتابعة.
أفضل الممارسات
- ابدأ بـ Ticks / "Process all ticks" لجولة التحقق النهائية — فهي المحاكاة الأقرب إلى ظروف السوق الحقيقية، حتى وإن كانت الأبطأ.
- استخدم استيفاء الشموع للتكرار السريع. أثناء تطوير أو ضبط استراتيجية، توفر "4 ticks at OHLC" ملاحظات سريعة وموثوقة دون الحاجة لتحميل سجل التِكّات الكامل.
- طابِق طريقة الاستيفاء/مرشح التِكّات مع منطق استراتيجيتك. الاستراتيجية التي تتفاعل مع أسعار OPEN تتصرف بشكل مختلف تحت "4 ticks at OHLC" مقارنةً بـ "Tick on Close" — تأكد من أن طريقة الاختبار التي تختارها تتوافق مع ما يُحفِّز منطق استراتيجيتك في الواقع.
- راقب تفاعلات MAX.SLIPPAGE. إذا كانت استراتيجيتك تعتمد على أوامر STOP، اختبر مع وبدون MAX.SLIPPAGE لفهم كيف قد تحوّل سيناريوهات الفجوة وتِكّة OPEN أوامرك إلى تنفيذات LIMIT.
- تذكّر: الأداء الماضي المعروض في المختبر ليس مؤشرًا موثوقًا على الأداء المستقبلي — احرص دائمًا على التحقق بشكل إضافي في بيئة تجريبية (Demo) قبل التداول الحقيقي.