אופטימיזציה בייסיאנית של פרמטרים במקום סריקה ידנית
כיוונון ידני של פרמטרים של אסטרטגיית מסחר נתקל בגודל מרחב החיפוש. שישה פרמטרים עם עשרה ערכים כל אחד — זה כבר מיליון צירופים, וכל אחד מהם דורש הרצה נפרדת על ההיסטוריה תוך התחשבות בעמלות ובהחלקה.
סריקה ברשת (grid search) עוברת ביסודיות על הרשת, אך הזמן מחושב לינארית לפי מספר הנקודות, ולכן בפועל מצמצמים את הטווחים ידנית — ואיתם חותכים גם אזורים שבהם נמצא צירוף יציב.
גרוע מכך: הסריקה אינה משתמשת במבנה התגובה. היא בוחנת באותה מידת פירוט גם רעש וגם אזורים מבטיחים, ובוחרת את התוצאה הטובה ביותר לפי מספר אחד — התשואה הסופית על חלון האימון.
כך נוצרת התאמת יתר (overfitting) של האסטרטגיה: הצירוף אידיאלי על הקטע שחלף ומתפרק ברגע שמשתנה משטר השוק — תנודתיות, נזילות, אופי התנועה. ככל שיש יותר פרמטרים, כך הסריקה נוטה יותר למצוא צירופי מקרים.
אופטימיזציה בייסיאנית ניגשת למשימה אחרת. היא בונה מודל תחליפי של משטח התגובה — בדרך כלל תהליך גאוסי — ולפי קריטריון השיפור הצפוי בוחרת את הנקודה הבאה: במקום כלשהו חוקרת אזור לא מוכר, ובמקום אחר מדייקת ליד המקסימומים שכבר נמצאו.
מספר ההרצות מצטמצם בסדרי גודל: במקום אלפי צירופים מספיקות מאות, ותקציב החישוב מופנה לא למעבר אחיד אלא לאזורים מבטיחים.
עבור מסחר זה חשוב גם משום שאפשר להציב כמטרה לא את שיא התשואה, אלא את החציון על פני כמה משטרים וחלונות — ואז אופטימיזציה בייסיאנית של פרמטרים בוררת צירופים עמידים בפני שינוי תנאים, ולא כאלה שהותאמו לקטע מוצלח אחד.
נפרט כיצד זה נסגר: כיצד מגדירים את מרחב הפרמטרים של האסטרטגיה, אילו הגבלות מציבים נגד התאמת יתר וכיצד בודקים את התוצאה מחוץ למדגם.
ההשפעה של חיפוש פרמטרים מנוהל: מהירות ועמידות
החיפוש מתכנס במאות הרצות, לא באלפים
אופטימיזציה בייסיאנית אינה עוברת על רשת ערכים, אלא בונה מודל תחליפי של משטח התגובה ובוחרת את הנקודה הבאה במקום שבו צפוי שיפור בהתחשב באי-ודאות. מחזור כיוונון הפרמטרים מצטמצם בסדר גודל: במקום אלפי הרצות של האסטרטגיה מספיקות מאות, והמחקר מסתכם בשעות. הצוות מספיק לבדוק יותר השערות על אותו נפח חישוב.
פונקציית המטרה קובעת מה נחשב לתוצאה טובה
את האיכות קובע לא מספר האיטרציות, אלא מה שאנחנו מייעלים: תשואה מתוקננת לפי ירידה (drawdown), עמידות בפני השהיית ביצוע, התנהגות על קטעים שונים של ההיסטוריה.
פונקציית מטרה מוגדרת במפורש של האסטרטגיה לא מאפשרת לאופטימיזטור לרדוף אחרי עקומה יפה על מרווח אחד, ומעבירה את העבודה מ"להתאים לעבר" ל"למצוא משטר שעומד בשינוי תנאים".
התאמת יתר הופכת לסוג נדיר של כשל
כיוונון ידני כמעט תמיד מניב צירופים אידיאליים על ההיסטוריה ומתפרקים על נתונים חדשים.
חיפוש בייסיאני פוסל פתרונות הרגישים לשינוי הקטן ביותר בסדרות הקלט, ולכן הירידה בהתאמת יתר נראית במספרים: חלקם של הצירופים שלא עברו בדיקה על תקופה מוחזקת יורד פי כמה, ועמידות אסטרטגיית המסחר הופכת לקריטריון סינון ולא לתקווה.
אופטימיזציה בייסיאנית או חיפוש ברשת: השוואת גישות
הבחירה בשיטת כיוונון הפרמטרים קובעת כמה הרצות של האסטרטגיה עולה התוצאה וכמה היא עמידה מחוץ לקטע האימון. סריקה מלאה נותנת כיסוי ממצה, אך עלויות החישוב גדלות כמכפלת מספר הצעדים בכל פרמטר: הוספתם פרמטר חמישי — זמן הכיוונון גדל פי כמה.
אופטימיזציה בייסיאנית, במקום סריקה, בונה מודל תחליפי של פונקציית המטרה ובוחרת את הנקודה הבאה לפי התועלת הצפויה. הרצות יקרות אינן מתבזבזות על אזורים חלשים מלכתחילה, ולכן דיוק דומה מושג במספר הרצות קטן יותר. הנה עם מה באמת משווים את הגישה הזו והיכן הגבול של כל שיטה.
עם מה משווים כיוונון בייסיאני
| שיטה | מתי מתאימה | מגבלות |
|---|---|---|
| סריקה מלאה ברשת | 2–3 פרמטרים, טווחים צרים, שחזוריות התוצאה | העלויות גדלות כמכפלת הצעדים בצירים; עם 5+ פרמטרים אינה מסתכמת בזמן סביר |
| חיפוש אקראי | פרמטרים רבים, חלקם משפיעים חלש על התוצאה | אין הבטחה לכיסוי האזור; התוצאה תלויה בזרע המחולל |
| כיוונון בייסיאני | הרצה בודדת יקרה, 4–10 פרמטרים, נדרש מינימום בדיקות | נדרשים גבולות תקינים ומטריקה; על פונקציה לא רציפה המודל נחלש |
| כיוונון אבולוציוני | פונקציית מטרה לא חלקה, הגבלות על צירופי פרמטרים | יותר הרצות מאשר בבייסיאני; אופרטור הסינון מוגדר בנפרד |
| כיוונון ידני על ידי מומחה | משימה חדשה, מעט נתונים, חשוב להבין מהר את התנהגות האסטרטגיה | אינה מתרחבת ואינה משוחזרת על ידי מומחה אחר |
בפועל משלבים בין השיטות: מעבר גס בחיפוש אקראי מתווה את האזור, כיוונון בייסיאני מדייק בתוכו, והעמידות נבדקת על קטע נתונים נדחה.
סדר העבודה: מהגדרת המטרה ועד מסירת התוצאות
אופטימיזציית פרמטרים אינה סריקת רשת, אלא רצף החלטות שבו מחיר הטעות עולה בכל צעד: פונקציית מטרה חלשה מניבה עקומה יפה על ההיסטוריה וקריסה בשוק החי. סדר העבודה זהה עבור אסטרטגיות קלאסיות ושילובים במסגרת בלוקצ'יין.
מהנתונים ועד לתקנון החישוב מחדש
- ניתוח האסטרטגיה והנתונים. קובעים את כללי הכניסה והיציאה, הרכב הסדרה, טיפול בחסרים. בודקים הטיית שרידות (survivorship bias) והחלפת משטרי שוק — אחרת החיפוש יכוון את עצמו לארטיפקטים של ההיסטוריה.
- פונקציית מטרה והגבלות. מגדירים מה ממקסמים: תשואה ליחידת סיכון או עמידות הירידה. ירידה, תדירות עסקאות ועלויות נכנסות לפונקציה כקנסות, ולא כניתוח בדיעבד.
- תרשים החיפוש. מגדירים גבולות וסוגי צירי הפרמטרים, צעד עיגול. אופטימיזציה בייסיאנית יוצאת ממודל תחליפי, לא מסריקת רשת — קובעים את מדגם הפתיחה ואת קריטריון העצירה.
- כיול המודלים. מכיילים את הגרעין ואת הערכת הרעש, את האיזון בין חקירה לדיוק. בפלט — כמה צירופי פרמטרים מתחרים, ולא שיא צר יחיד.
- תקופה נדחית, ולידציה ותרחישי לחץ. בודקים במקום שבו לא היה חיפוש: חלונות בלתי תלויים, חישוב מחדש מתגלגל, השוואה לחיפוש אקראי. לאחר מכן — הרצה על ירידה עמוקה, עלייה בעלויות ונזילות דלילה: צירופים לא עמידים נפסלים כאן.
- מסירת התוצאה. מוסרים קונפיגורציה עם ערכים קבועים, דוח עם מטריקות לפני ואחרי, יומן הרצות ותקנון חישוב מחדש — ומלמדים את הצוות לשחזר את החישוב.
מארז האספקה: קונפיגורציות, דוחות ותקנונים
בסיום העבודה נשאר אצל הלקוח לא צירוף מספרים מכוונן, אלא מעגל כיוונון פרמטרים בר-שחזור: ניתן לבדוק מחדש את התוצאה ולחזור עליה ללא מעורבות שלנו. להלן מה בדיוק עובר לצוות.
- תיעוד כיוונון הפרמטרים — הסוג והגבולות של כל פרמטר, הקשרים ביניהם, צירופים אסורים ומקור הטווחים.
- קונפיגורציית החיפוש — קבצי הרצה: גודל מדגם הפתיחה, מספר האיטרציות, המודל התחליפי, כלל העצירה; חזרה בפקודה אחת על אותם נתונים.
- פונקציית המטרה — מטריקה עם משקלים וקנסות על ירידה ומחזור, עם נימוק לכל רכיב.
- פרוטוקולי הבדיקות — חלוקת הנתונים לכיוונון ובקרה, תרשים חלונות לא חופפים, ספים שמתחתם התוצאה נחשבת לפסולה.
- דוחות עמידות — מפות פרמטרים שבהן מוערכים מישורים (plateau) ולא שיאים בודדים, טבלאות הידרדרות בין הכיוונון לבקרה, בדיקת רגישות לשינוי תנאי הפתיחה.
- תקנון אימון מחדש — טריגרים (החלפת משטר שוק, ירידת המטריקה מתחת לסף), תדירות וסדר קיבוע גרסה חדשה.
- העברת ידע לצוות — ניתוח על הרצות חיות, הוראות להוספת פרמטרים, רשימת בדיקה לפני העלאה, מצביעים לקוד ולנתונים.
המארז מיועד למהנדס שיפתח אותו חצי שנה לאחר המסירה — ואמור לקבל את אותה תוצאה שקיבלנו אנחנו.
דוגמה מהפרקטיקה: הפחתת הירידה והאצת הכיוונון
אלינו הגיע צוות שסוחר בזוגות מטבעות קריפטוגרפיים: בבדיקה האסטרטגיה נראתה עמידה, אך בחשבון אמיתי הירידה פרצה את המחושבת כמעט מיד לאחר ההפעלה. את הפרמטרים כיוונו בסריקה ברשת — בסביבות ארבעים אלף צירופים, והכול בלי הבנה כיצד הצירוף הנבחר יתנהג על נתונים שהכיוונון לא ראה.
לפני: סריקה ברשת
מחזור הכיוונון המלא ארך יותר מיממה וחצי, והבדיקה על תקופה נדחית הופעלה בסוף ממש ופסלה כ-80 אחוז מהצירופים. כלומר, כמעט יומיים של זמן מכונה הניבו אפשרות אחת או שתיים הראויות להפעלה, ועומק הירידה בחשבון אמיתי הגיע לשליש מהפקדון. כל תיקון בלוגיקה איפס את התוצאה והפעיל את הסריקה מחדש.
אחרי: בדיקה בתוך המחזור
החלפנו את הסריקה באופטימיזציה בייסיאנית — Optuna עם פונקציית מטרה שבה, מלבד התשואה, נקנסים הירידה ופיזור התוצאה בין החלונות. את הבדיקה על התקופה הנדחית הטמענו בתוך המחזור: צירוף שלא עובר אותה נפסל מיד, ולא בשלב הסופי, והאיטרציה הבאה נבנית כבר בהתחשב בפסילה הזו.
מחזור הכיוונון הצטמצם משלושים ושש שעות לשלוש-ארבע, חלקם של הצירופים שלא עברו בדיקה על נתונים חדשים ירד משמונים לעשרים אחוזים, ועומק הירידה בחשבון — משליש מהפקדון לשנים-עשר אחוזים.
השינוי המרכזי אינו במספרים: הפרמטרים שנמצאו הפסיקו להתפרק במעבר לתקופה הבאה, והתוצאה משתחזרת על נתונים שלא השתתפו בכיוונון.
מה לעשות אם האסטרטגיה כבר כווננה ידנית?
פרמטרים שנמצאו ידנית הם כבר השערה שנבדקה, ואין צורך לזרוק אותה. אך צירוף כזה נמצא כמעט תמיד על תקופה אחת ואין לו הערכת עמידות: לא ברור היכן מסתיימת החוקיות ומתחילה ההתאמה לעבר. לכן, כצעד ראשון, הקונפיגורציה הנוכחית מקובעת כאמת מידה שמולה מושווים כל הווריאציות הבאות.
הבדיקה נעשית על קטעים מוחזקים: הפרמטרים כווננו על קטע אחד, ונבדקים על אחר, שלא השתתף בכיוונון. במקביל בוחנים רגישות — הזזה של כל פרמטר בצעד אחד אינה אמורה להפיל את התוצאה. אם התנהגות האסטרטגיה נשמרת בהזזה קטנה, הצירוף משקף תכונה של השוק ולא רעש של נתונים מסוימים.
אבחון התאמת יתר נשען על פער בין הקטעים: תוצאה בטוחה על הקטע המכוונן עם כישלון על המוחזק — סימן ישיר להתאמה. סמן שני — אופטימום צר, כאשר הכול מחזיק בנקודה אחת במרחב ומתפרק בסמוך לה. שלישי — הידרדרות חדה בעת החלפת משטר שוק.
המעבר לתרשים מבוסס מודל מתחיל לא מאפס, אלא מהקונפיגורציה הנוכחית: היא מגדירה את מרכז אזור החיפוש ואת גבולות הערכים הסבירים. בהמשך Optuna בונה מודל מקורב של משטח התוצאה ומציעה את הנקודה הבאה במקום שבו צפוי שיפור, במקום סריקת רשת. בפלט — לא מספר אחד, אלא התפלגות: רואים אילו אזורים עמידים ואילו מחזיקים בצירוף מוצלח יחיד.
הגרסה העובדת נשארת במקביל פעילה. הפרמטרים החדשים נבדקים במקביל, וההחלפה — לפי כלל שנקבע מראש, למשל לאחר אישור על התקופה המוחזקת. הקונפיגורציות נשמרות עם גרסאות, ולכן החזרה לצירוף הקודם אורכת דקות ואינה דורשת כיוונון חוזר.
ספקות טכניים והתשובות להם
אופטימיזציה בייסיאנית משתלמת במקום שבו סריקה מלאה של רשת הפרמטרים כבר אינה נכנסת לתקציב הזמן, ונדרש צירוף עמיד ולא שיא מוצלח בודד. להלן השאלות שעולות לרוב לפני ההתחלה.
כמה נתונים היסטוריים דרושים?
ההיקף נחשב לפי מספר העסקאות הבלתי תלויות, ולא לפי אורך היומן: נקודת ייחוס — כמה מאות עסקאות לכל פרמטר נאמד, אחרת האופטימיזטור מתאים את עצמו לרעש. מעל זה משאירים קטע מוחזק ובודקים את הצירוף שנמצא בחלון מתגלגל.
איזו פונקציית מטרה למקסם?
תשואה ישירה — מטרה גרועה: האופטימיזטור נוטה להימורים גדולים ונדירים. לוקחים מטריקה מורכבת מתשואה מתוקננת לפי סיכון, עם קנסות על ירידה ועל מספר עסקאות קטן — ואז למעלה עולים צירופים שעומדים בהחלפת משטר.
האם אפשר לכייל פרמטרים על כמה כלים בבת אחת?
כן: פונקציית המטרה מצטברת לפי תיק, בדרך כלל עם תיקון לקורלציה בין הכלים — כך הסיכון להתאמה לנכס אחד קטן יותר. המחיר — כל הרצה עוקבת יקרה יותר, ולכן חלק מהמשימות פותרים לפי קבוצות עם בדיקה משותפת סופית.
באיזו תדירות לחזור על הכיוונון?
לא לפי היומן, אלא לפי אירועים: החלפת משטר תנודתיות, שבירת תלות היסטורית, ירידה מחוץ לטווח המצופה. בין לבין הפרמטרים קבועים — אופטימיזציה חוזרת "לשם הסדר" כמעט תמיד מחמירה את התוצאה.
מאיפה להתחיל: מה להכין לדיון במשימה
הערכה לאופטימיזציה בייסיאנית של פרמטרים נשענת על הנתונים שלכם, ולא על שיקולים כלליים: אותה אסטרטגיה בדיוק על היסטוריות שונות נתקלת בתקרת איכות שונה. כדי שהשיחה הראשונה תיגש ישר לעניין, די לשלוח את הדברים הבאים.
- את הלוגיקה של האסטרטגיה ואת הרשימה המלאה של הפרמטרים עם גבולות החיפוש — מה בדיוק מייעלים ובאילו תחומים.
- נתונים היסטוריים: כלים, טיימפריים, תקופה, חסרים בציטוטים, התחשבות בעמלות ובהחלקה.
- כיצד מכווננים את הפרמטרים כעת: כיוונון ידני, סריקה מלאה, חיפוש אקראי — ומה בתוצאה אינו מספק.
- מטריקת היעד: תשואה, ירידה מקסימלית, יחס רווח להפסד או עמידות על קטעים מחוץ למדגם.
- הגבלות: מינוף מותר, מגבלות על פוזיציה, כללי ניהול סיכונים.
- היכן מחושבות ההרצות, כמה זמן אורכת הרצה אחת והאם יש מגבלות משאבים.
בהמשך הסדר פשוט: דנים במשימה ומחדדים את קריטריוני האיכות, לומדים את החומרים ומשחזרים את התוצאה הנוכחית, ולאחר מכן חוזרים עם הערכה ותוכנית עבודה — עם תרשים חלוקת הנתונים, מספר ההרצות ונקודות הבקרה. מוכנים להתחיל מתיאור המשימה ונתוני המקור הקיימים לניתוח — את השאר נחדד בשיחה.







