5 בספטמבר 2026 · סיכון

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

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

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

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

אני רואה את זה נעשה לא נכון בשלוש דרכים.

הדרך השגויה הראשונה: מינוף כמספר שמכפילים בו את התשואות

הגרסה הנפוצה ביותר. מחשבים סדרת תשואות לפי האותות שלך, מחליטים לעבוד במינוף 10x ומכפילים. לפעמים זה מעט מתוחכם יותר — גודל הפוזיציה הוא equity * leverage / price — אבל מצב החשבון עדיין מסתכם במספר יחיד שעולה ויורד. אין יתרת מרג'ין, אין תקרה לערך הנומינלי, ואין תנאי שמסיים את הריצה.

הנזק עדין, ולכן הוא שורד את הבדיקה. Sharpe אינו משתנה לפי קנה המידה, כך שמספר הכותרת שלך לא זז כשמשנים את המינוף מ־3x ל־30x, והחוקר מסיק שמינוף הוא חוגה חינמית שמחליפה תשואה בתנודתיות. הירידה המרבית גדלה ליניארית ונשארת מתחת ל־100% במקרה, בגלל חשבון מקרי: סדרת תשואות מוכפלות מתקרבת לאפס באופן אסימפטוטי ולעולם אינה חוצה אותו. מכפילים יום של ‎-9% ב־12 ומקבלים ‎-108% בגרסה הכנה, ו־"‎-108% אבל עקומת ההון עדיין חיובית" בגרסה הנאיבית, בהתאם לשאלה אם צברתם תשואות או חיברתם אותן. ראיתי את שתי הגרסאות.

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

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

הדרך השגויה השנייה: מחיר חיסול שמחושב לפי המינוף לבדו

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

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

ערך נומינלי של הפוזיציה (USDT)שיעור מרג'ין תחזוקהמינוף מרבי
0 – 50,0000.40%125x
50,000 – 600,0000.50%100x
600,000 – 3,000,0001.00%50x
3,000,000 – 12,000,0002.50%20x
12,000,000 – 70,000,0005.00%10x

כלומר, התנועה הנגדית שפוזיציית לונג מבודדת יכולה לספוג היא בערך 1/L − MMR, ולא 1/L. במינוף 20x במדרגה השנייה, מדובר ב־5% − 0.5% = 4.5%. חצי אחוז נשמע כמו עיגול. במחיר BTC של 84,000 מדובר בתנועת מחיר של 420 דולר, ובשעה סוערת 420 דולר הם ההבדל בין פתיל שגרם לך לצאת לבין פתיל שלא. כל פתיל הוא הטלת מטבע, ואתה הטית את כולם לטובתך.

ואז מגיעות העמלות. עמלת taker בכניסה יורדת מהמרג'ין שלך ברגע שהפקודה מתבצעת: 0.045% על ערך נומינלי של 500,000 הם 225 USDT מתוך יתרת מרג'ין של 25,000, מה שמשנה את מחיר החיסול עוד לפני שהפוזיציה עשתה משהו. המימון עושה אותו דבר, ברציפות, ועל ערך נומינלי ממונף ההשפעה גדולה בהרבה ממה שחוקרים מצפים:

4.55%התנועה הנגדית בפועל עד לחיסול במינוף 20x, כולל עמלת כניסה
0.60%שחיקת מימון יומית ביחס למרג'ין במינוף 20x, בשיעור 0.01%/8h
18%מהמרג'ין שנעלם בחודש ללא תנועה

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

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

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

חיסול מופעל לפי מחיר Mark, שהוא מדד של כמה זירות מסחר ספוט, בתוספת רכיב בסיס מוחלק, שנבנה במכוון כדי לעמוד בפני פתיל בודד בזירה אחת. הסטופ־לוס שלך, בהתאם להגדרה שבחרת, מופעל כנראה לפי המחיר האחרון שבו בוצעה עסקה. שני המחירים האלה חלוקים בדיוק כשזה הכי חשוב. במהלך גל חיסולים, המחיר האחרון של החוזה התמידי יכול לסטות ב־1–2% מתחת למחיר Mark למשך עשרות שניות. בקטסט שמפעיל גם את הסטופ וגם את החיסול לפי השפל של אותו OHLCV מדמה זירת מסחר שלא קיימת.

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

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

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

מה המנוע צריך לנהל במקום זה

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

  1. יתרת ארנק ו־PnL לא ממומש, בנפרד. יחס המרג'ין הוא מרג'ין התחזוקה חלקי יתרת המרג'ין, ויתרת המרג'ין כוללת PnL לא ממומש. ערבוב ביניהם גורם לפוזיציה מפסידה להיראות כאילו היא מגובה בביטחונות רבים יותר מכפי שיש לה בפועל.
  2. טבלת מדרגות לכל סימול, עם גרסאות לפי תאריך. המדרגות מתעדכנות. בקטסט מ־2023 שמורץ מול מדרגות 2026 מכניס הטיית הצצה קדימה עדינה — בדרך כלל לטובתך, כי הזירות לרוב הקלו לאורך זמן את הדרישות לנכסים המרכזיים.
  3. סדרת מחירי Mark, ולא רק נרות. אם אינך יכול להשיג היסטוריית מחירי Mark, ציין זאת בתוצאות והשתמש בקירוב שמרני. אל תחליף בשקט למחיר האחרון.
  4. בדיקת מרג'ין ראשונה בסדר האירועים של הנר, לפני סטופים, יעדים, אותות או איזון מחדש.
  5. ביצועים במחיר פשיטת הרגל בתוספת עמלת הסילוק, כאשר שיעור העמלה נלקח מאותה שורת מדרגה כמו ה־MMR.
  6. מצב סופי סופג. כשההון מגיע לאפס, הריצה מסתיימת. בלי לאפס את הבסיס, בלי "להניח שהסוחר מפקיד עוד כסף", ובלי להמשיך את הסדרה מערך נומינלי חדש.

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

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

חוזים עתידיים תמידייםמינוףחיסולמנוע מרג'יןבקטסט
← כל הפוסטים