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

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

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

שאלות נפוצות

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

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

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

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

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

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

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

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

מה נותן מסלול בדיקה נפרד: השפעות מדידות

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

מהירות הרצת סט אסטרטגיות

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

שחזוריות ושליטה בסיכונים

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

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

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

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

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

מגבלות של פתרונות מוכנים

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

מתי נדרשת שכבה משלכם

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

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

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

פירוק אסטרטגיות ונתונים

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

מימוש, קבלה ומסירה

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

הרכב המסירה: קוד, סכמות נתונים, נהלים ודוחות

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

תיעוד ונהלים

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

זכויות והרשאות למסלול

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

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

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

הקשר המשימה

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

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

מה השתנה בבדיקה

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

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

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

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

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

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

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

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

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

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

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

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

עד כמה מדויק מודל הביצוע?

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

יהיה צורך לשכתב אסטרטגיות?

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

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

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

מה לאחר המסירה — נישאר לבד?

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

איך בהמשך לבצע תיקונים והרחבות?

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

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

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

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

מה שולחים להערכה ולתוכנית עבודה:

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

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