פיתוח מערכת לניתוח walk-forward של אסטרטגיה

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

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

שאלות נפוצות

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

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

ניתוח Walk-forward של אסטרטגיה: היכן נשבר המבחן על היסטוריה

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

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

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

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

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

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

מה נותן ניתוח walk-forward של אסטרטגיה בפועל

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

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

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

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

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

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

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

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

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

כיצד מתבצעת הטמעת מערכת בדיקה לאסטרטגיות

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

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

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

קונפיגורציות, תקנונים ותיעוד של מערכת הבדיקה

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

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

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

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

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

מה גילה הניתוח

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

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

מדדים לפני ואחרי

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

לפני הבנייה מחדש עברו את הבדיקה 8 חלונות מתוך 10, והפער מול המסחר האמיתי הגיע עד 34%. אחרי כן אישור קיבלו 3 חלונות מתוך 10 — השאר נפסלו עוד לפני היציאה לשוק, אך מנגד הפער ירד ל-7%, ומחזור החישוב המלא התקצר משש שעות לארבעים דקות.

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

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

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

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

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

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

ספקות טכניים: נתונים, משטרים ויציבות

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

כיצד מטפלים בחוסרים בציטוטים?

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

כיצד בוחרים את אופק הבדיקה?

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

מה עם שחזוריות התוצאות?

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

כיצד מתחשבים בהחלפת משטר השוק?

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

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

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

מה לשלוח יחד עם התיאור:

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

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