5 טעויות Backtesting נפוצות
5 הטעויות הנפוצות ביותר בבדיקת אסטרטגיות מסחר: Look-ahead Bias, התעלמות מעמלות, מדגם קטן מדי, Overfitting, ובדיקה על תקופה לא מייצגת.
חמש הטעויות הנפוצות ביותר ב-Backtesting הן: Look-ahead Bias (שימוש במידע שלא היה זמין בזמן אמת), התעלמות מעמלות ו-Slippage, מדגם עסקאות קטן מדי, Overfitting (כיוונון יתר), ובדיקה רק על תקופה "נוחה" של שוק עולה. כל אחת מהטעויות האלה יכולה להפוך אסטרטגיה מפסידה לכזו שנראית רווחית על הנייר — וכל אחת מהן נפוצה יותר ממה שנדמה, גם אצל מפתחים מנוסים.
1. Look-ahead Bias — שימוש במידע מהעתיד
הטעות: קוד שמשתמש בטעות במחיר סגירה של אותו יום כדי לקבל החלטת קנייה שאמורה להתבצע במהלך אותו יום — לפני שהיום הסתיים בפועל.
# שגוי
df["signal"] = df["close"] > df["ma20"]
# תקין
df["signal"] = df["close"].shift(1) > df["ma20"].shift(1)
זו הטעות המסוכנת ביותר מבין החמש, כי היא מנפחת תוצאות בלי שום סימן אזהרה גלוי — הבקטסט פשוט נראה טוב. פירוט מלא במדריך Look-ahead Bias.
2. התעלמות מעמלות ומ-Slippage
בקטסט "נקי" בלי עמלות ובלי Slippage נראה טוב יותר ממה שהאסטרטגיה תהיה בפועל — במיוחד באסטרטגיות עם מסחר תדיר. עמלה של $1 לעסקה נשמעת זניחה, אבל על אסטרטגיה עם 200 עסקאות בשנה ותשואה ממוצעת קטנה לעסקה, היא יכולה למחוק חלק ניכר מהרווח.
commission_per_trade = 1.0
trades_df["net_return"] = trades_df["return_pct"] - (commission_per_trade / trades_df["position_value"])
3. מדגם עסקאות קטן מדי
אסטרטגיה שנבדקה על 15-20 עסקאות בלבד לא מספקת מובהקות סטטיסטית — התוצאה יכולה להיות מקרית לחלוטין. כלל אצבע: לפחות 50-100 עסקאות לפני שמסיקים מסקנות, ורצוי יותר. בדיקה על תקופה קצרה מדי (כמה חודשים) היא סיבה נפוצה למדגם קטן מדי.
4. Overfitting — כיוונון יתר לנתוני העבר
בדיקת עשרות או מאות שילובי פרמטרים על אותו מדגם נתונים, ובחירת השילוב עם התוצאה הטובה ביותר — כמעט מובטח למצוא שילוב שמתאים "במקרה" לרעש הספציפי בנתונים, לא לדפוס אמיתי. סימני אזהרה: Sharpe Ratio חשוד גבוה (מעל 3), Win Rate מעל 80%, או פרמטרים "מוזרים" שעובדים רק בערך מדויק אחד. פירוט מלא במדריך Overfitting.
5. בדיקה רק על תקופה "נוחה"
בדיקת אסטרטגיה רק על שנים של שוק עולה רציף (למשל 2023-2024 בלבד) נותנת תמונה חלקית ומטעה. אסטרטגיה חייבת להיבדק גם על תקופות עם ירידות משמעותיות (כמו 2022) ותנודתיות גבוהה — אחרת אין דרך לדעת איך היא תתמודד כשהשוק לא ישתף פעולה.
| מה בודקים | למה זה חשוב | |---|---| | תקופת שוק עולה | ביצועים ב"תנאים טובים" | | תקופת שוק יורד (כמו 2022) | האם יש הגנה מובנית, או קריסה מלאה | | תקופת תנודתיות גבוהה | האם ה-Stop Loss מתפקד או "נדפק" מרעש | | לפחות 2-3 שנים כוללות | מייצג יותר מסגנון שוק אחד |
איך לבדוק אם הבקטסט שלכם נקי מהטעויות האלה
רשימת תיוג מהירה לפני שממשיכים ל-Paper Trading: האם כל איתות מבוסס על נתונים שהיו זמינים בפועל באותו רגע? האם עמלות נכללות בחישוב? האם יש 50+ עסקאות במדגם? האם הפרמטרים נבחרו בלי חיפוש מוגזם על אותם נתונים? האם התקופה כוללת גם שנה קשה?
שאלות נפוצות
איזו מהטעויות הכי נפוצה אצל מתחילים?
Look-ahead Bias ומדגם עסקאות קטן מדי — שתיהן קלות לביצוע בטעות ולא תמיד יש סימן ברור שהן קרו, בניגוד ל-Overfitting שלרוב מגיע עם תוצאות "טובות מדי" שמעוררות חשד.
האם אפשר לתקן בקטסט אחרי שמגלים טעות?
כן, בדרך כלל — אבל חשוב לתקן את כל הטעויות ולהריץ מחדש מאפס, לא רק "לתקן חלקית". תיקון בודד (למשל הוספת עמלות) בלי לתקן טעויות אחרות (כמו Look-ahead Bias) עדיין ייתן תמונה מעוותת.
האם ספריות Backtesting מוכנות פותרות את כל הטעויות האלה?
הן מקטינות משמעותית את הסיכון לחלק מהטעויות (בעיקר Look-ahead Bias ועמלות), אבל לא מבטלות Overfitting או בדיקה על תקופה לא מייצגת — אלה תלויים בהחלטות שהבודק עצמו מקבל, לא רק בכלי.
כמה מהטעויות האלה קורות ביחד בדרך כלל?
יותר ממה שנדמה — Look-ahead Bias ו-Overfitting לרוב מופיעות יחד, כי שתיהן נוטות לנפח תוצאות בכיוון דומה. זו הסיבה שכדאי לבדוק את כל הרשימה, לא רק פריט אחד, לפני שסומכים על תוצאות בקטסט.