מדוע סוכן RL למסחר נשבר בשוק החי
סוכן המבוסס על A2C/A3C לומד למקסם תגמול ממוצע לאורך מסלולים מתוך מדגם האימון. השוק לעומת זאת אינו סטציונרי: מצב התנודתיות, הנזילות והרכב המשתתפים משתנים, וההיסטוריה מכילה רק מימוש אחד של התהליך.
מדיניות שאומנה למצב מסוים מתנהגת במצב חדש כמדיניות אקראית — מכאן הכישלון של סוכן RL במסחר בעת הפעלה במעגל אמיתי.
היקר ביותר הוא הפער בין הבדיקה למסחר בפועל בכל הנוגע לעלויות ביצוע. הסביבה מחשבת עסקה לפי מחיר הסגירה של הנר, ואילו המעגל האמיתי מוסיף ספרד, עמלה וסליפייג', וכן השהיה עד לביצוע — ניתן לשחזר זאת רק לפי הלוגיקה של ברוקר ספציפי, בין אם זה גישה לבורסה או מסוף כמו MetaTrader. אם הרווח הממוצע לעסקה דומה לחיכוך, האסטרטגיה נכנסת להפסד בלי אף שגיאה במודל.
מקור נוסף הוא אימון יתר על נתונים היסטוריים: בחירת מאפיינים על פני כל הטור, נרמול שחושב דרך העתיד, כיוונון פרמטרים על אותו קטע כמו הביקורת. עקומה יפה מעידה לרוב על זליגת מידע ולא על חוקיות שנמצאה. הפתרון הוא סכמת ולידציה הוגנת: חלון מחליק ללא חפיפה, תקופה נפרדת לביקורת, בדיקה בעת שינוי מצב.
בחשבון אמיתי זה מניב תשואה בלתי יציבה: סדרה של עסקאות רווחיות מתחלפת בירידה שהסוכן אינו מזהה. נבחן כיצד סוגרים זאת.
מה נותן למידת חיזוק: האפקט במטריקות
את האפקט של למידת חיזוק אין אנו מודדים לפי תשואה בוואקום, אלא לפי יציבות ההתנהגות של הסוכן. שיטות actor-critic אסינכרוניות, שמקורן בעבודות של DeepMind, מאפשרות להריץ במקביל עשרות עותקים של הסביבה בתנאי שוק שונים — הסוכן לומד מחלקה של מצבים, ולא מסלול מוצלח אחד. שינוי ממגמה לשטחי או עלייה בתנודתיות מפסיק לדרוש כתיבה מחדש של כללים מאפס.
יציבות האסטרטגיה נבדקת על תקופות מושהות: שיעור התרחישים שבהם ההתנהגות תאמה את הצפוי, דינמיקת מקדם שארפ, מספר הפרות המגבלה על גודל הפוזיציה. אקראיות של תנאי התחלה ועמלות מונעת מהמדיניות לזכור היסטוריה ספציפית — הפער בין האימון לבדיקה יורד לכדי אחוזים בודדים.
השליטה בירידה מוטמעת בתגמול: קנס על סיכון, הגבלת חלק ההון בפוזיציה, תנאי סטופ מחייבים. הירידה המקסימלית הופכת לפרמטר נקבע ונבדקת בהרצות לחץ על קטעי משבר, ולא נשארת תוצאה של מזל בהיסטוריה.
הפחתת התיקונים הידניים היא תוצאה ישירה: שינוי מצב השוק מטופל באימון מחדש של המדיניות, ולא בתיקון קוד, המחזור נמשך דקות, והמטריקות מושוות לפני ואחרי.
ההסתגלות למצב נשענת על אנסמבל של סביבות ועל הפעלה דטרמיניסטית של המדיניות — נתוני קלט זהים מניבים החלטה זהה, ולכן התוצאה ניתנת לשחזור במעגל בדיקה. בדוח אנו מתעדים את מספר ההתערבויות הידניות בחודש, את הירידה המקסימלית, את שיעור הזמן מחוץ לשוק ואת זמן האימון מחדש.
השוואת גישות: A2C, A3C ואימון על היסטוריה
הבחירה בין A2C, A3C לאימון על היסטוריה היא בחירה בין יציבות הגרדיאנט, קצב צבירת הניסיון ומחיר בדיקת ההשערה.
actor-critic סינכרוני מעדכן את המדיניות לפי צעד מתואם של כל הסביבות, האסינכרוני אוסף ניסיון באמצעות עותקים עצמאיים של הסוכן, וסט נתונים אופליין מספק מדיניות התחלתית בלי לפנות לסביבה כלל.
בפועל, מצבים אלה אינם מתחרים זה בזה, אלא עומדים באותו קו ייצור: הציטוטים מחממים את המדיניות, הסימולטור מדייק את ההתנהגות, והבחירה בין אימון סינכרוני לאסינכרוני נקבעת לפי מספר הסביבות המקבילות שתוכלו להחזיק בפועל ולפי מידת הקריטיות של שחזור ההרצה.
| מצב | מתי מתאים | היכן נתקע |
|---|---|---|
| A2C, אימון סינכרוני | נדרש גרדיאנט יציב והרצה חוזרת; יש כמה סביבות מקבילות | כל צעד ממתין לעותק האיטי ביותר; מתאים פחות להרחבה מהאסינכרוני |
| A3C, אימון אסינכרוני | צמתים רבים, נדרש קצב צבירת ניסיון מהיר ממצבי שוק שונים | גרדיאנטים מיושנים מעותקים מפגרים מפחיתים את היציבות, הדיבאג מורכב יותר |
| אימון על היסטוריה | אין גישה לסביבה; נדרש חימום המדיניות ובדיקת השערות על טור ציטוטים ארוך | נתקע בהיקף המדגם: מצבי שוק נדירים מיוצגים חלש, ואין משוב |
| סימולטור על נתונים היסטוריים | נדרשת בדיקה בהתחשב בעמלות ובסליפייג' לפני עסקאות אמיתיות | מידת הריאליזם של מודל הביצוע קובעת אם התוצאה תעבור למעגל המבצעי |
לכן היקף הנתונים ההיסטוריים אינו מטרה בפני עצמו, אלא מגבלה: ככל שמצב השוק הרצוי מופיע פחות במדגם, כך יקר יותר לאשר שהסוכן למד בדיוק את מה שהתכוונו אליו.
שלבי ההטמעה: מביקורת נתונים ועד מסירת המודל
סדר העבודות נקבע מראש: סוכן למידת חיזוק רגיש לאיכות הנתונים ההיסטוריים ולאופן שבו מתוארת סביבת הביצוע. טעות בסימון העסקאות או בפונקציית התגמול מתגלה לא באימון, אלא בעסקאות אמיתיות — לכן כל שלב נסגר בארטיפקט הניתן לבדיקה, ולא ב«מוכן» בעל פה.
- ביקורת נתונים. מאחדים את היסטוריית הציטוטים והעסקאות לפי טיימפריימים, מחפשים חסרים, כפילויות, הזזות זמן וסימני זליגה של ערכים עתידיים. בפלט — סט נתונים מנוקה, תיאור הפערים ומסקנה לגבי התאמת התקופה לאימון.
- סכמת האימון. מתאמים את מרחב הפעולות (כניסה, יציאה, גודל הפוזיציה), את פונקציית התגמול בהתחשב בעמלות ובסליפייג', את אורך האפיזוד ואת סט המאפיינים. כאן גם מגדירים מה נחשב להצלחה: תשואה מתוקננת לסיכון, ולא רווח מוחלט.
- הרכבת הסביבה. מרכיבים סביבה ניתנת לשחזור: תלויות נעולות, אמולטור ברוקר עם השהיות ביצוע, תיעוד הרצות ביומן. כל הרצה חוזרת מתוך תצורה אחת במאגר הקוד.
- אימון וכיוונון. מריצים וריאנטים של A2C/A3C, משווים לפי יציבות העקומה ומספר האפיזודים עד להתכנסות, בוחרים תצורה בלי אימון יתר על מצבי שוק מסוימים.
- בדיקה על תקופה מושהית. בודקים בחלון מחליק: אימון על קטע אחד, בדיקה על הבא שהמודל לא ראה. בוחנים את הירידה, את ההתנהגות במגמה ובשטחי, ולא ספרה מסכמת אחת.
- מסירת המודל וליווי. מוסרים קוד, משקלים, תצורות, דוח בדיקות והוראות לאימון מחדש. מתארים ניטור ירידה בביצועים ואת סדר החזרה לגרסה הקודמת.
השלבים מתקדמים ברצף, אך עם חזרות: אם ביקורת הנתונים חשפה זליגה, סכמת האימון נבנית מחדש לפני ההרצה הבאה.
ארטיפקטים של ההטמעה: תצורות, מודלים ותקנות
לאחר ההטמעה נשאר אצל הלקוח לא «מודל מאומן», אלא מעגל ניתן לשחזור: לפיו ניתן לאמן את הסוכן מחדש, לחזור אחורה ולהעביר אותו לצוות אחר בלי היוצרים. המערכת מתועדת בפרוטוקול קבלה, והרשימה סגורה — אם סעיף אינו משוחזר בסביבת הבדיקה שלכם, העבודה לא התקבלה.
- קובצי תצורה — היפר-פרמטרים של האימון, הרכב הכלים, חלון המאפיינים, מגבלות סיכון וספי עצירה אוטומטית; מנוהלים בגרסאות יחד עם הקוד.
- תיאור סכמת האימון — מספר הסביבות המקבילות, תדירות סנכרון המשקלים, קריטריוני עצירה וכללי בחירת נקודות ביקורת של המודל.
- יומני הרצות — מטריקות לפי אפוקים, משקלים שמורים, דוח תשואה וירידה על התקופה המושהית.
- הפרדת הרשאות — תפקידים נפרדים לאימון, לביצוע אותות ולשינוי מגבלות סיכון; מפתחות לשער המסחר נשמרים במאגר סודות, ולא במאגר הקוד.
- הוראות הפעלה — סדר ההפעלה, מצב «אותות בלבד», חזרה לנקודת הביקורת הקודמת בפקודה אחת.
- תקנון אימון מחדש — טריגרים (סחף בהתפלגות המאפיינים, ירידה במטריקות), תדירות וסדר הכנסת גרסה חדשה לעבודה.
- תיעוד הנתונים — מילון מאפיינים, מקורות, כללי טיפול בחסרים ובפעולות תאגידיות.
משמעות הרשימה אינה דיווח: לפי קבצים אלה צוות חדש משחזר את האימון וממשיך את העבודה בלעדינו.
מקרה בוחן: תיק כלים, מטריקות לפני ואחרי ההטמעה
לפני: מדיניות על נכס אחד
במקרה בוחן זה — תיק של שנים עשר כלים: מניות, חוזים עתידיים על מדד, צמדי מטבע. הסוכן אומן על נכס אחד, ובמעבר המדיניות נטתה לעיוות: עד 70% מהמשקל תפס הכלי הנזיל ביותר. בקטע המושה של ההיסטוריה שארפ החזיק סביב 0.6, והירידה המקסימלית הגיעה ל-28%.
אחרי: מה שינו וכיצד חושב
הרכיבו מדיניות משותפת לכל התיק: למצב הוסיפו מאפיינים של הכלי עצמו — סוג, נזילות, מתאם עם המדד — ואת התגמול הפכו למתוקנן לסיכון עם קנס על ריכוזיות.
אומן במשפחת actor-critic (A2C/A3C): כמה סביבות מקבילות הריצו קטעים שונים של ההיסטוריה ומצבי תנודתיות, והציטוטים וספרי ההזמנות נלקחו מ-Interactive Brokers.
את המטריקות חישבו רק על הקטע המושה והשוו לתיק במשקל שווה. שארפ 0.6 → 1.3, ירידה מקסימלית 28% → 11%, שיעור הזמן בשוק ירד מ-85% ל-60% — הסוכן המתין לעתים קרובות יותר. תרומת הכלים התאזנה: אף אחד אינו מניב יותר מחמישית מהתוצאה.
בנפרד הריצו תרחישי לחץ: פער נזילות, גאפ בפתיחה, טווח צד ממושך, היפוך מגמה. בכל אחד מהם הסוכן הפסיד פחות מהאסטרטגיה הבסיסית, וההתאוששות ארכה פחות זמן.
במה נבדל סוכן RL למסחר מאסטרטגיה מבוססת כללים
אסטרטגיה מבוססת כללים היא תנאי כתוב במפורש: אם המחיר פרץ רמה, התנודתיות נמוכה מהסף, והפוזיציה ריקה — קונים. את הלוגיקה ניתן לקרוא בקוד ולהסביר לוועדת הסיכון. למידת חיזוק מסירה את התנאי ומציבה במקומו מדיניות: הסוכן רואה את מצב השוק והחשבון, בוחר פעולה ומקבל תגמול. כך מופיע במסחר האלגוריתמי מודל שקובע בעצמו אילו מאפיינים משמעותיים ואילו הם רעש.
פורמלית, הבעיה מתוארת כתהליך מרקובי. המצב — חלון של מאפייני שוק, הפוזיציה הנוכחית, התוצאה הלא ממומשת והכספים הפנויים. הפעולות — כניסה, החזקה, יציאה וגודל הפוזיציה. התגמול — תשואת הצעד מתוקננת לירידה ולעלויות.
סוכן המבוסס על A2C/A3C לומד דרך actor-critic: ה-actor מציע התפלגות פעולות, ה-critic מעריך את הפוטנציאל של המצב, והגרדיאנט מתקן את המדיניות. אין «אם — אז» מוכן בהחלטה: הכלל הוחלף בפרמטרים שכויילו על הנתונים.
הגבול בולט ביותר בנתונים חדשים. סט תנאים שנבחר על ההיסטוריה נשבר יחד עם שינוי המצב: אותם ספים בדיוק במגמה ובטווח צד מניבים איכות שונה, וניתן לכתוב אותם מחדש רק ידנית. הסוכן מעביר את ההתנהגות אם המאפיינים מתארים את המצב, ולא קטע מסוים.
אך הגמישות מביאה עמה כשלים משלה: המדיניות מתנוונת להחזקה מתמדת כאשר התגמול אינו מביא בחשבון עלויות, או מותאמת לאנומליות היסטוריות.
לכן האימון הולך יחד עם משמעת הבדיקה. התגמול כולל עמלה וסליפייג', האיכות נמדדת על קטעי זמן עוקבים, ולא על מדגם מעורבב, ובנפרד מחושבת ירידת המדיניות בעת שינוי מצב.
הסכמה העובדת היא היבריד, ולא החלפה: הסוכן מקבל החלטות, והכללים הנוקשים נשארים כמגבלות על פוזיציה, ירידה ותדירות עסקאות.
ספקות טכניים: אימון יתר, סליפייג', סיכון
לפני ההתחלה, צוותי ההנדסה של הלקוח שואלים את אותה קבוצת שאלות: כיצד להשתכנע שהמודל אינו מותאם לעבר, כיצד מובא בחשבון הביצוע בפועל של ההזמנות ומי אחראי לסיכון בעת תקלה. להלן התשובות שאנו בודקים על אב-טיפוס לפני ההשקה התעשייתית, ולא מצהירים עליהן בעל פה.
כיצד להבחין בין מודל עובד למודל עם אימון יתר?
מחלקים את ההיסטוריה לפי זמן, ולא באקראי: האימון נעשה על קטע אחד, והבדיקה — על הבא שהסוכן לא ראה. אנו בוחנים לא את התשואה המסכמת, אלא את הפער בין הקטעים ואת ההתנהגות בעת שינוי מצב השוק. אם התוצאה מחזיקה מעמד בעלויות ביצוע מוגדלות ובכלים שלא השתתפו באימון — המודל יציב. אם היא מתפוררת, חוזרים לסט המאפיינים ולרגולריזציה, ולא «מכווננים» אותה בהתאמה מלאכותית.
כיצד מובאים בחשבון סליפייג' והביצוע בפועל?
הסימולטור מבצע את ההזמנה לא לפי מחיר הסגירה, אלא בהתחשב בספרד, בעמלה ובהשהיה בין ההחלטה לבין כניסת ההוראה לספר ההזמנות. מוסיפים השהיה אקראית ומגבלה על הנפח הזמין, כדי שהסוכן לא יניח מילוי מלא. מדיניות שרווחית רק על הנייר נפסלת עוד בשלב הבדיקה.
מה לעשות אם היסטוריית העסקאות קצרה?
היסטוריה קצרה היא מגבלה סטטיסטית, ולא סיבה להמתין. מרחיבים את המדגם בעזרת כלים וטיימפריימים אחרים, בודקים בחלון מחליק ובתרחישים סינתטיים. מתעדים ביושר שבהיעדר מדגם קטן הפיזור של חלק מהמסקנות רחב יותר, ובהתחלה שמים דגש על בקרת סיכון וגודל פוזיציה מינימלי.
מי וכיצד שולט בסיכון?
הסיכון חי מחוץ לסוכן. שכבה נפרדת של כללים מגבילה את גודל הפוזיציה, את הירידה היומית, את מספר העסקאות ואת ההחזקה דרך חדשות וסופי שבוע. הסוכן מציע פעולה, אך ההוראה עוברת דרך מודול בקרה: כשמגבלה מופעלת, המסחר נעצר, ולא ממשיך בתקווה להחזיר הפסדים.
כיצד מתבצעת ההתחברות למערכת המסחר?
דרך ממשק תכנות של הברוקר עם מפתח נפרד והרשאות מצומצמות — בלי משיכת כספים. תחילה מתבצעת הרצה ממושכת במצב צפייה: הסוכן יוצר אותות, ואנו משווים אותם למחירים בפועל ולשהיות אמת. רק לאחר פער בטווח הסבילות מפעילים נפח מינימלי. החזרה למצב ידני — בפעולה אחת.
נדון במשימה ונחזור עם הערכה ותוכנית הטמעה
כדי לחזור עם הערכת הפרויקט ותוכנית ההטמעה, ולא עם מילים כלליות, אנו זקוקים לתמונה שלכם של השוק והתשתית. להלן הסט המינימלי, שלרוב מספיק; את השאר נבהיר בשיחה ונבקש נקודתית במידת הצורך.
- נתונים: כלי, טיימפריים, עומק ההיסטוריה, נתוני טיק או נרות, מקור הייצוא והאם יש חסרים בטורים.
- מגבלות מסחר: סיכון מותר לעסקה, ירידה מקסימלית, מגבלות על פוזיציה, תקופות שבהן המסחר אינו מתנהל.
- מעגל הביצוע: שרתים משלכם או ענן, קיומו של מצב בדיקה, כיצד בנוי השער לברוקר ומי מנהל את ההרשאות.
- מה כבר עובד ידנית: כללי כניסה ויציאה שמניבים תוצאה כעת — סכמת האימון נשענת עליהם באופן מהימן יותר מאשר על חיפוש עיוור.
- קריטריוני קבלה: לפי איזו מטריקה אתם מחשיבים את המודל כמוצלח — תשואה מתוקננת לסיכון, שיעור העסקאות הרווחיות, התנהגות בשוק יורד.
- אחראים מצדכם: מי אחראי לנתונים, מי מקבל את המודל, מי מאשר את מסגרות הסיכון.
נחזור עם סכמת אימון (סביבה, סט מאפיינים, פונקציית תגמול, בדיקה על קטע שלא השתתף באימון), תוכנית הטמעה לפי שלבים עם נקודות בקרה ותקנון ליווי המודל — ניטור סחף, אימון מחדש, עצירת מסחר ידנית.
תארו את המשימה — נחזור עם הערכה ותוכנית.







