معادلة الـ Edge: التوقّع الرياضي (Expectancy) فكرةً محورية
نسبة الربح (Win Rate) والعائد للصفقة مجتمعَين في رقم واحد، وما يَعِد به هذا الرقم وما لا يَعِد، ولماذا تُعدّ كل وحدة لاحقة طريقةً لتقديره بنزاهة.
في هذا الدرس ستتعلّم أن
- احسب التوقّع الرياضي بوحدة R انطلاقاً من نسبة الـ Win Rate ومتوسط الربح ومتوسط الخسارة.
- استخرج نسبة الـ Win Rate عند التعادل لعائد معيّن، وأثر التكاليف في ذلك.
- اشرح لماذا يمكن أن يُنتج التوقّع الرياضي الموجب فترات خاسرة.
- صِف لماذا تعطي العيّنة الصغيرة تقديراً غير موثوق للتوقّع الرياضي.
يتجادل المتداولون حول نسب الربح ونسب العائد إلى المخاطرة و«الدقة» كأن كلاً منها يحسم السؤال عن نجاح الاستراتيجية. لا شيء منها يحسمه وحده. والرقم الذي يجمعها هو التوقّع الرياضي: متوسط النتيجة التي يمكنك توقّعها لكل صفقة إذا صمدت الإحصاءات السابقة. إنه أقرب ما يملكه التداول المنهجي إلى تعريف واحد للـ Edge، ومعظم هذه الدورة عن تقديره بنزاهة.
القياس بوحدة R
يسهل التفكير في التوقّع الرياضي بوحدة R، حيث 1R هو المبلغ الذي خطّطت لخسارته في الصفقة إذا ضُرب وقف الخسارة. الصفقة التي تربح ضعف المخاطرة المخطّطة تساوي +2R؛ والخروج الكامل بوقف الخسارة يساوي −1R. القياس بوحدة R يفصل جودة القواعد عن حجم الحساب، فتعني النتيجة الشيء نفسه سواء خاطرت بـ50 أو بـ5,000 لكل صفقة.
المعادلة
مع نسبة ربح ، ومتوسط ربح ، ومتوسط خسارة ، كلاهما بوحدة R، يكون التوقّع الرياضي:
بالكلمات: حصة الصفقات الرابحة مضروبة في ما تربحه، ناقص حصة الصفقات الخاسرة مضروبة في ما تكلّفه.
لنأخذ نظاماً يربح بنسبة 40% من الصفقات، ويحقق 2R في متوسط الصفقة الرابحة، ويخسر 1R في متوسط الصفقة الخاسرة:
في المتوسط، تضيف كل صفقة خُمس المخاطرة المخطّطة. وعلى مدى 100 صفقة، يعني ذلك +20R في المتوسط. لاحظ أن هذا النظام يخسر أكثر مما يربح. فانخفاض نسبة الـ Win Rate ليس عيباً إذا كانت الرابحات كبيرة بما يكفي، وارتفاعها ليس قوة إذا كانت الخاسرات أكبر.
التعادل والتكاليف
بجعل التوقّع الرياضي صفراً وحلّ المعادلة بالنسبة إلى نحصل على نسبة الـ Win Rate عند التعادل، وهي النقطة التي لا يربح عندها عائد معيّن ولا يخسر:
للرابحات 2R والخاسرات 1R، تساوي النسبة ، أي نحو 33.3%. وتدفع كل صفقة أيضاً تكاليف: العمولات والفارق بين العرض والطلب والانزلاق السعري. وحين تُقاس بوحدة R فإنها تُخصم مباشرة من النتيجة. تغلّف الشيفرة أدناه المعادلة في دالتين صغيرتين وتضيف تكلفة لكل صفقة.
def expectancy(win_rate, avg_win_r, avg_loss_r, cost_r=0.0):
"""Average result per trade in R, after a fixed cost per trade."""
return win_rate * avg_win_r - (1 - win_rate) * avg_loss_r - cost_r
def breakeven_win_rate(avg_win_r, avg_loss_r):
"""Win rate at which expectancy is exactly zero, before costs."""
return avg_loss_r / (avg_win_r + avg_loss_r)
print(f"Before costs: {expectancy(0.40, 2.0, 1.0):+.2f}R")
print(f"After 0.08R of costs per trade: {expectancy(0.40, 2.0, 1.0, cost_r=0.08):+.2f}R")
print(f"Breakeven win rate at 2R wins and 1R losses: {breakeven_win_rate(2.0, 1.0):.1%}")Before costs: +0.20R
After 0.08R of costs per trade: +0.12R
Breakeven win rate at 2R wins and 1R losses: 33.3%تكلفة قدرها 0.08R لكل صفقة تُزيل 40% من هذا الـ Edge. وفي الاستراتيجية ذات أوقاف الخسارة الضيقة، حيث يكون 1R مسافة سعرية صغيرة، قد يشكّل الفارق السعري وحده نسبة كبيرة من R. ولهذا فإن الاختبار الذي يتجاهل التكاليف ليس اختباراً.
الـ Edge الموجب لا يعني رحلة سلسة
التوقّع الرياضي يصف متوسط عدد كبير من الصفقات. ولا يقول شيئاً عن الترتيب الذي تأتي به الرابحات والخاسرات. تأخذ المحاكاة أدناه النظام نفسه، 40% رابحات بـ2R وخاسرات بـ1R، وتُجري خمس سلاسل منفصلة من 100 صفقة لكل منها. وهي تستخدم numpy، وهي مكتبة للتعامل مع مصفوفات الأرقام، ومولّد أرقام عشوائية ببذرة ثابتة لتحصل على نتائج «العشوائية» نفسها المعروضة هنا بالضبط.
import numpy as np
win_rate = 0.40 # 40% of trades win
avg_win_r = 2.0 # an average winner makes 2R
avg_loss_r = 1.0 # an average loser costs 1R
expectancy = win_rate * avg_win_r - (1 - win_rate) * avg_loss_r
print(f"Expectancy per trade: {expectancy:+.2f}R")
rng = np.random.default_rng(seed=7)
for run in range(1, 6):
wins = rng.random(100) < win_rate
results = np.where(wins, avg_win_r, -avg_loss_r)
print(f"Run {run}: {wins.sum()} wins, total {results.sum():+.1f}R over 100 trades")Expectancy per trade: +0.20R
Run 1: 42 wins, total +26.0R over 100 trades
Run 2: 35 wins, total +5.0R over 100 trades
Run 3: 43 wins, total +29.0R over 100 trades
Run 4: 42 wins, total +26.0R over 100 trades
Run 5: 30 wins, total -10.0R over 100 tradesتسحب كل سلسلة 100 رقم عشوائي بين 0 و1 وتحتسب الصفقة رابحة حين يكون رقمها أقل من 0.40. القواعد لا تتغيّر أبداً، ومع ذلك تتراوح المجاميع من −10R إلى +29R. السلسلة 5 هي الـ Edge نفسه في السلسلة 3، لكن مع تسلسل مختلف من الحظ.
يترتب على ذلك درسان. أولاً، فترة الخسارة لا تثبت أن الـ Edge قد زال، وفترة الربح لا تثبت أنه موجود. ثانياً، يجب أن تتحمّل مخاطرتك لكل صفقة السلاسل السيئة، لا السلسلة المتوسطة. ومحاكي التوقّع الرياضي يتيح لك تغيير نسبة الـ Win Rate والعائد وعدد الصفقات ومشاهدة سلاسل كثيرة في وقت واحد.
لماذا تعود كل وحدة لاحقة إلى هذا الموضوع
لو كان قياس التوقّع الرياضي سهلاً لكان التداول المنهجي بسيطاً. لكنه صعب لأن التقدير قد يكون خاطئاً بطرق خفية كثيرة، وكل جزء من هذه الدورة يعالج واحدة منها:
- البيانات (الوحدة 02) قد تجمّل النتائج عبر الأخطاء أو التاريخ الناقص أو شركات لم تعد موجودة.
- الإحصاء (الوحدة 03) يخبرك بكم تستطيع العيّنة أن تقول فعلاً.
- القواعد (الوحدة 04) يجب تثبيتها قبل الاختبار، وإلا قاس التقدير تحيّزك بأثر رجعي.
- الـ Backtest (الوحدة 05) يجب أن يشمل التكاليف وأن يتجنب استخدام معلومات لم تكن متاحة في ذلك الوقت.
- التحقّق (الوحدة 06) يفحص هل يصمد التقدير على بيانات لم ترها القواعد من قبل.
- المخاطرة (الوحدة 07) تحدّد كم تراهن على تقدير تعلم أنه غير مؤكد.
الفكرة المحورية
الـ Edge، بعبارة بسيطة، هو توقّع رياضي موجب بعد التكاليف يصمد على بيانات لم تستخدمها في تصميم القواعد. وكل جزء من هذه الجملة مهم، وتفكّكها بقية هذه الدورة قطعةً قطعة. يعرض الدرس التالي طريقة العمل اللازمة لذلك، من أول فكرة إلى النظام العامل.
أهم الخلاصات
- التوقّع الرياضي هو متوسط النتيجة لكل صفقة مقيساً بوحدة R. والـ Edge هو توقّع رياضي موجب بعد التكاليف.
- نسبة الـ Win Rate وحدها لا تقول شيئاً؛ ولا يكون لها معنى إلا مع متوسط الربح ومتوسط الخسارة.
- التكاليف تُخصم مباشرة من التوقّع الرياضي، وقد تختفي الميزات الصغيرة تماماً.
- التوقّع الرياضي الموجب يصف متوسط عدد كبير من الصفقات. أما أي سلسلة بعينها من الصفقات فقد تخسر.
- معظم هذه الدورة عن تقدير التوقّع الرياضي دون أن تخدع نفسك.
قدّر التوقّع الرياضي من سجلاتك الخاصة
خذ آخر 30 صفقة أو أكثر من سجلّ التداول، أو اخترع قائمة واقعية إن لم يكن لديك سجلّ. عبّر عن كل نتيجة بوحدة R، ثم احسب نسبة الـ Win Rate ومتوسط الربح ومتوسط الخسارة والتوقّع الرياضي. أعد الحساب بعد خصم تكلفة ثابتة لكل صفقة، ولاحظ إلى أي حدّ يجب أن تكبر التكلفة قبل أن يصل التوقّع الرياضي إلى الصفر.
اختبار ذاتي
أجب بكلماتك أولاً، ثم اكشف الإجابة.
نظام يربح بنسبة 55% من الصفقات، بمتوسط ربح 0.8R ومتوسط خسارة 1R. ما توقّعه الرياضي؟
اعرض الإجابةأخفِ الإجابة
0.55 × 0.8 − 0.45 × 1.0 = 0.44 − 0.45 = −0.01R. ورغم أنه يربح أكثر مما يخسر، فإنه يخسر مالاً بمقدار طفيف في المتوسط، قبل التكاليف.
ما نسبة الـ Win Rate عند التعادل لصفقات تربح 3R حين تربح وتخسر 1R حين تخسر؟
اعرض الإجابةأخفِ الإجابة
1 ÷ (3 + 1) = 25%. أي نسبة Win Rate فوق 25% تعطي توقّعاً رياضياً موجباً قبل التكاليف.
في المحاكاة، استخدمت كل سلسلة القواعد نفسها والتوقّع الرياضي نفسه +0.20R، ومع ذلك خسرت إحداها 10R. لماذا؟
اعرض الإجابةأخفِ الإجابة
التوقّع الرياضي متوسط على عدد كبير من الصفقات. وعلى مدى 100 صفقة يتفاوت عدد الرابحات بالمصادفة، وقد تخسر سلسلة فيها رابحات أقل من المتوسط مالاً رغم أن الـ Edge الكامن موجب. العيّنات الأطول تضيّق التفاوت لكنها لا تُزيله أبداً.
