כל המאמרים
BacktestingOverfittingמדריך
·נכתב על ידי עדן מרגוליס

מה זה Overfitting במסחר אלגוריתמי

Overfitting מוסבר: איך אסטרטגיה 'לומדת' רעש בנתוני העבר במקום דפוס אמיתי, סימני האזהרה הנפוצים, ואיך Walk-Forward Testing עוזר לזהות את הבעיה.

Overfitting הוא מצב שבו אסטרטגיה כווננה כל כך הרבה כדי להתאים לנתוני העבר הספציפיים שנבדקו, עד שהיא "לומדת" רעש אקראי במקום דפוס אמיתי בשוק. אסטרטגיה שעברה Overfitting מציגה תוצאות מרשימות ב-Backtesting — ולעיתים קרובות נכשלת כמעט מיד כשהיא נבדקת על נתונים חדשים או רצה בזמן אמת. זו אולי הסיבה הבודדת הנפוצה ביותר לכך שבוטי מסחר "שנראו מצוינים בבדיקה" מפסידים כסף במסחר חי.


איך Overfitting קורה בפועל

Overfitting נוצר בדרך כלל מתהליך אופטימיזציה אגרסיבי מדי: לוקחים אסטרטגיה עם כמה פרמטרים (רמת RSI, אורך ממוצע נע, מרחק Stop Loss), ומריצים אותה עם עשרות או מאות שילובי ערכים שונים על אותו מדגם נתונים, עד שמוצאים את השילוב עם התוצאה הכי טובה.

הבעיה: ברגע שבודקים מספיק שילובים על אותו מדגם, כמעט תמיד יימצא שילוב שמתאים "במקרה" לרעש הספציפי של אותם נתונים — לא לדפוס אמיתי וחוזר בשוק. השילוב הזה נראה מדהים על הנתונים שנבדקו ולא אומר כלום על ביצועים עתידיים.

# דוגמה לתהליך שמוביל ל-Overfitting
best_result = None
for rsi_threshold in range(10, 50):
    for ma_length in range(10, 200):
        for stop_loss_pct in [0.01, 0.02, 0.03, 0.04, 0.05]:
            result = run_backtest(rsi_threshold, ma_length, stop_loss_pct)
            if best_result is None or result.sharpe > best_result.sharpe:
                best_result = result
# הבחירה מתוך אלפי שילובים על אותו מדגם - כמעט מובטח Overfitting

סימני האזהרה הנפוצים

  • תוצאות "טובות מדי"Sharpe Ratio מעל 3, Win Rate מעל 80%, או תשואה שנתית מעל 100% בעקביות. אסטרטגיות אמיתיות שעובדות באופן עקבי לאורך שנים נדירות ביותר בטווחים האלה.
  • פרמטרים "מוזרים" — אם האסטרטגיה עובדת רק עם RSI מדויק של 27.3 אבל נכשלת עם 25 או 30, זה סימן שהפרמטר כוונן לרעש ספציפי בנתונים, לא לדפוס יציב.
  • הבדל גדול בין In-Sample ל-Out-of-Sample — כשהתוצאות על הנתונים שבהם כווננה האסטרטגיה טובות משמעותית מהתוצאות על נתונים שלא נראו קודם.
  • מספר עסקאות נמוך — אסטרטגיה שביססה תוצאה "מדהימה" על פחות מ-30-50 עסקאות סובלת מהיעדר מובהקות סטטיסטית, גם בלי Overfitting מכוון.

איך מונעים Overfitting

מגבילים את מספר הפרמטרים — אסטרטגיה עם 2-3 פרמטרים קל יותר לבדוק ולהבין מ-10 פרמטרים שמאפשרים גמישות אינסופית להתאמה לרעש.

Out-of-Sample Testing — מחלקים את הנתונים לשתי תקופות: תקופת כיוונון (In-Sample) ותקופת בדיקה עיוורת (Out-of-Sample) שלא נגעו בה בזמן הכיוונון. אם האסטרטגיה עובדת גם על התקופה העיוורת — יש בסיס אמיתי יותר להמשיך.

Walk-Forward Testing — גרסה מתקדמת יותר של Out-of-Sample: מכוונים על חלון זמן, בודקים על החלון הבא, מזיזים את החלון קדימה וחוזרים על התהליך שוב ושוב. זה מדמה איך אסטרטגיה הייתה מתפקדת בפועל אם הייתה מתעדכנת לאורך זמן.

עדיפות לפשטות — אסטרטגיה עם היגיון כלכלי ברור (למשל "מניות עם מומנטום חזק נוטות להמשיך", תופעה מתועדת אקדמית) עדיפה על אסטרטגיה מורכבת שנמצאה רק דרך חיפוש מספרים אופטימלי בלי הסבר לוגי מאחוריה.

שאלות נפוצות

כמה שילובי פרמטרים "מותר" לבדוק לפני שזה הופך ל-Overfitting?

אין מספר מדויק, אבל ככל שבודקים יותר שילובים על אותו מדגם, כך גדל הסיכון. כלל אצבע: אם בודקים עשרות שילובים, חובה לאמת את התוצאה על נתונים שלא נגעו בהם בכלל (Out-of-Sample).

האם אפשר לתקן אסטרטגיה שעברה Overfitting?

בדרך כלל עדיף להתחיל מחדש עם פחות פרמטרים והיגיון פשוט יותר, ולא "לתקן" אסטרטגיה שכבר כווננה יתר על המידה — קשה להפריד בין הפרמטרים שתופסים דפוס אמיתי לבין אלה שתופסים רעש.

איך זה קשור ל-Look-ahead Bias?

הם בעיות נפרדות שלעיתים מתרחשות יחד. Look-ahead Bias הוא שימוש במידע שלא היה זמין בזמן אמת. Overfitting הוא כיוונון יתר לרעש בנתונים שכן היו זמינים. שניהם מנפחים תוצאות Backtesting, אך מדרישות בדיקות שונות.

מה סימן הכי אמין ל-Overfitting לפני שרצים לכסף אמיתי?

הבדל משמעותי בין ביצועי Paper Trading לביצועי הבקטסט המקורי. אם הבקטסט הראה Sharpe Ratio 2.5 ו-Paper Trading מראה 0.3 — כמעט בוודאות הייתה בעיית Overfitting (או הטיה אחרת) בבקטסט המקורי.

רוצה לבנות בוט כזה בעצמך?

שיחה קצרה של 20 דקות.

דברו איתנו חינם