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

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

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

שאלות נפוצות

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

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

דאשבורד של בוט קריפטו: מדוע הדוחות מפגרים אחרי השוק

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

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

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

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

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

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

מה נותנת אנליטיקה בזרימה של עסקאות מסחר

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

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

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

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

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

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

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

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

מצבי העבודה של דאשבורד בוט הקריפטו: השוואה

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

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

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

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

שלבי ההטמעה: מביקורת הסכמה ועד המסירה

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

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

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

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

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

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

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

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

הרכב החומרים הנמסרים: קונפיגורציות וסכמות

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

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

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

מקרה בוחן: כיצד הסרנו אי-התאמות והשהיית נתונים

נקודת הפתיחה

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

הדוח על המחזור והרווח פיגר אחרי השוק ב-20–40 דקות, ולאחר ניתוקי חיבור הופיעו כפילויות של הזמנות בנתונים — הסטייה מול יתרת החשבון הגיעה עד 4% ונותחה ידנית.

מה שינינו ומה זה נתן

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

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

  • השהיית הדוח: 20–40 דקות → 3–5 שניות באחוזון ה-95;
  • סטייה מול יתרת הבורסה: עד 4% → 0,1%, והשארית — עיגול עמלות;
  • חישוב מחדש של התצוגה: כ-12 דקות → 40 שניות;
  • התאמות ידניות: מספר פניות בשבוע → אפס.

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

במה נבדלת אנליטיקה בזרימה מאנליטיקה אצוותית?

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

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

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

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

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

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

ספקות טכניים לפני תחילת העבודה

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

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

הבוט כבר סוחר — יהיה צורך לעצור אותו?

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

כיצד הדאשבורד משפיע על העומס של מערכת המסחר?

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

עד כמה אפשר להאמין למדדים?

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

מה עם אבטחת הנתונים של הבוט?

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

מי מתחזק את האנליטיקה לאחר ההפעלה?

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

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

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

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

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