מסחר עם SAC: מדוע הסוכן מאבד יציבות על נתונים חדשים
סוכן שאומן לפי SAC מציג לא פעם עקומה חלקה על נתונים היסטוריים — ומאבד אותה בשבועות הראשונים של מסחר אמיתי. הבעיה אינה בארכיטקטורה עצמה: האלגוריתם עם ויסות אנטרופי מיועד לחקור את הסביבה, אך באימון סוכן מסחר הסביבה נשארת קבועה — תקופה אחת, קבוצה אחת של משטרי תנודתיות.
כאשר מתרחש שינוי במשטר השוק, התפלגות התשואות שעליה נבנתה המדיניות מפסיקה להתאים לזו הנוכחית. הסוכן ממשיך לבחור פעולות אופטימליות עבור העבר: חלק העסקאות שבהן הכניסה מוצדקת רק לפי ההיגיון של התקופה הישנה גדל, ואסטרטגיה לא יציבה הופכת לשרשרת של ירידות בסוכן.
הגרוע מכל הוא שהמדיניות אומנה על טווח מצבים צר ומחוצה לו היא מתנהגת כמעט באקראי — ובדיוק שם עובר המסחר האמיתי.
הסיבה השנייה — מתודולוגיית ההערכה. אם האיכות נמדדת בהרצה אחת על קטע נדחה, המודל שיתאים את עצמו אליו טוב יותר יקבל ציון גבוה יותר, ולא זה שיציב. מספר אפיזודות אימון בלתי תלויות עם תנאי התחלה שונים ובדיקה על משטרים שונים חושפים זאת לפני שהפער ייראה בחשבון אמיתי.
מסחר עם SAC יציב בדיוק במידה שבה הסביבה באימון מגוונת. נתונים המכסים מגמה, טווח צד והתפרצויות תנודתיות, קנס על שינוי חד בעמדה והגבלת סיכון מפורשת מניבים מדיניות שאינה מתפרקת בעת החלפת משטר. נבחן כיצד זה נסגר בהגדרת המשימה ובאימון.
ניהול עמדה רציף: מה זה משנה לאסטרטגיה
סוכן עם ניהול עמדה רציף מפיק לא אות «כניסה/יציאה», אלא את חלק ההון בכלי. הוא משתנה בהדרגה, בעקבות ביטחון המודל, ולכן אין קרע בין «בשוק» ל«מחוץ לשוק» — ובדיוק עליו בדרך כלל הולך לאיבוד ניהול הסיכון. זוהי דינמיקה שונה מהותית בהשוואה לאותות בדידים.
הקטנת הירידה היא תוצאה של כך שגודל העמדה נחתך לפני שסטופ הגנה היה מופעל. אנו מודדים את משרעת הירידה על חלון מחליק ובוחנים את ההתנהגות בקטעים של תנועות חדות: עומק הירידה מצטמצם, וההתאוששות מתרחשת ללא התערבות ידנית.
יציבות האסטרטגיה בפני החלפת משטר נשענת על ויסות אנטרופי — הבסיס של Soft Actor-Critic. הסוכן ממשיך לחקור ואינו נתקע בהתנהגות אחת כאשר התנודתיות והמתאמים בין הכלים משתנים. אנו בודקים זאת על משטרים שלא היו באימון: חשוב לא האיכות הממוצעת, אלא ההתנהגות בגבולות.
יכולת שחזור של האימון — מעגל עבודה נפרד. אנו מקבעים את סדר האפיזודות, את הרכב וגרסת הנתונים ההיסטוריים, את הקונפיגורציה ואת זרע המחולל: הרצה חוזרת מניבה את אותה קבוצת פרמטרים של המודל, ולא «בערך אותה». אז בודקים שינויים אחד-אחד וניתן להסביר את התוצאה, במקום לאמן מחדש בעיוורון.
בנפרד אנו מנטרלים סוג תקלות שנראה לעיתים רחוקות בדוחות הסופיים: פער מחיר בפתיחה וכשל נזילות. העמדה מוקטנת לפני שהאירוע מתממש, ולכן הירידה נשארת בגבולות שהוטמעו באימון.
השוואה בין גישות לאימון אסטרטגיית מסחר
את הגישה בוחרים לפי האות שבאמת מבדיל בין עסקאות רווחיות לעסקאות מפסידות, ולא לפי ה«עוצמה» של האלגוריתם. אם התגובה חיה בגודל העמדה — נדרשת הגדרת פעולות רציפה; אם ההחלטה מצטמצמת לכניסה, יציאה או השהיה — הבדידה מתאמנת מהר יותר וביציבות רבה יותר. להלן השוואה מעשית שלפיה אנו בוחרים מעגל עבור כלי ואופק ספציפיים.
| אפשרות | מתי מתאימה | מגבלות |
|---|---|---|
| פעולות רציפות (SAC) | גודל העמדה הוא חלק מהאסטרטגיה, קיים מודל נזילות וסליפג' | רגיש לרעש ולעיכובי ביצוע, מתאמן זמן רב יותר, תלוי בצורת התגמול |
| אותות בדידים | ההחלטה בינארית: כניסה, יציאה או השהיה | אין ניהול סיכון דרך נפח, כניסות שווא רבות בטווח צד |
| אימון על תיוג עסקאות | קיימת היסטוריית עסקאות עם הערכת איכות | אינו מועבר להחלפת משטר שוק, יורש הטיית תיוג |
| חוקים והיוריסטיקות | נדרשים שקיפות, יכולת שחזור וביקורת החלטות | אינם מסתגלים לתנודתיות חדשה, דורשים בחינה ידנית |
| היברידי | החוקים מגדירים מסגרת סיכון, הסוכן מנהל את העמדה בתוכה | בדיקה מורכבת יותר: נבדקים גם החוקים וגם התנהגות הסוכן |
את התאימות בודקים לפני האימון: כיצד הגישה משתלבת בביצוע הנוכחי, בעמלות ובעיכובים, ומה קורה בעת כשל של המודל. תבנית היברידית מעניקה בדרך כלל התחלה מבוקרת — החוקים אינם מאפשרים לסוכן לחרוג מהמגבלות בזמן שהאסטרטגיה צוברת סטטיסטיקה. בהמשך נבחן כיצד מכל זה נבנה מעגל עבודה.
שלבי העבודה: מהגדרת המשימה ועד מסירת הסוכן
כל שלב בהטמעת הסוכן מסתיים בארטיפקט שניתן לבדוק: תיאור המדד, מערך נתונים מוכן, קונפיגורציית הסביבה, פרוטוקול בדיקה. את הסדר אין משנים — אם מדלגים על הכנת הנתונים או על הבדיקה בקטע נדחה, איכות הסוכן תישען על הרצה מוצלחת, ולא על תוצאה ניתנת לשחזור.
- ניתוח המשימה והנתונים. מדייקים את הכלים, אופק החזקת העמדה, העלויות ומגבלות הנזילות; מקבעים את המדד שלפיו נחשב את התוצאה.
- הכנת נתוני השוק. מאחדים טיימפריימים, מטפלים בחסרים ובחריגים, מחלקים את ההיסטוריה לאימון, מדגם בדיקה ותקופה נדחית — בלי להעביר את העתיד לעבר.
- הגדרת סביבת האימון. מתארים את מצב השוק ואת הפעולות המותרות של הסוכן, מגדירים פונקציית תגמול עם תיקון לסיכון ולעלויות — על בסיס זה SAC לומד לנהל עמדה ברציפות, ולא לבחור אותות.
- אימון ובחירת פרמטרים. מספר הרצות עם הגדרות שונות, בקרת אימון-יתר תחת משטר שוק אחד, בחירת קונפיגורציות יציבות.
- בדיקה בתקופה נדחית. הרצה על נתונים שהסוכן לא ראה, תוך התחשבות בעמלות ובסליפג'; משווים לקו הבסיס ובוחנים את ההתנהגות בשוק רגוע ובשוק תנודתי.
- הכנה להפעלה ומסירת הפתרון. מגבלות על עמדה ועל ירידה, בלימה אוטומטית, חיבור למעגל הברוקרז', ולאחר מכן קוד, קונפיגורציות, תיעוד ותקנון אימון-מחדש עם סדר חזרה לאחור.
מסירת הפתרון: קוד האימון, קונפיגורציות, תקנונים
בסיום, הפרויקט נסגר לא בהדגמה, אלא בחבילה שלפיה הצוות שלכם יכול לאמן את הסוכן מחדש, לבדוק כל החלטה שלו ולעצור בכל רגע. כל מה שעשינו במהלך פיתוח סוכן SAC נמסר בקוד מקור, בקונפיגורציות ובתקנונים כתובים — בלי הסכמות בעל-פה שנעלמות יחד עם הקבלן.
- קוד האימון וסקריפטים להפעלה: הרצה ניתנת לשחזור על מכונה נקייה — מהכנת הנתונים ועד שמירת המשקולות.
- קונפיגורציות של הסביבה והתגמול: מרחב המצבים והפעולות, עמלות, סליפג', קנסות על סיכון. משנים פרמטר — רואים כיצד משתנה התנהגות הסוכן.
- יומן ניסויים: הרצות עם היפר-פרמטרים, תשואה, ירידה, זרע המחולל וקישור לארטיפקט — הקונפיגורציה הטובה ביותר משוחזרת במדויק.
- כללי בקרת סיכון: מגבלות על עמדה ועל הפסד יומי, תנאי עצירה אוטומטית, נקודת וטו ידנית.
- תקנון אימון-מחדש: טריגרים (סחיפת נתונים, הידרדרות מדדים), חלון היסטוריה, סדר ולידציה והוצאת גרסה חדשה.
- תיעוד הסוכן: מאפיינים, סכימת יישום המודל, נקודות לוגינג, ניתוח תקלות אופייניות.
- הנחיות לליווי ולחזרה לאחור: חזרה לארטיפקט הקודם והפעלת הסוכן במצב צל.
- בדיקות קבלה: הרצה בתקופה נדחית והשוואה לאסטרטגיית ייחוס — קריטריוני הקבלה נקבעים לפני המסירה.
מקרה בוחן: התנהגות האסטרטגיה לפני ואחרי עיבוד מחדש של הסוכן
סוכן SAC כבר סחר בסל של כלים נזילים בבורסת מוסקבה, אך התוצאה נשענה על משטר שוק אחד.
פונקציית התגמול התחשבה רק בתשואת הצעד, ולכן הסוכן צבר סיכון ברצון, בקטעים מגמתיים נראה משכנע, ובטווח צד מתמשך החזיר את שנצבר: הירידה של האסטרטגיה הגיעה לשליש מההון, והסדרות המפסידות — עד 13-14 עסקאות ברצף.
מה עובד מחדש
את הארכיטקטורה השארנו, שינינו את מה שמעצב את ההתנהגות. לתגמול הוספנו קנס על ירידה ואיבר המקשר בין תשואה לתנודתיות — הסוכן החל להתייחס לסיכון כחלק מהתוצאה, ולא כתופעת לוואי.
לאימון הוספנו תרחישים של משטרים שונים עם עדיפות לנדירים, הגבלנו את גודל העמדה לפי התנודתיות הנוכחית ואסרנו כניסות בטווח צד ללא אישור.
לאחר העיבוד מחדש, הירידה הצטמצמה מ-34% ל-11%, שיעור הסדרות המפסידות — מ-47% ל-22%, והיחס בין תשואה לסיכון גדל בערך פי שניים. מספר העסקאות ירד בשליש: פחות מחזור — פחות עלויות ופחות סיבות לטעות, והתוצאה באותה תקופה לא נפגעה.
את היציבות בדקנו בנפרד — על נתונים שלא השתתפו באימון, עם החלפת משטר ממגמה לטווח צד ובחזרה. הסוכן החל להתהפך לעיתים רחוקות יותר על רעש ולהחזיק את העמדה זמן רב יותר לכיוונו, ופיזור התוצאות בין המשטרים הצטמצם — לשם כך נעשה העיבוד מחדש.
במה שונה ניהול רציף מבדיד
ניהול רציף — הסוכן בכל צעד קובע את חלק העמדה: 0.4, 0, מינוס 0.7. אותות בדידים — קבוצה סופית של אירועים: להיכנס, לצאת, להחזיק. מכאן הפער הראשון — רגישות לעיכוב ביצוע: המעגל הרציף מחשב מחדש את היעד ללא הרף, וציטוט מיושן הופך לאי-התאמה בין העמדה הרצויה לזו בפועל.
התבנית הבדידה סולחת לעיכוב — האות חי עד לאירוע הבא, ולא עד לתצפית הבאה. המחיר לכך — גסות הניהול: הסוכן אינו יודע להפחית סיכון באופן חלקי, ובתנועה לא חיובית נשארת או עמדה מלאה או יציאה מלאה.
גם תדירות הארגון מחדש שונה: המדיניות הרציפה משנה את התיק כמעט בכל צעד, והעמלה הופכת לחלק מפונקציית התגמול, ולא לגורם חיצוני.
| אפשרות | מתי מתאימה | מגבלות ניהול |
|---|---|---|
| פעולות רציפות | כלי נזיל, זרם ציטוטים אחיד | רגישות לעיכוב ולסליפג', רעש באות התגמול |
| אותות בדידים | כניסות נדירות, ספים רחבים, עסקה יקרה | אין סיכון חלקי, הרווח הולך לאיבוד בהתהפכויות |
| גישה היברידית | טריגר בדיד קובע את המשטר, המדיניות — את גודל העמדה | קונפליקט בין החוקים למדיניות בעת החלפת משטר |
הגישה ההיברידית מחלקת תפקידים: שכבת החוקים מחליטה אם לסחור בכלל, והמדיניות הרציפה — עד כמה לעומק. הדרישות לנתונים גבוהות יותר — נדרש זרם תצפיות אחיד ללא חסרים, אחרת בקרעים המדיניות מתנהגת באופן בלתי צפוי.
במסחר עם SAC בדרך כלל בונים מעגל רציף: האלגוריתם עובד עם התפלגות פעולות ומטיל קנס על ביטחון יתר, מה שמעניק עקומת תשואה חלקה יותר, והספרייה Stable-Baselines3 סוגרת את התשתית הבסיסית של האימון.
מגבלות הגישה וספקות טכניים
ספקות לגבי למידה עם חיזוק עולים לא באב-טיפוס, אלא כאשר הסוכן יוצא לנתונים אמיתיים ולפקודות אמיתיות. להלן מה שהמהנדסים בודקים ראשון.
האם ההיסטוריה מספיקה לאימון?
SAC לומד על צירופים של מצב — פעולה — תגמול, ואיכות הנתונים כאן חשובה יותר מהנפח. אנו מתקנים קרעים וחריגים בציטוטים, מאחדים מקורות לרשת זמן אחידה, מסמנים תקופות של נזילות נמוכה ומקפידים שהמאפיינים לא יציצו לעתיד. בהיסטוריה קצרה הסוכן מתאמן תחילה בסביבת סימולציה, ועל נתוני השוק רק ממשיך להתאמן.
כיצד אתם מבינים שהסוכן עבר אימון-יתר?
אימון-יתר נראה בפער בין התוצאה באימון לזו בתקופה הנדחית, ולכן הוולידציה נעשית לפי זמן, ולא בחתך אקראי. עוזרים לכך הגבלת מורכבות הרשת, ויסות ועצירה מוקדמת לפי מדד מחוץ למדגם. סוכן שמנצח רק בקטע ההיסטורי אינו נכנס לעבודה.
מה יקרה עם עיכוב הביצוע?
בין האות לעסקה תמיד יש פער, וסביבת האימון צריכה לחיות עם אותו עיכוב כמו המעגל המבצעי. בסימולטור אנו מטמיעים סליפג', עמלה וזמן התגובה של הברוקר, ומגבילים את תדירות שינוי העמדה. כך המודל לומד על ביצוע הקרוב למציאות.
האם ניתן לשלב את הסוכן במערכת קיימת?
הסוכן מוסר לא פקודות מוכנות, אלא משקלות יעד שעוברים דרך מודול הסיכון ושער הברוקרז' שלכם: מגבלה על העמדה, סטופ יומי, כיבוי אוטומטי כאשר המדדים יוצאים מהמסדרון. לפני הקצאת הון, המודל פועל במצב צל על זרם חי, והחזרה לאחור היא חזרה לגרסה הקודמת של הסוכן.
נדון במשימה ונחזור עם תוכנית עבודה
כדי שהערכת הפרויקט תישען על עובדות ולא על השערות, נדרשים לנו נתונים והבנה של מגבלות הסביבה. ביקורת נתונים היא הצעד הראשון: בוחנים את עומק ההיסטוריה, החסרים, החלפת משטרי השוק ואת האופן שבו המאפיינים מתנהגים באופקים שונים. רק לאחר מכן אנו נוקבים בלוח הזמנים, בהרכב השלבים ובסיכונים.
- היסטוריית ציטוטים ועסקאות: כלים, צעד המחיר המזערי, העומק, ובאופן מחייב — עם תקופות של תנודתיות חדה.
- הרכב המצב הנצפה: אילו מאפיינים הסוכן רואה בכל צעד ובאיזו תדירות הם מתעדכנים.
- מדד היעד וגבולות הסיכון: מה נחשב להצלחה, איזו ירידה מותרת, אילו מגבלות על העמדה.
- מגבלות הביצוע: חלונות מסחר, כלים זמינים, איסורים על פוזיציות שורט ומינוף.
- אופן הוצאת ההחלטות: לאן הסוכן מוסר אות וכיצד מאושרת עובדת ביצוע העסקה.
- כללי עצירת חירום: באילו תנאים המסחר נפסק ומה קורה לעמדות הפתוחות.
- אחראי מטעם הלקוח שמאשר החלטות שנויות במחלוקת בנוגע לפונקציית התגמול.
הדיון הראשון במשימה נמשך כשעה ומתנהל לפי תחום העיסוק שלכם, ולא לפי תבנית. בתום הדיון תקבלו הערכת פרויקט ותוכנית עבודה לפי שלבים עם תוצאות ניתנות לבדיקה בכל אחד: איסוף וניקוי נתונים, סביבת אימון, אסטרטגיות השוואה בסיסיות, אימון מדיניות בשיטת SAC, בדיקה בתקופה נדחית. תארו את המשימה — ונחזור עם תוכנית ועם גבולות היישומיות של הפתרון.







