זיהוי תבניות: היכן נשבר הסימון הידני של גרפים
זיהוי תבניות נשבר בדיוק במקום שבו מתחיל הסימון הידני של גרפים. ראש וכתפיים, משולש וטריז — גיאומטריה שהאנליסט משרטט על הנרות באופן ידני, ובפעם הבאה הוא ישרטט אותה קצת אחרת. קו הצוואר זז בכמה נרות — והתבנית לא מאושרת פורמלית, אף שהשוק עבד דווקא אותה.
בהיסטוריה של כמה מאות מקרים אי-ההתאמה מצטברת. שני מסמנים נותנים מדגמים שונים, אותה קונפיגורציה בדיוק נופלת פעם לסט האימון ופעם לסט הבדיקה, והשוואת ההשערות מאבדת משמעות — אין מה להשוות.
הצד השני יקר עוד יותר: בזמן שגבולות התבנית מובהרים בעין, השהיית אות המסחר גדלה, והכניסה לפי משולש מתרחשת כשהתנועה כבר עברה. סשנים ליליים ומכשירים נדירים מוסיפים את שלהם — מקרה הוחמץ, הסטטיסטיקה לפי התבנית מוטה לטובת השעות שבהן האנליסט היה ליד המסך.
הסיבה אינה בכשירותו של המסמן, אלא בהיעדר קריטריונים פורמליים: היכן מסתיימת היווצרות התבנית, איזה טווח נחשב משמעותי, כמה נרות מאשרים את הפריצה ומה נחשב לביטול שלה. בלי כללים אלה זיהוי תבניות נשאר חוות דעת מומחה, שאי אפשר לשחזר או לבדוק על היסטוריה. בהמשך נפרט כיצד זה נסגר על ידי העברת לוגיקת התבניות לקוד, ועל מה בדיוק תופסים התראות שווא.
מה משתנה במערכת המסחר לאחר אוטומציה של ניתוח תבניות
סימון ידני נתקל במגבלת האדם: שני אנליסטים על אותה היסטוריה מציבים גבולות שונים ל"ראש וכתפיים", למשולש או לטריז. על רבעון של היסטוריה עבור עשרה מכשירים אלה ימי עבודה, ואי-ההתאמות צפות מאוחר — כשהחלטות לגבי המכשיר כבר התפצלו.
אוטומציה מתרגמת את התבנית לסט תנאים ניתנים לבדיקה: מיקום הקיצוניות המקומיות, שיפוע ונגיעות בקווי מגמה, אישור בנפח. המצב מנוהל באופן מפורש — נוצרת, מאושרת, שבורה — ולכן האות אינו תלוי במי שהסתכל על הגרף.
שכבת בדיקות נפרדת פוסלת מועמד אם בתוך החלון יש פער או החמצה בקוטיזציות: חיבורים כאלה הרכיבו תבנית מנרות לא סמוכים ונתנו סוג גרוע יותר של כניסות שווא.
מה זה משנה לפי המדידות שלנו:
| מדד | ניתוח ידני | אוטומטי |
|---|---|---|
| ניתוח רבעון היסטוריה | ימי עבודה של אנליסט | ריצה אחת על כל המדגם |
| גבולות התבנית אצל אנליסטים שונים | שונים | כללים אחידים, פער בטווח הסבילות |
| החמצת תבנית | תלוי בעומס | ההיסטוריה עוברת במלואה |
| פער או החמצה בקוטיזציות | התבנית מודבקת מנרות לא סמוכים | החלון מסומן, התבנית לא נבנית |
בקרת איכות נשענת על סט ייחוס — כמה מאות תבניות שסומנו ידנית, כולל שנויות במחלוקת. ריצה לאחר כל שינוי בכללים מציגה בנפרד את שיעור התראות השווא ובנפרד את שיעור ההחמצות: ניסיון לדכא מדד אחד על חשבון האחר נראה מיד.
חלק מהפרימיטיבים הגיאומטריים נלקחים מהספרייה הפתוחה TA-Lib, את לוגיקת התבניות והאישורים עצמה אנו מתארים בעצמנו — ניתן לתקן אותה עבור שוק מסוים. הניתוח מפסיק להיות מגבלה של זמן, והסימון הופך לשחזורי: אותה ריצה על אותם נתונים נותנת אותה תוצאה.
כיצד בנוי זיהוי תבניות: שלוש גישות לחיפוש תבניות
ניתן למסד תבנית בשלוש דרכים, ולכל אחת מחיר הטעות שלה.
כלל נוקשה מתאר את הצורה דרך הקיצוניות שנמצאו, שיפוע קווי המגמה וסבילות לנגיעה בשברי תנודתיות; אימון על היסטוריה מסומנת מחפש את אותה צורה לפי מאפייני החלון; היברידי משאיר לכללים סינון ראשוני, ולאנליסט — אישור של מקרים שנויים במחלוקת.
הבחירה תלויה בנזילות המכשיר, באופק ובאיזה סוג שגיאה מותר בהחלטה.
| גישה | מתי מתאימה | מגבלות |
|---|---|---|
| כללים גיאומטריים נוקשים | מכשירים נזילים, אופקים ארוכים, נדרשת יכולת הסבר לכל אות | הסבילויות נבחרות ידנית, הכלל נשבר בשינוי תנודתיות, בטווח מסחר יש הרבה התראות שווא |
| אימון על היסטוריה מסומנת | הרבה נתונים אחידים, נדרשת עמידות לרעש | האיכות נתקלת בסימון, מחלקות לא מאוזנות, ההתנהגות צפה בשינוי משטר |
| היברידי עם ולידציה ידנית | מקבלים החלטות לפי אותות, הטעות יקרה | חלק מהבדיקה נשאר בידי האנליסט, התגובה איטית יותר מזו האוטומטית |
החולשה המשותפת לכל שלושתן — סימון הנתונים ההיסטוריים. אם גבולות התבנית באימון מוצבים לפי המשך המחיר שכבר ידוע, האיכות על ההיסטוריה נראית גבוהה, אבל על נתונים חדשים המודל מתפרק: יש לבדוק על חלון מחליק, תוך אימון רק על העבר.
הגישה ההיברידית סוגרת זאת בולידציה ידנית של מקרים שנויים במחלוקת, אך כללי זיהוי התבניות עדיין מקובעים לפני האימון.
שלבי העבודה: מביקורת נתונים ועד מסירת מערכת מכוילת
את העבודה אנו מבצעים באיטרציות: תחילה מקבעים מה בדיוק נחשב לתבנית על נתונים היסטוריים, לאחר מכן בונים חיפוש שחזורי, ורק אחר כך בוחרים ספים. סדר כזה מסיר התאמה לקטע ספציפי של הגרף — הגלאי נבדק על נתונים שלא ראה בעת הכיול.
- ביקורת נתונים היסטוריים ודרישות. בודקים שלמות קוטיזציות, חסרים, פיצולים ואיחויים, אזורי זמן, מתאמים רשימת תבניות ("ראש וכתפיים", משולשים, טריזים), טיימפריימים ומה נחשב לאישור התבנית.
- סכימת מאפייני התבנית. מגדירים פורמלית את הגיאומטריה: מספר נגיעות בקו המגמה, שיפוע, סימטריית כתפיים, עומק התיקון, התנהגות הנפח בפריצה. בלי סכימה כתובה המאפיינים הופכים לשרירות טעם ואינם ניתנים לשחזור.
- כיול חיפוש תבניות. מממשים גלאי: החלקת סדרה, חיפוש קיצוניות מקומיות, קירוב קווים, בדיקת גיאומטריה. בפלט — סימון עם קואורדינטות גבולות והערכת ביטחון לכל תבנית.
- בדיקה על תקופה מוחזקת. מריצים את הגלאי על נתונים שלא השתתפו בכיול, מחשבים דיוק וכיסוי, מנתחים אי-התאמות עם סימון האנליסט. זה מפריד בין זיהוי תבניות אמיתי לבין שינון ההיסטוריה.
- כיול ספים. בוחרים סבילות לשיפוע, לאורך ולנפח כך שיסירו התראות שווא בלי לאבד תבניות נדירות. ערכי הסיכום מקובעים בקונפיגורציה, לא בקוד.
- מסירה והדרכת הצוות. מוסרים סימון, קונפיגורציה והוראות להוספת תבניות חדשות, מראים אילו מדדים לעקוב אחריהם כדי שאיכות החיפוש לא תרד לאחר שינויים.
הרכב האספקה: כללי סימון, סכימות, נהלי עדכון
סימון תבניות ופרמטרי החיפוש לא צריכים לחיות בראשו של המפתח או בהתכתבות: באי-ההתאמה הראשונה של אותות לא ברור מי צודק. לכן יחד עם המערכת הלקוח מקבל ארטיפקטים שלפיהם אפשר להפעיל אותה, לבדוק אותה ולהעביר לצוות אחר.
- כללי סימון — קריטריונים לתבנית שהתממשה: כמה נרות יוצרים את הפסגה והכתפיים, אסימטריה מותרת, כיצד מפרשים פערים ואימפולסים חדשותיים. המסמן והאלגוריתם פועלים לפי מסמך אחד, ולכן אי-ההתאמה נראית מיד.
- סכימת מאפיינים — טבלה «מאפיין → מקור → חלון חישוב → משקל בהחלטה»: שיפוע קו מגמה, עומק תיקון, נפח בפריצה. מאפיין חדש מתווסף בלי לשבור את אלה שכבר כוילו.
- קונפיגורציית חיפוש תבניות — ספי סבילות, משרעת מינימלית, חלון אישור, כללי דיכוי כפילויות. הספים מוצאים מהקוד: מתקנים אותם בלי לבנות מחדש את השירות.
- נוהל אימון מחדש ובחינה מחודשת של ספים — לפי איזה מדגם ובאיזו תדירות מאמתים את הסימון, אילו מדדים נחשבים לירידה בביצועים ומי מאשר את שינוי הקונפיגורציה.
- יומן בדיקות — סטי בקרה עם סימון ידני והיסטוריית ריצות: רואים אחרי איזה שינוי נפלה רמת הדיוק ואיזה סט ספים עבד טוב יותר.
- תיעוד המערכת — הוראות לצוות: כיצד להרים את שירות הזיהוי, היכן לראות אותות שנדחו, כיצד להחזיר את הקונפיגורציה לקודמת.
- מפת בעלות — מי אחראי על הסימון, מי על המאפיינים, מי על חיפוש התבניות: בלעדיה הארטיפקטים מתיישנים בתוך רבעון.
ניתוח פרויקט של פלטפורמת מסחר: סימון לפני ואחרי
סימון התבניות חי בטבלה: אנליסטים סימנו ידנית "ראש וכתפיים", משולשים וטריזים, כל תווית — עם טווח זמן בגרף, טווח נרות והערה.
הרצנו מדידת אי-התאמות על אותם קטעים בדיוק וקיבלנו מספר שבדרך כלל לא מוצא חן בעיני הקהל: מסמנים בלתי תלויים מסכימים רק ב-71% מהמקרים, ותצורות נדירות — משולש מתרחב, טריז מתכנס — מצא אנליסט אחד מתוך ארבעה. אות לפי תבנית מאושרת הגיע ללולאת המסחר עשרות שניות לאחר סגירת הנר: חלק מהתנועה עד אז כבר מומשה.
מה שינינו במהות
את התבנית הפסיקו לתאר בתמונה — היא הפכה לסט תנאים פורמליים: מספר נגיעות בקו המגמה, שיפוע, סטיית מחיר מותרת מהגבול, עומק תיקון מינימלי, נר מאשר חובה.
את סימון האנליסטים העברנו ל-Label Studio וקישרנו לטווח הזמן בגרף, ואת המקרים השנויים במחלוקת הוצאנו לתור תיאום נפרד, כדי שלא יימסו במדגם הכללי.
מדדים לפני ואחרי
- עקביות הסימון בין אנליסטים: 71% → 94%.
- שיעור המקרים המסומנים השנויים במחלוקת: 19% → 4%.
- כיסוי זיהוי תבניות נדירות: 0.4 → 0.9.
- השהיית אות לאחר אישור: עשרות שניות → שניות בודדות.
- התראות שווא על רעש: ירדו פי שלושה באותו סף אישור.
מה היה צריך לשפר תוך כדי
הגרסה הראשונה של הכללים לא הבחינה בין טריז למשולש בגבול הטווח: תצורות עם שתי נגיעות נכנסו לאותה תווית. הוספנו מאפיין של צורת קו הצוואר ודרישה למספר נגיעות מינימלי — המקרים השנויים במחלוקת ירדו, אבל חלק מהתצורות הרחבות נשר מהזיהוי, והסף היה צריך לכייל מחדש על נתונים היסטוריים.
בנפרד תיקנו את אי-ההתאמה בין סימון בטווחי זמן שונים: תבנית אחת בגרף יומי ושבועי אנליסטים מתארכים אחרת, ולכן התווית קושרה לטווח הזמן שבו התבנית מאושרת.
מה לעשות אם תבניות כבר סומנו ידנית?
סימון ידני של תבניות היסטוריות אינו אשפה, אלא מדגם אימון מוכן: בו מוקבעת הפרשנות שלכם לשוק, שאי אפשר לשחזר מהקוטיזציות. השאלה אינה אם לסמוך עליו או לא, אלא אם הקריטריונים תואמו בין אלה שסימנו. אם הסימון נאסף במשך שנים בידי אנשים שונים, איכות הסימון היא הדבר הראשון שבודקים לפני כל אימון נוסף.
מחשבים הסכמה לכל סוג תבנית בנפרד: האם הגבולות תואמים, נקודת האישור, המשרעת המינימלית. היכן ששיעור ההתאמות נמוך, זה לא רעש של המודל, אלא כלל שנוי במחלוקת — מאשרים אותו לפני האימון.
בהמשך ביקורת של מדגם אקראי: קטעים שנויים במחלוקת נשלחים לסימון מחדש לשני מסמנים בלתי תלויים, אי-ההתאמות עוברות לבוררות לפי כלל, לא לפי הצבעה. כך האיכות הופכת למדידה, ולא "בעין".
קונפליקטים בסימון הם כמעט תמיד משלושה סוגים: תבנית אחת סומנה עם גבולות שונים, קטע גרף אחד מסומן גם כמשולש וגם כטריז, או שתבניות חופפות בזמן. כל קונפליקט מסווג ונסגר בהחלטה שמקובעת בסכימת הסימון עם גרסה — אחרת באיטרציה הבאה אותן אי-התאמות יחזרו.
אימון נוסף על הנתונים שלכם נעשה מעל מודל בסיס, לא מאפס, ועם חלוקת המדגם לפי תקופות שוק: אחרת המערכת תלמד משטר אחד ותתפרק בשינוי תנודתיות. כללי הניתוח נשארים מקור האמת, והמודל מרחיב את כיסוי הזיהוי.
העברת הכללים נבדקת בסט רגרסיה: תבניות מסומנות ישנות מריצים לפני ואחרי האימון הנוסף. שיעור ההתאמות לא אמור לרדת — מחלקות חדשות אינן רשאיות "לאכול" את הקודמות. אם הוא יורד, הכלל חזק יותר מהמודל: הסימון מיוצא מהמסוף TradingView, והאי-התאמה איתו נראית כבר בריצות הראשונות.
ספקות טכניות: רעש, תבניות שגויות, עמידות לתקלות
בנתונים חיים חיפוש התבניות נתקל בפערים בקוטיזציות, נרות לא שלמים וסימון דו-משמעי. להלן חמש שאלות שעולות לרוב בקבלה, וכיצד אנו סוגרים כל אחת.
כיצד המערכת מתמודדת עם רעש בטווחים קצרים?
רעש בגרף מדכאים בכניסה: החלקת סדרה, סף לפי משרעת התבנית, אישור בנפח. חלק מהאותות המוקדמים נחתך בכך — את הספים מחזיקים בקונפיגורציה ובוחרים אותם עבור מכשיר מסוים, ולא תופרים בקוד.
התבניות נדירות — מה עושים עם משולשים וטריזים?
תצורות נדירות — משולשים, טריזים, ראש וכתפיים — מעריכים לא בנפרד, אלא כמשפחות של קונפיגורציות דומות. כך נאספת סטטיסטיקה להערכה הוגנת של דיוק, ולא התאמה למקרים בודדים.
מה מבטיח שהמודל אינו מותאם יתר?
בודקים על קטע היסטוריה מוחזק שלא השתתף בכיול, ומריצים את הכללים ברצף לפי זמן. פער ניכר בין הדיוק בכיול לדיוק בבדיקה — סימן ישיר להתאמת יתר; קונפיגורציה כזו מוחזרת לשיפור.
מה קורה בעת פערים בזרם הנתונים?
פערים בזרם הנתונים נרשמים כאירוע נפרד: ההיסטוריה נטענת מחדש, והאות שלא היו די קוטיזציות עבורו מסומן כלא מאושר — המערכת אינה משלימה נרות בשקט. לאחר שחזור הזרם הסימון מחושב מחדש על הסדרה המלאה.
מה כוללת התמיכה לאחר ההטמעה?
תמיכה לאחר ההטמעה — עדכון ספים לפי שינוי תנודתיות, בקרת שיעור התראות שווא ותיקוני כללי סימון. הרשאות לזרם וסדר שינוי הקונפיגורציה מתוארים בנוהל, כדי שהמערכת לא תישאר בלי בעלים.
בואו נדון במשימה שלכם: נתונים, תבניות, דרישות לאותות
כדי שההערכה ותוכנית העבודה יישענו על הנתונים שלכם, ולא על הנחות ממוצעות, לשיחה יספיקו תשובות בשלושה צירים: היסטוריית מחירים, סימון תבניות ודרישות לאותות. להלן מה בדיוק מבררים וכיצד כל סעיף משנה את היקף העבודה.
- נתונים והיסטוריה. מכשירים וטווחי זמן, מקור (בורסה, ברוקר, ארכיון משלכם), עומק בנרות, חסרים ופערים בין סשנים, כללי איחוי חוזים.
- סימון תבניות. מה חובה: ראש וכתפיים בשתי וריאציות, משולשים, טריזים. עם סבילות — גובה ורוחב מינימליים של התבנית, מספר נגיעות בקווים, זווית שיפוע.
- קריטריון אישור. פריצת קו הצוואר או הגבול עם התבססות, חזרת המחיר לרמה הפרוצה, אישור לפי נפח. מזה תלויה השהיית האות ביחס לרגע היווצרות התבנית.
- דרישות איכות. שיעור מותר של התראות שווא, התנהגות בתבניות לא שלמות ובמכשירים עם נזילות נמוכה.
- אספקת אות. תור הודעות, רישום בטבלה או קריאה לשירות חיצוני; פורמט ההודעה, השהיה, האם נדרש יומן עם היסטוריית התראות.
- סדר הטמעה וקבלה. על איזה קטע היסטורי בודקים דיוק, מי בצד שלכם מקבל את התוצאה, האם נדרשת סביבת בדיקה עם זרם נתונים בזמן אמת.
אם חלק מהנתונים חסר — זה לא חוסם את ההתחלה: נציע במה להחליף וכיצד להרכיב היסטוריה למקרה שלכם. תארו את המשימה בצורה חופשית — נחזור עם הערכה ותוכנית עבודה, שבה השלבים ונקודות הבדיקה מקובעים.







