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

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

שירותי פיתוח בלוקצ'יין

שאלות נפוצות

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

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1376
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1350
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    798
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1088
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1034
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1130

מערכת התראות לסוחרים: היכן נשברת אספקת האותות

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

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

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

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

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

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

האפקט של אספקת אותות מנוהלת: מה משתנה

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

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

בפועל שיעור האותות שנמסרו עולה מ-80–85% ל-99% ומעלה, ובערוצים עם קישוריות לא יציבה רואים היכן בדיוק נקרע החוט: מדד ההגשה מנוהל בנפרד לכל ערוץ.

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

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

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

ערוצי הגשת התראות: השוואת מצבים

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

איזה מצב מתאים היכן

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

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

כיצד אנו מיישמים אספקת אותות: שלבי עבודות ההנדסה

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

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

תצורות, כללים ותיעוד של אספקת אותות

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

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

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

מקרה בוחן: מסערת אירועים לזרם אותות מנוהל

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

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

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

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

מה לעשות אם שירות חיצוני כבר מפיץ אותות?

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

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

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

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

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

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

שאלות טכניות לפני תחילת הפרויקט

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

איזו השהיית הגשה נחשבת מותרת?

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

כיצד אתם מבדילים בין ליקווידציה לתנועת מחיר חדה?

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

מה יקרה אם המקורות יספקו נתונים סותרים?

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

כיצד מוסיפים סוג אות חדש?

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

כיצד המערכת מוגנת מפני כפילויות?

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

נדון במשימה ונחזור עם תוכנית עבודה

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

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

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

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