מדוע דירוג ידני של אסטרטגיות מסחר אינו ניתן להרחבה
סינון ידני של אסטרטגיות נשען בדרך כלל על אנליסט אחד: הוא מאחד את תוצאות ההרצות על נתונים היסטוריים לטבלה משותפת, ממיין לפי תשואה ומחליט ידנית מה ממשיך הלאה. כל עוד יש עשרות השערות, זה נסבל.
כאשר מדובר במאות הרצות, צוואר הבקבוק בסינון האסטרטגיות הופך למגבלה העיקרית: התור נמתח לשבועות, וההכרעה תלויה במי ובאיזה סדר הגיע למועמד.
בעיה נפרדת היא חוסר ההשוואה בין הקריטריונים. המדדים מחושבים על פני תקופות שונות, עם עלויות וסינונים שונים, חלק מנתוני השוק נמשכים ידנית, והחתכים חלוקים בזמן. לא האסטרטגיות מושוות זו לזו אלא תנאי הבדיקות שלהן: מועמד חזק נפסל בגלל רעש בנתונים, וחלש עובר כי נקלע לחלון מוצלח.
האובדן השלישי הוא היסטוריית ההחלטות. דירוג אסטרטגיות מסחר חי בהתכתבויות ובקבצים אישיים: סיבת הדחייה אינה מתועדת, כללי הסינון אינם מנוהלים בגרסאות, והחזרתיות אינה נבדקת.
כעבור חודש איש לא יוכל להשיב מדוע אסטרטגיה עם נתונים דומים אושרה ואחרת לא — והרחבת סינון ההשערות נתקלת שוב באדם אחד.
התוצאה צפויה: מהירות הסינון גדלה לאט יותר ממספר ההשערות, ומחיר הטעות הוא פוזיציה תפעולית שנבנתה על מועמד שהותאם יתר על המידה. נבחן כיצד סוגרים זאת: היכן להציב קריטריונים פורמליים, כיצד להביא את המקורות לחתך אחיד ומדוע ההכרעה חייבת להיות ניתנת לשחזור.
האפקט מההטמעה: מהירות הסינון ויציבות התוצאה
סינון ידני של מועמדים נתקל בקיר: כדי להשוות כמה עשרות מערכי כללים, האנליסט מריץ אותם בזה אחר זה, מאחד את המדדים ידנית לטבלה וקובע את המשקלים לפי העין.
מחזור אחד נמשך שבועות, ותוצאת ההרצה הבאה אינה תואמת את הקודמת — המועמד עובר או נפסל בגלל שינוי בסדר הבדיקה, ולא בגלל איכות האסטרטגיה.
מערכת הדירוג מחשבת את כל המועמדים בהרצה באצווה אחת וממיינת לפי ציון מסכם. מהירות סינון המועמדים מתקצרת משבועות לשעות, ושיעור הווריאנטים החלשים הנפסלים אוטומטית לפי סף מגיע לתשעה מתוך עשרה — לבדיקה ידנית מגיעים בודדים, ועליהם מספיק הזמן.
יכולת השחזור של תוצאות הסינון נובעת מניהול גרסאות של מערכי הכללים: ההרצה מקושרת לגרסת המערך, לחתך הנתונים ולמשקלים המעוגנים. הרצה חוזרת על אותו חתך מפיקה רשימה מדורגת זהה, ולכן הוויכוח «מדוע אסטרטגיה זו גבוהה יותר» נפתר בהשוואת שתי גרסאות ולא בניתוח לוגים. יומן ההרצות מנוהל ב-MLflow.
הפחתת ההתראות הכוזבות נובעת מהוויתור על כיוונון ידני של המשקלים: נעלם סוג שגיאות של מועמדים שהותאמו יתר על המידה, הנראים טוב על קטע קצר ומתפרקים בקטע הבא. המשקלים מחושבים מהרצות היסטוריות עם בדיקה על תקופה מושהית, ולכן אסטרטגיה כזו מקבלת ציון נמוך עוד לפני הכניסה לתיק.
התוצאה היא קו ייצור צפוי: הרצה, פסילה אוטומטית, בדיקת השארית. מהירות הסינון ויציבות התוצאה הופכים לפרמטרים של כל הרצה, ואינם תלויים במי שאחד את הטבלה.
מצבי הפעולה של המערכת: אצווה, זרימה והיברידי
את סכמת החישוב בוחרים לפי שני פרמטרים: באיזו תדירות נדרש חישוב מחדש של דירוג אסטרטגיות המסחר, וכמה טרייה צריכה להיות ההערכה עד לרגע ההחלטה. מכך תלוי אם אנו מחשבים את הדירוג עם סגירת התקופה, מעדכנים אותו עם הגעת הנתונים, או משלבים את שתי הגישות.
חישוב מחדש באצווה הוא בר-שחזור: קלט זהה מניב דירוג זהה, כל הערכה ניתנת להסבר ולחזרה לאחור. עיבוד זרימה של נתוני השוק מקצר את ההשהיה בין שינוי השוק לעדכון מצב האסטרטגיה, אך חלק מהחישובים תלוי בסדר הגעת האירועים, וקשה יותר לשחזר את התוצאה הקודמת.
סכמת חישוב היברידית מייתרת את הסתירה הזו: החישוב מחדש הכבד מתבצע לפי לוח זמנים, והזרימה מוסיפה רק תיקונים מהירים.
| מצב | מתי מתאים | מגבלות |
|---|---|---|
| חישוב מחדש באצווה | החלטות תקופתיות, חשובים יותר ההסבר והחזרתיות של ההערכה | הדירוג מתיישן לקראת סוף המרווח, עומסי שיא על מעגל החישוב |
| עיבוד זרימה | ההחלטה מתקבלת על תנועת השוק, ההשהיה קריטית | קשה יותר לשחזר את התוצאה הקודמת, דרישות גבוהות יותר לבקרת איכות הנתונים ולניטור |
| סכמה היברידית | נדרשים גם טריות וגם בסיס יציב לדיווח ולבדיקת מקרים שנויים במחלוקת | שני מעגלים: יקר יותר בפיתוח ובתחזוקה, נדרשים תיאום מצבים ובדיקות התכנסות |
מגבלות המצבים מתגלות לא מיד, אלא עם גידול במספר האסטרטגיות ומקורות הנתונים — ולכן את המצב מגדירים בשלב התכנון, ולא משנים בדיעבד. אנו מתארים את שני המעגלים ואת כללי התיאום ביניהם מראש: אז המעבר מחישוב מחדש באצווה להיברידי הופך לכיוונון, ולא לכתיבה מחדש של המודל.
שלבי ההטמעה: מביקורת הנתונים ועד למסירה לתפעול
דירוג אסטרטגיות מסחר נשבר לא במודל אלא בקלט: חוסרים בקוטיזציות, טיימפריימים שונים ומכשירים שנמחקו מהמסחר מניבים תוצאה יפה שאינה ניתנת לשחזור. לכן השלבים מתקדמים בסדר קפדני — אין עוברים לחישובים עד שהשכבה הקודמת אושרה.
- ביקורת נתוני שוק. משווים מקורות, עומק ההיסטוריה ושלמות המכשירים, מסמנים פערי סשנים, ספליטים ומחיקות מהמסחר — אחרת קריטריוני הסינון מוטים לניירות ששרדו.
- קריטריוני הסינון. קובעים לפי מה מדרגים: תשואה מתוקננת לסיכון, עמידות בירידה, עלויות מחזור; כל קריטריון מקבל משקל וכלל חישוב.
- סכמת המאפיינים. מתארים מאפיינים מהמחירים, הנפחים והתנודתיות, את חלונותיהם והנרמול שלהם — כך התוצאה ניתנת להסבר, ולא מושגת בכוח על ידי בחינת וריאנטים.
- מעגלי החישוב. מפרידים בין אחסון הטורים לשכבת החישוב: אגרגטים וחתכי טיקים יושבים ב-ClickHouse, וחישוב מחדש לאחר עריכת המאפיינים אורך דקות ולא לילה.
- בדיקה על נתונים היסטוריים. מריצים את האסטרטגיות על תקופה מושהית, בודקים את יציבות הדירוגים לשינוי חלון ולעמלות; אלו שמאבדים מקום בעת הזזה אינם נכנסים לדירוג.
- קבלת המערכת. יחד עם הצוות שלכם משווים את הדירוגים על מדגם בקרה, מנתחים אי-התאמות ומקבעים את גרסת המודל.
- מסירה לתפעול. מעבירים קונפיגורציות, תקנון חישוב מחדש, ניטור איכות הנתונים והדרכה לאנליסטים שלכם.
קריטריון המוכנות הוא אחד: אותו מערך נתונים ופרמטרים מניב אותו דירוג, וירידת איכות הקוטיזציות נראית בניטור לפני שהיא נראית בתוצאות המסחר.
ערכת האספקה: קונפיגורציות, סכמות מאפיינים ותקנונים
המזמין מקבל לא דוח מסכם אלא מעגל עובד: מערך של קונפיגורציות, תיאורים ותקנונים, שלפיהם הצוות שלכם מנהל בעצמו את דירוג אסטרטגיות המסחר, בלי לפנות אלינו בכל עריכה. כל ארטיפקט מקושר למקומו בתהליך — מהכנת הנתונים ועד לניתוח אי-התאמות.
- קונפיגורציות המערכת — קבצי פרמטרים: משקלי הגורמים, אופקים ותדירות חישוב מחדש, ספי פסילה, כללי טיפול בחוסרים. נערכים בלי בנייה מחדש, כל גרסה נשמרת, והחזרה לקודמת היא פקודה אחת.
- סכמת המאפיינים — עבור כל מדד מצוין מאיזה מקור הוא מחושב, איזה חלון אגרגציה משמש, כיצד מטופלים חריגים ומדוע מערך המאפיינים הוא דווקא כזה.
- מדיניויות גישה — תפקידי האנליסט, הסוחר ובקרת הסיכונים, ההרשאה לשנות משקלים וספים, יומן שינויים עם המבצע והסיבה.
- תקנון חישוב מחדש — לוח הזמנים של ההרצות, סדר השלבים, נקודות בקרת האיכות והפעולות במקרה של אי-התאמה בין התוצאה לבדיקה על נתונים היסטוריים.
- מדדי איכות הדירוג — מה נחשב ליציבות, אילו סטיות אנו מכירים בהידרדרות ובאילו תנאים מופעל חישוב מחדש של המשקלים.
- תיעוד — הוראות פריסה, תיאור הקונפיגורציות וסכמת הנתונים, ניתוח תקלות אופייניות וסדר הפעולות.
- מסירה לצוות — ניתוח המעגל עם המהנדסים והאנליסטים שלכם, ומענה לשאלות על כל ארטיפקט.
דוגמה מהפרקטיקה: כיצד השתנה הסינון לאחר ההטמעה
לפני ההטמעה, סינון אסטרטגיות המסחר נשען על בדיקה ידנית: שלושה אנליסטים הריצו דרך Backtrader כארבעים השערות בשבוע ודחו מועמדים לפי אינטואיציה, בהצלבה עם מדדים מפוזרים בטבלאות.
מחזור הסינון המלא נמשך שבועיים-שלושה, וההחלטות עצמן כמעט לא תועדו — לא היה במה להסביר דחייה כעבור חודש או לשחזר מסקנה של אחר.
מה שינינו
תיארנו כל השערה במערך מאפיינים: התנהגות התשואה במשטרי שוק שונים, רגישות להזזת נתוני הקלט, מתאם עם אסטרטגיות שכבר פועלות, ויציבות לאחר החלפת תקופת הבדיקה.
מודל הדירוג בונה רשימה מסודרת עם הערכת ביטחון, והאנליסט בוחן את חמש-עשרה עד עשרים הפוזיציות העליונות במקום את כל הזרם — העבודה הידנית עברה למקום שבו באמת נדרשת החלטה אנושית.
מה קרה בפועל
שיעור המועמדים החלשים שנפסלו אוטומטית לפני הבדיקה הידנית עומד על כ-80%, ומחזור הסינון התקצר משבועיים-שלושה ליומיים: ההרצה והדירוג מתבצעים בלילה, ובבוקר הצוות מקבל רשימה מוכנה עם הנמקה לכל מאפיין.
יציבות התוצאה עלתה באופן בולט יותר מהמהירות: שיעור האסטרטגיות ששמרו על נתונים מחוץ לחלון האימון עלה מכ-15% לכ-40%. הסיבה אינה במודל עצמו, אלא בכך שלפנים השערות חלשות נבדלו מחזקות רק לאורך דרך ארוכה — עכשיו הן נפסלות לפני שמשקיעים בהן זמן פיתוח ותחזוקה.
במה נבדל הדירוג מהמיון הידני?
מיון ידני עובד כל עוד יש כעשרה מועמדים: המומחה מחזיק בראשו את התשואה, הירידה וההיגיון הכללי של הגישה, ובוחר לפי ניסיון.
כאשר מדובר במאתיים וריאנטים, הסדר מתחיל להיות תלוי במי שטוען בצורה משכנעת יותר, ולא באיכות האסטרטגיה: אותו מערך, בניתוח חוזר, מסתדר אחרת, כי הקריטריונים אינם מעוגנים בשום מקום.
דירוג פורמלי של אסטרטגיות מסחר מחשב את משקל המועמד כסכום משוקלל של מדדים מנורמלים. מלבד התשואה, להערכה נכנסים גם הירידה, יציבות התוצאה במשטרי שוק שונים, עלויות לעסקה, מחזור והמתאם עם אסטרטגיות שכבר פועלות — בלי זה לראש הדירוג מגיעות עשר העתקות של אותה גישה, והפיזור אובד.
המשקלים והסדרי העדיפויות מוצהרים לפני הצפייה בתוצאות. במצב הידני הקריטריונים מותאמים שלא מרצון לאסטרטגיה שכבר מוצאת חן בעיני הבודק, ובמצב הפורמלי הסדר מחושב מכללים שנקבעו מראש, ועריכת המשקל נראית לכל הצוות, ואינה נשארת בראשו של מומחה אחד. זה מאפשר לחשב מחדש את הדירוג באותה שיטה על חתך נתונים חדש.
יכולת ההסבר של ההחלטות נובעת מתרומתו של כל מדד לציון המסכם: רואים שהמועמד במקום החמישי נמצא שם בגלל ירידה עמוקה, ולא בגלל תשואה חלשה. הוויכוח עובר מ«נראה לי שזו טובה יותר» ל«האם מעלים את משקל היציבות» — נדון משקל אחד במקום מאתיים מועמדים. ההחלטה נשארת ניתנת לשחזור לפי יומן ההרצה, וניתן לבדוק אותה מחדש, ולא לשחזר אותה מהזיכרון.
ספקות טכניים: נתונים, משטרי שוק, יכולת הסבר
דירוג אסטרטגיות נשבר לא במודל, אלא בנתונים ובסימנים לכך שהשוק החליף אופי. להלן ארבע שאלות שעולות לרוב בדיונים טכניים.
ההיסטוריה קצרה — האם בכלל אפשר לאמן מודל?
את המחסור מכסים לא בהארכת האורך, אלא במבנה. חותכים את ההיסטוריה לחלונות בלתי תלויים, מאמנים על הרחוקים, בודקים על אלה שאחריהם, ומחשבים את מדד הדירוג בנפרד לכל חלון. אם הפיזור בין החלונות גדול — האות חלש, וזה נראה עוד לפני העלאת המערכת לפעולה.
בנוסף מרחיבים את מערך המאפיינים: לא רק מחיר, אלא גם נזילות, תנודתיות, עונתיות, ולכן כל תצפית מתחילה לשאת יותר מידע.
כיצד המערכת שורדת החלפת משטר שוק?
את המשטר מתארים בגדלים נצפים מפורשים — מגמה מול דשדוש, תנודתיות רחבה או צרה, יציבות הספרד. הדירוג נבנה בנפרד בתוך כל משטר, ולא בנוסחה אוניברסלית אחת. כאשר הסטטיסטיקה של המשטר יוצאת מהגבולות הרגילים, המשקלים מחושבים מחדש וחלק ההון לאסטרטגיה יורד אוטומטית, בלי התערבות ידנית.
מדוע אסטרטגיה יצאה גבוה יותר — האם זה מוסבר?
עבור כל פוזיציה ברשימה אנו שומרים את תרומת המאפיינים לציון המסכם. המזמין רואה מה בדיוק העלה את האסטרטגיה ומה מגביל אותה, ולא משפט מופשט כמו «המודל חישב». אותו הדבר משמש כלי בקרה: אם משקל המאפיין סוטה מההיגיון הבריא, אנו מגלים זאת בשלב הבדיקה, ולא אחרי הירידה.
האם חייבים להפעיל הכול מיד?
לא, מתקדמים בשלבים. תחילה מעגל לא מקוון: נתונים, מאפיינים, דירוג, דוחות יציבות. לאחר מכן — עבודה על נתונים היסטוריים במצב הקרוב לחי, עם השוואה יומית בין התחזית למעשה. ורק לאחר מכן — חלק מוגבל מההון והרחבה הדרגתית של הרשימה והנפח, לפי קריטריוני עצירה שנקבעו מראש.
מהיכן להתחיל: אילו נתונים והרשאות יידרשו
כדי שההכנה לדיון לא תימתח על פני שבועות של התכתבות, אנו זקוקים למערך קונקרטי של נתוני קלט, הרשאות ומגבלות. כמה מדויק יותר תתארו כיצד מתקבלות כעת ההחלטות בנוגע לאסטרטגיות, כך נניח פחות הנחות בדירוג ותוכנית העבודה תהיה ריאלית יותר.
- טורים היסטוריים: עסקאות, קוטיזציות ונתוני נזילות לתקופה המכסה משטרי תנודתיות שונים;
- קטלוג אסטרטגיות: כללי כניסה ויציאה, פרמטרי סיכון, גרסה ומחבר של כל אחת;
- יומני ביצוע בפועל: מחירים אמיתיים, החלקה, סירובים, השהיות;
- הרשאות לנתונים: ייצוא או קריאה מהמאגר, גישה למעגל המסחר במצב בדיקה בלי הרשאת משיכת כספים;
- מגבלות: אילו מדדים ואופקים נחשבים קבילים, ומה אסור להביא בחשבון בדירוג;
- תקנון: מי מקבל את ההחלטה בעקבות הדירוג והאם נדרשת יכולת הסבר לכל אסטרטגיה;
- אחראים מצדכם: בעל הנתונים ומי שיאשר את נכונות הטורים ההיסטוריים.
חוסרים בנתונים אינם חוסמים את ההתחלה — חלקם נסגרים בשלב ההכנה, ואנו נאמר בפה מלא היכן בדיוק. לאחר מכן מרכיבים מעגל פיילוט: מריצים את דירוג אסטרטגיות המסחר על ההיסטוריה שלכם, משווים את הסדר להחלטות שכבר קיבלתם, ומראים היכן המודל חולק על הפרקטיקה הנוכחית. תארו את המשימה ושלחו את מה שיש — נחזור עם הערכה, הרכב השלבים ותוכנית העבודה.







