פיתוח GAN ליצירת תרחישי שוק מקצה לקצה

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

תחומי פיתוח AI

שאלות נפוצות

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

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

יצירת תרחישי שוק באמצעות GAN: מדוע הבדיקות אינן מזהות סיכון

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

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

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

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

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

אפקט מדיד: כיסוי משטרים נדירים ועמידות אסטרטגיות

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

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

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

חלקם של התרחישים הידניים במערך הבדיקות יורד מכ-70% ל-10–15%, והכיסוי של אירועים נדירים עולה מפרקים בודדים לכמה עשרות לאופק.

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

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

דרכי אימון המודל: השוואת משטרים ומגבלות

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

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

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

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

כיצד מתבצעת ההטמעה: שלבי העבודה ההנדסית

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

  1. ביקורת נתונים והגדרת המשימה. בודקים את ההיסטוריה לאיתור חוסרים, קרעים והחלפת משטר שוק. מיד מתארים מה המחולל חייב לשחזר: תנודתיות, אוטוקורלציות, זנבות כבדים של תשואות.
  2. תכנון המחולל. בוחרים ארכיטקטורה לפי מספר הנכסים והיקף ההיסטוריה, קובעים את הממדיות של המרחב החבוי ואת אופן ההתחשבות במשטר השוק. מתאמים את הרכב הקלטים — רק היסטוריה או גם גורמים חיצוניים.
  3. אימון וייצוב. שומרים על איזון בין המחולל למבחין, מוסיפים רגולריזציה נגד שינון קטעים היסטוריים: אחרת המודל משכתב את העבר במקום לייצר תרחישים חדשים.
  4. ולידציה של אמינות. בדיקות סטטיסטיות — צורת ההתפלגות, אוטוקורלציה, קיבוץ תנודתיות; וכלכליות — שימור הקשרים בין הנכסים. בנפרד בוחנים תקופה נדחית שהמודל לא ראה.
  5. מסירת המודל. מעבירים משקלים, סקריפט יצירה עם מקור אקראיות קבוע, תיאור הקלטים והפלטים, והוראות הרצה: התוצאה משוחזרת אצלכם ללא מעורבותנו.
  6. קבלת התוצאה ותקנון. משווים את המדדים לספים שנקבעו לפני ההתחלה, ומנתחים את הפערים. לאחר מכן מגדירים את תדירות האימון המחודש ואת המדדים שחריגה מהם מפעילה עדכון.

ערכת המסירה: תצורות, סכמות ותקנוני ולידציה

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

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

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

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

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

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

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

מדד לפני אחרי
כיסוי משטרים נדירים במערך 8% 74%
שיעור התרחישים הסינתטיים שנפסלו 61% 12%
זמן בניית מערך הבדיקות 9 ימי עבודה יום אחד
הרצות אימון שהסתיימו בהתנוונות 4 מתוך 5 1 מתוך 12

אפקט נפרד — על התהליך. פגם שהתגלה מתועד בתרחיש ונשאר במערך Портфель-Стресс לנצח, ובדיקה חוזרת אינה דורשת עוד שחזור ידני של השוק. הסינון הפסיק להיות צוואר בקבוק: המהנדס מטפל רק במקרים שנויים במחלוקת, ולא בכל זרם היצירה.

במה נבדלת הגישה מבוססת הרשת הנוירונית ממודלים סטטיסטיים?

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

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

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

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

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

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

ספקות טכניים: יציבות האימון ובדיקת האמינות

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

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

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

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

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

כיצד להבין שהמודל עבר אימון יתר על קטע היסטוריה צר?

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

מה לעשות כשחסרים נתונים היסטוריים?

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

נדון במשימה: במה נתחיל ומה יידרש מכם

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

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

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