16 באוגוסט 2026 · בדיקות היסטוריות

למה רוב הבacktest-ים משקרים, וארבעת הסעיפים שמתקנים אותם

למה רוב הבacktest-ים משקרים, וארבעת הסעיפים שמתקנים אותם

נפתח במספרים, כי הם כל הטיעון. עסקת taker הלוך-ושוב בזירת פרפ מרכזית עולה בערך 0.10% מהנוטיונל בעמלות. פאנדינג על פוזיציית לונג צפופה יכול לרוץ נגדך בקצב של 10-30% שנתי. פקודת מרקט גדולה ביחס לעומק ראש הספר משלמת השפעה לפי חוק השורש מעל הספרד. ובacktest שקורא את הגרסה המעודכנת של נתוני אתמול מקבל יתרון בשווי כמה אחוזים בשנה שמעולם לא היה קיים.

0.10%עלות taker הלוך-ושוב, לעסקה
0.15%יתרון מינימלי לעסקה שאנחנו דורשים
4עלויות שרוב הבacktest-ים מדלגים עליהן

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

עמלות הן מסנן, לא קיצוץ

המודל המנטלי שרוב האנשים נושאים איתם הוא שעמלות מגלחות את העקומה: אותה צורה, קצת יותר נמוך. זה לא נכון. עמלות הן מסנן תדירות. הן מוחקות לחלוטין וריאציות בתדירות גבוהה של יתרון ומשאירות וריאציות איטיות כמעט ללא פגע. כשהפייפליין שלנו התחיל לאכוף לוחות maker/taker אמיתיים לכל זירה, האסטרטגיות שמתו לא היו הרעיונות הגרועים — הן היו רעיונות טובים שסוחרים יותר מדי. התיקון היה בדרך כלל טווח זמן ארוך יותר, לא סיגנל טוב יותר. היום אנחנו נוטשים כל דבר שתשואתו הממוצעת לעסקה נמוכה מ-0.15% מהנוטיונל, כי אחרי עלויות דו-כיווניות לא נשאר כלום שיצבור ריבית דריבית.

פאנדינג הוא מס פוזיציה עם זיכרון

חוזי פרפצ'ואל משלמים פאנדינג כל שעה או כל שמונה שעות, וזה לא רעש: זה מתואם מבנית בדיוק עם העסקאות שמערכות מומנטום רוצות. כשכולם בלונג, הפאנדינג חיובי, ופוזיציית המומנטום הארוכה שלך משלמת אותו. בacktest ללא צבירת פאנדינג מחמיא באופן שיטתי למעקב-מגמה על פרפים. למדנו את זה בדרך המביכה — משפחה שלמה של אסטרטגיות funding-carry ננטשה אוטומטית כי המנוע לא זיכה אותן בפאנדינג שהן תוכננו לקצור. הסיגנל היה בסדר גמור. החשבונאות הייתה חסרה.

ההשפעה גדלה כשורש הגודל שלך

הבדיה המנומסת של בacktest מבוסס-נרות היא שאתה מתמלא בסגירה. לפקודות קטנות זה נכון בערך. לכל דבר משמעותי, המודל המקובל הוא שההשפעה גדלה כשורש הריבועי של גודל הפקודה יחסית לנפח, והיא לעולם לא חוזרת. אנחנו מקפלים אומדן השפעה לפי חוק השורש לתוך כל fill ולתוך עקומת ההון עצמה. זה משנה הכי הרבה בדיוק במקום הכי פחות נוח: קיבולת. אסטרטגיה יכולה להיות רווחית באמת ב-$50k ולא-רווחית מבנית ב-$5M, ורק עקומה מודעת-השפעה מראה את הגבול.

הצצה קדימה מתחבאת בנתונים, לא בקוד

אף אחד לא כותב if tomorrow_close > today_close: buy(). הצצה קדימה מסתננת דרך צנרת הנתונים: סנטימנט חדשות מתויג בזמן הפרסום במקום בזמן הקליטה, שיעורי פאנדינג מוצמדים לתקופה שהם מכסים ולא לרגע שבו הם היו ידועים, יקומי סימבולים "עדכניים" שמוחלים על היסטוריה (הטיית שרידות), פרסומים כלכליים מתוקנים שמחליפים את המספר שבאמת פגע בשוק. הכלל שלנו הוא point-in-time בכל מקום: כל סדרה משלימה מתויגת בזמן שבו אנחנו יכולנו לדעת אותה, ובacktest יכול לקרוא רק את מה שהיה קיים באותה ננו-שנייה.

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

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

בדיקות היסטוריותעמלותפאנדינגהשפעת שוקכנות
← כל הפוסטים