פיתוח דוחות בקטסטינג: Sharpe, drawdown, P&L

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

שירותי פיתוח בלוקצ'יין

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

מדוע בקסטינג סוטה מתוצאות המסחר בפועל

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

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

חסרים בנרות, אזורי זמן שונים, ערכים חריגים שלא סוננו — פגמים אופייניים באיכות הנתונים ההיסטוריים, שבגללם התשואה בהיסטוריה אינה משוחזרת.

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

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

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

מה משתנה כאשר המדדים מחושבים לפי כללים אחידים

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

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

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

פורמטים של דוחות בקסטינג: השוואת גישות

בחירת פורמט הדוח היא прежде прежде בחירת מתודולוגיית החישוב, ולא של העיצוב. Sharpe, השפל המקסימלי ועקומת התשואה נותנים מספרים שונים בהתאם לאופן שבו נלקחות בחשבון העמלות והסליפג', באיזו תדירות מחושב מחדש התיק וכיצד מטופלים החסרים בנתונים.

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

אפשרויות והמגבלות שלהן

אפשרות מתי מתאימה מגבלות
מעגל חישוב עצמאי לוגיקה לא-סטנדרטית של אסטרטגיה, מדדים משלך, נתונים רגישים ולידציה עצמאית, בדיקות משלך ל-look-ahead, ניהול גרסאות של המתודולוגיה — הכול בצד הלקוח
דוחות מוכנים של ספריית בקסטינג אסטרטגיה טיפוסית, תוצאה נדרשת במהירות המתודולוגיה סגורה: הרכב המדדים וכללי הריבלנס קבועים, לא ניתן להגדיר מחדש את השפל
שירות חיצוני לחישוב מדדים נדרשים חישוב מחדש בלתי תלוי ופורמט דוח אחיד למספר אסטרטגיות הנתונים יוצאים ממעגל הלקוח, לא ניתן לשנות את המתודולוגיה, הדוח מופיע באיחור

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

סדר העבודה: מהגדרת המדדים ועד בקסטינג שוטף

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

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

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

  3. הגדרת מעגל החישוב. מאגר היסטוריה, ספריית מכשירים ושירות שאוסף את הדוח לפי דרישה ולפי לוח זמנים על אותם כללים.

  4. בדיקת התכנסות. מריצים תקופת אמת מידה ומשווים לחישוב מחדש בלתי תלוי. כל פער או מוסבר או מתוקן — אחרת לא ניתן להאמין למדד.

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

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

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

מה אנחנו מוסרים לידיים: תרשימים, כללי חישוב ותקנונים

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

  • תיאור המדדים וההנחות — הנוסחאות של Sharpe, drawdown ו-P&L, חלון התשואה, השיעור הבסיסי, מה נחשב לתשואה חסרת סיכון ולמה דווקא כך.
  • תרשימי חישוב — השרשרת מציטוטים גולמיים ועד הטבלה הסופית: היכן מנקים את הנתונים, היכן מצברים, ובאיזה שלב מופיע כל מדד.
  • כללים לטיפול באנומליות — חסרים בסדרה, ערכים חריגים, קטיעות בימי מסחר שאינם, אירועים תאגידיים: מתי הנתונים מוחרגים, מתי מיושרים באינטרפולציה ומה נכנס ליומן החישוב.
  • הוראות הרצה — פרמטרי הסביבה, סדר הצעדים, נקודת הכניסה וזמן החישוב מחדש הצפוי על פני התקופה ההיסטורית.
  • תקנון בדיקת הדוח — הרצת אמת מידה, סכומי בקרה לפי מדדים ורשימת פערים שנחשבים לשגיאה ולא לנורמה.
  • תבניות דיווח — פורמט הייצוא, הרכב השדות, התדירות וסדר העברת התוצאות לבקרת סיכונים ולהנהלה.
  • יומן שינויים במתודולוגיה — גרסת הקונפיגורציה לכל דוח, כדי שההשוואה בין תקופות תישאר תקינה.

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

מקרה בוחן: כיצד דוח הבקסטינג הפסיק לסטות מהמציאות

לפני תחילת העבודה המדדים חושבו בשלושה מקומות: מחברת מחקר, סקריפטים של ניהול סיכונים והתאמה של ה-back-office. הנחות שונות לגבי עמלות וסליפג' הניבו P&L שונה על אותן עסקאות, ו-Sharpe והשפל המקסימלי נבדלו בהתאם לשאלה של מי החישוב נלקח כבסיס.

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

הרכיבו מודול חישוב אחיד: מודל עסקה אחד, מערך הנחות קבוע אחד, וגרסת המודל מודפסת בכותרת הדוח לצד המדדים עצמם. את המתודולוגיה התאימו לדרישות GIPS — החישוב הפך לשחזורי: אותו קלט ואותה גרסת מודל נותנים את אותו Sharpe, את אותו שפל ואת אותו P&L אצל כל מהנדס בצוות.

מה שינו

מדד לפני אחרי
התאמה מול עסקאות בפועל ידנית, 2–3 ימים לשחרור אוטומטית, בכל לילה
פער בין הדוח למציאות 4–7% במדגם יומי פחות מ-1%
Sharpe ושפל שני חישובים בלתי תלויים מודול אחד, נוסחה אחת
דוחות לפי לוח זמנים לפי דרישה, חלק מהגיליונות הוחמצו יוצאים לפי לוח זמנים, ללא הרצות ידניות

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

מדוע השפל בדוח קטן יותר מאשר במסחר בפועל

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

אותן הנחות גם מנפחות את מקדם שארפ ואת שיעור העסקאות הרווחיות: ככל שמודל העלויות רך יותר, כך עקומת הרווח וההפסד נראית חלקה יותר.

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

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

ספקות טכניים לגבי חישוב המדדים והדיווח

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

להלן שאלות הנדסיות שעולות לרוב לפני תחילת העבודה.

מה עושים אם היסטוריית העסקאות חלקית או פגומה?

מאחדים את הנתונים ליומן אחד עם מפתח «מכשיר + רגע הביצוע + נפח», מקפלים כפילויות, מסמנים חסרים במפורש. אינטרוולים חסרים משלימים ממקור חלופי או מוציאים מהחלון — עם סימון בדוח, כדי שהמדדים לא ייראו מהימנים יותר מנתוני הקלט.

באיזו תדירות מחושב הדוח מחדש וכמה זה עולה?

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

אילו מדדים נחשבים שנויים במחלוקת וכיצד מסירים את אי-ההסכמה?

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

האם החישוב מתחבר למעגל מסחר שכבר פועל?

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

נדון במשימה ונחזור עם הערכה ותוכנית חישובים

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

  • מפרט המדדים: אילו גדלים אתם מחשבים (Sharpe, Sortino, שפל מקסימלי, P&L לפי עסקאות, שיעור הרווחיות), באיזו תדירות ולפי איזה חלון.
  • ייצוא נתונים היסטוריים: עסקאות וציטוטים כפי שהם, עם תיאור אזורי זמן, חסרים ואירועים תאגידיים.
  • כללי חשבונאות: עמלות, סליפג', מינוף, השקעה חוזרת, רגע קיבוע הכניסה והיציאה מהפוזיציה.
  • החישוב הנוכחי: סקריפט, מחברת או טבלה שבהם אתם משתמשים כעת — כדי שלא נשבור את הלוגיקה המוכרת, אלא נעביר אותה לצורה שחזורית.
  • דרישות לדיווח: פורמטי ייצוא, חתכים לפי אסטרטגיות, תקופות ומכשירים, האם נדרשת דקומפוזיציה לרכיב השוק ולרכיב הפעיל של התשואה.
  • תקנון בדיקה: אופקי הבקסט, האם נדרש חישוב מחדש נע לפי חלונות, דרישות לחזרתיות של התוצאה ולמי שקורא את הדוח.

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