שיטת שלושת המחסומים: תיוג אירועים פיננסיים
למדו כיצד ספי רווח והפסד המותאמים לתנודתיות, יחד עם מגבלת זמן מרבית, הופכים אירועי שוק לתוויות ללמידת מכונה פיננסית.
במדריך הזהעל איזו שאלה עונה שיטת שלושת המחסומים?
תקציר קצר
שיטת שלושת המחסומים מתייגת את מסלול המחיר אחרי תחילת אירוע: האם הושג קודם סף הרווח, סף ההפסד או מגבלת הזמן. במאמר הזה, אם הזמן תם בלי שנחצה אחד הספים האופקיים, התווית היא 0 גם כשהתשואה הסופית חיובית או שלילית. יש לדעת את התנודתיות היעד בתחילת האירוע; מחירים מאוחרים יותר יוצרים את y ולא את התכונות X.
על איזו שאלה עונה שיטת שלושת המחסומים?
בלמידת מכונה פיננסית, כל שורת תכונות צריכה תוצאה שהמודל יכול ללמוד לחזות. תווית שמבוססת תמיד על התשואה אחרי מספר קבוע של ימים לא בהכרח עונה על השאלה החשובה: האם המחיר נע מספיק בכיוון כלשהו, תוך כמה זמן, והאם סף ההפסד הושג לפני יעד הרווח? שיטת שלושת המחסומים מגדירה לאירוע שני ספי מחיר אופקיים ומגבלת זמן.
האירוע מתחיל במחיר ייחוס P₀. מסנן אירועים כמו CUSUM יכול לבחור נקודות התחלה שבהן תנועת המחיר חוצה סף מסוים. המסנן קובע מתי להתחיל למדוד, אך אינו קובע מה תהיה תווית התוצאה. לאחר קביעת נקודת ההתחלה, מציבים את המחסומים ועוקבים אחר המחיר עד שמחסום כלשהו נחצה או שהזמן תם. פרק 3 של Advances in Financial Machine Learning מציג את שיטת התיוג. תיעוד התיוג של mlfinpy מסביר את שיטת שלושת המחסומים ואת התיוג־העל.
מחשבים את הספים האופקיים בתחילת האירוע
אומדים את תנודתיות היעד של האירוע, σᵢ, בעזרת מידע שהיה זמין עד רגע ההתחלה. לאחר מכן בוחרים מכפיל לקיחת רווח mPT ומכפיל עצירת הפסד mSL. אם σᵢ נמדדת כתשואה פשוטה והכיוון הוא לונג, הספים הם:
- הסף העליון: P₀ × (1 + mPT × σᵢ)
- הסף התחתון: P₀ × (1 − mSL × σᵢ)
כך המרחקים מותאמים לסיכון המשוער של כל אירוע, במקום להחיל שינוי מחיר אחיד על כל התצפיות. כאשר התנודתיות בתחילת האירוע גבוהה יותר, הספים רחוקים יותר; כאשר היא נמוכה יותר, הם קרובים יותר. יש לקבע את σᵢ בזמן ההתחלה. חישוב מחדש מתוך מסלול המחיר העתידי יאפשר למידע שיוצר את התווית לשנות גם את היעד. אם משתמשים בתשואות לוגריתמיות, מתאימים את הנוסחה ושומרים על אותה מוסכמה לאורך כל החישוב.
המחסום השלישי הוא אנכי: מועד סיום שנקבע מראש, והוא מגדיר את תקופת ההחזקה המרבית. אם עד המועד הזה לא נחצה אף סף אופקי, האירוע מסתיים עקב הזמן. משך החזקה אחר משנה את השאלה שהיעד מציג, לכן יש לבחור אותו לפי אופק המחקר ולא לאחר צפייה בתוצאות.
דוגמה סינתטית: איזה מחסום נחצה ראשון?
נניח ש־P₀ הוא 100 דולר ו־σᵢ הוא 2% בתחילת האירוע. עם mPT = 2 ו־mSL = 1.5, הסף העליון הוא 100 × (1 + 2 × 0.02), כלומר 104 דולר. הסף התחתון הוא 100 × (1 − 1.5 × 0.02), כלומר 97 דולר. פקיעת המחסום האנכי מתרחשת בסוף הנר העתידי השלישי.
במסלול 100 → 104.50 המחיר עובר את הסף העליון כבר בנר העתידי הראשון, ולכן התווית היא +1. במסלול 100 → 96.50 המחיר יורד מתחת ל־97 כבר בנר העתידי הראשון, ולכן התווית היא −1. במסלול 100 → 101 → 102 → 101.50 לא נחצה אף סף אופקי עד סוף הנר העתידי השלישי, ואז הזמן פוקע. לפי המוסכמה במאמר הזה, התווית היא 0 אף שהתשואה הסופית מ־100 ל־101.50 חיובית ועומדת על 1.5%.
בדוגמאות ידוע סדר המחירים. בנתוני שוק מצרפיים ייתכן שהסדר חסר, בפרט כאשר הגבוה והנמוך של אותו נר OHLC עוברים את שני הספים.
מתעדים במפורש את מוסכמת פקיעת הזמן
כאשר המחסום האנכי מגיע ראשון, אפשר להשתמש בכמה מוסכמות. כאן הכלל הוא: אם סף הרווח או ההפסד לא נחצה לפני המועד, התווית היא 0 ללא קשר לשאלה אם המחיר הסופי גבוה או נמוך ממחיר ההתחלה. התיעוד של mlfinpy מתאר את המחסום האנכי כמגבלת זמן מרבית; במימוש labeling.py הסף העליון מסומן 1, התחתון −1 והאנכי 0.
מימושים אחרים עשויים להשתמש בסימן התשואה הסופית במועד הפקיעה: +1 אם מחיר הסיום גבוה יותר, −1 אם הוא נמוך יותר, ואולי 0 אם לא השתנה. זו תשובה לשאלה אחרת: היא מסווגת את כיוון התשואה הסופית ולא רק את העובדה שלא נחצה סף אופקי. לפני שמשווים תוצאות משתי ספריות או מערכי נתונים, בודקים באיזו מוסכמה כל אחד משתמש ומתעדים אותה בהגדרת היעד.

מבדילים בין תווית כיוונית לתיווג־על
תווית כיוונית ראשית יכולה להיות +1 כשסף הרווח נחצה, −1 כשסף ההפסד נחצה ו־0 כשהזמן פקע לפי המוסכמה שבחרנו. מודל ראשי עשוי כבר לבחור צד לונג או שורט; לאחר מכן מודל משני לומד אם לקבל את האות הזה או לוותר עליו. גישה זו נקראת תיוג־על. בתוכה, תווית בינארית 1 פירושה בדרך כלל לקבל ו־0 פירושה לדחות; היא אינה זהה לתווית הכיוונית בת שלוש המחלקות.
כאשר המודל הראשי כבר בחר צד, יש להעריך את התוצאה ביחס לצד הזה. אין לבקש מהמודל המשני לנבא כיוון חדש אם תפקידו רק להחליט אם לממש את האות הקיים. יש להגדיר גם אם התווית מייצגת תשואה ברוטו או תשואה לאחר עלויות.
משאירים תוצאות עתידיות מחוץ לתכונות X
בתחילת האירוע, σᵢ, המכפילים והתכונות X חייבים להיות ידועים או מחושבים רק ממידע שהיה זמין אז. המחירים המאוחרים מראים איזה מחסום נחצה ראשון וכך יוצרים את y. הכללת תשואה עתידית, מועד הסיום או מידע אחר שלא היה ידוע בזמן ההחלטה בתוך X חושפת למודל חלק מהתשובה מראש.
אירועים סמוכים בזמן יכולים לחפוף ולשתף חלק מאותו מסלול מחירים עתידי. חלוקה אקראית של שורות האירועים אינה מסירה את התלות הזאת. משווים את מרווחי התוצאה בפועל ומבצעים purging כדי להסיר מאימון דוגמאות שמרווחי היעד שלהן חופפים לתוצאות הבדיקה. אם יש צורך, מגדירים בנפרד תקופת embargo ומנמקים אותה. המדריך על אימות צולב עם purging ו־embargo בסדרות פיננסיות מסביר כיצד לטפל בתוויות חופפות.
מגדירים את כללי נתוני המחיר והעלויות
באותו נר OHLC, הגבוה עשוי לעבור את סף הרווח והנמוך את סף ההפסד. הערכים המצטברים לא מגלים איזה סף נחצה קודם. אם אפשר, משתמשים בנתונים בתדירות גבוהה יותר; אחרת קובעים מראש כלל שמרני ועקבי למקרים העמומים. כלל שמסתמך רק על מחירי סגירה עלול לפספס חצייה תוך־נרית שהתהפכה לפני הסגירה.
אם התווית אמורה לייצג תוצאה שאפשר לסחור בה, כוללים עמלות, מרווח קנייה־מכירה, החלקה, השפעת שוק, ובמקומות הרלוונטיים גם מימון או עלות השאלה. תשואה נטו עשויה לשנות את ההחלטה לקבל אות בתהליך התיוג־העל. שיטת שלושת המחסומים יוצרת יעדי אימון; היא אינה אסטרטגיית מסחר בפני עצמה ואינה הוכחה לרווחיות.
שאלות נפוצות
Q1האם CUSUM גם קובע את תווית האירוע?
לא. אפשר להשתמש ב־CUSUM כמסנן שבוחר מתי אירועים מתחילים. לאחר מכן המחסומים קובעים את תווית התוצאה לכל אירוע.
Q2האם תווית במחסום האנכי היא תמיד 0?
לא. זו המוסכמה במאמר הזה ובדוגמאות mlfinpy שאליהן קישרנו. מימושים אחרים עשויים להשתמש בסימן התשואה במועד הפקיעה, ולכן יש לבדוק את ההגדרה לפני השוואת תוצאות.
Q3האם תווית +1 מבטיחה שהעסקה רווחית אחרי עלויות?
לא בהכרח. היא אומרת שהסף העליון נחצה ראשון לפי כלל המחיר שהוגדר. עמלות, מרווח, החלקה, מימון ואיכות הביצוע עשויים לשנות את התוצאה נטו.
מקורות וקריאה נוספת
דיווח על בעיה
נכין אימייל עם קישור למאמר הזה. Mark יקבל את הדיווח רק לאחר שתשלחו אותו
בדיקה מהירה
סיימת לקרוא? בדוק את עצמך ב־3 שאלות
שאלה 01
בדוגמה, איזו תווית מקבל המסלול 100 → 101 → 102 → 101.50 בסוף הנר העתידי השלישי, כשהזמן פוקע?
בחר תשובה כדי לראות את ההסבר