פיתוח דשבורד אנליטיקת בקטסטים

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

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

שאלות נפוצות

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

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

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

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

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

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

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

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

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

מה נותן פאנל חישובים אחוד: אפקט ומדדים

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

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

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

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

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

אפשרויות הרכבה של הפאנל: השוואת גישות

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

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

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

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

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

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

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

מה נמסר לידיים: תצורות ונהלים

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

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

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

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

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

מה היה

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

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

מה שינינו ומה נהיה

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

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

מה לעשות אם הבקטסטים כבר חיים בטבלאות?

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

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

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

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

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

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

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

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

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

האם החישוב יחזור על עצמו בהפעלה מחדש?

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

כיצד לחבר מקור נתונים חדש?

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

מה נכלל בתחזוקת הפאנל?

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

נדון במשימה: מה נדרש מכם ומה אנו עושים

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

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

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

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