סדרת חוזים עתידיים רציפה מחברת חוזים עוקבים שפוקעים לכדי היסטוריה אחת. אפשר להשתמש בהיסטוריה הזאת כדי לחקור אותות, אבל חישוב רווח והפסד ממסחר ישירות משינויי המחיר שלה עלול לייצר רווחים והפסדים בכל גלגול. הסדרה לא אומרת לכם איזה חוזה החזקתם.
ניקח דוגמה קיצונית במיוחד: נפט גולמי WTI ב־NYMEX ב־20 באפריל 2020. חוזה מאי נסגר במחיר שלילי של $37.63 לחבית. חוזה יוני נסגר במחיר חיובי של $20.43. שני המחירים היו אמיתיים. גם ההפרש ביניהם, $58.06, היה אמיתי. אבל מעבר בגרף ממאי ליוני לא הניב לפוזיציית לונג את ההפרש הזה.
בואו נפרק את החיבור הזה. אלה מחירי סליקה היסטוריים; דוגמאות החשבונאות ההיפותטיות בהמשך משתמשות בהם כדי להמחיש את החשבון, ולא לטעון שאפשר היה לבצע בהם פקודה.
CLK20 ו־CLM20: המזהים שהגרף השמיט
| שדה | חוזה מאי | חוזה יוני |
|---|---|---|
| מזהה חוזה | CLK20 | CLM20 |
| חודש מסירה | מאי 2020 | יוני 2020 |
| סליקה ב־20 באפריל, בדולרים לחבית | −37.63 | 20.43 |
| גודל חוזה | 1,000 חביות | 1,000 חביות |
קוד החודש חשוב יותר מקידומת הסימול. K מציין מאי; M מציין יוני. לחוזים האלה היו התחייבויות מסירה ומחירים שונים. חוזה מאי התקרב לפקיעה על רקע לחץ חריג על אחסון. חוזה יוני קנה חודש נוסף.
הסימול הרציף של ספק הנתונים מסתיר את ההבחנה הזאת מאחורי משהו קומפקטי ונוח. אני אוהב סימולים קומפקטיים, עד שהם נשארים המזהה היחיד ביומן העסקאות. אז ניפוי השגיאות מתחיל להרגיש כמו ארכאולוגיה, עם קפה גרוע יותר.
וגם אין היסטוריה רציפה אחת שמקובלת על כולם. ספק נתונים עשוי לגלגל מספר קבוע של ימי עסקים לפני הפקיעה, בעת חציית נפחים, או לפי לוח זמנים אחר. בהיסטוריות רבות כבר עברו מחוזה מאי לפני 20 באפריל. בדוגמה שלנו אנחנו מחברים במכוון את שתי הסליקות האלה כדי להמחיש את הכשל; אין כאן טענה לגבי מועד הגלגול של ספק נתונים מסוים.
1,000 חביות: המכפיל שמאחורי כל מחיר
חוזה החוזים העתידיים הסטנדרטי של NYMEX WTI מייצג 1,000 חביות. לכן, שינוי של $1 משנה את ערכה של פוזיציית לונג בחוזה אחד ב־$1,000. גודל הטיק של $0.01 שווה $10.
לפוזיציה בחוזה אחד שאינה משתנה, החישוב הבסיסי הוא:
gross_pnl = contracts × 1,000 × (ending_price − starting_price)
החישוב עדיין תקף כשהמחיר יורד מתחת לאפס. תשואות באחוזים על מחיר החוזה העתידי המצוטט נעשות הרבה פחות שימושיות: חציית האפס עלולה להפוך אותן ללא מוגדרות או לשנות את משמעותן לכאורה. את תשואות האסטרטגיה צריך לחשב לפי ההון בחשבון ולפי מוסכמת תזרימי המזומנים. מחיר החבית המצוטט אינו ההון שהוקצה לאסטרטגיה.
$58.06: הקפיצה בנקודת החיבור
נניח שמנוע נאיבי רואה את מחיר הסליקה של חוזה מאי ואחריו את מחיר הסליקה של חוזה יוני, ומחיל את הנוסחה כאילו המכשיר לא השתנה:
invented_pnl = 1 × 1,000 × (20.43 − (−37.63))
= $58,060
בהשוואה הזאת לא חלף זמן. אלה המחירים של שני חוזים באותו יום מסחר. המנוע טעה וחשב שהפרש המחירים בין חוזים הוא רווח מתקופת החזקה.
בחיבור יומי בפועל, מחיר החוזה הישן מאתמול ומחיר החוזה החדש של היום כוללים גם תנועת שוק רגילה. כך קשה יותר להבחין בטעות. השינוי שנרשם משלב את התנועה בחוזה הישן עם ההפרש בין החוזים ברגע המעבר.
גם הפחתת $58,060 כאילו מדובר ב״עלות גלגול״ במזומן לא מתקנת את המודל. חוזים עתידיים לא נקנים באמצעות תשלום מלוא הערך הנקוב המצוטט שלהם. סגירת חוזה אחד ופתיחת חוזה אחר יוצרות שינויים בפוזיציה, רווח והפסד ממומש או מסולק, עמלות, השפעות ביצוע ודרישות בטחונות. הפער בין רמות המחיר שלהם אינו חיוב מזומן אוטומטי.
+58.06: ההתאמה לאחור שנכתבת בהיסטוריה
בנייה נפוצה של סדרה רציפה מוסיפה את פער הגלגול למחירים המוקדמים יותר. לפי השיטה הזאת, מחיר מאי של −37.63 הופך ל־20.43, וכך מתחבר ליוני בלי קפיצה. גם תצפיות מוקדמות יותר באותו מקטע היסטורי עולות ב־58.06.
| שיטת בנייה | מה קורה בנקודת החיבור הזאת | השלכה למחקר |
|---|---|---|
| ללא התאמה | הפער של $58.06 נשאר | אינדיקטורים עלולים לפרש את המעבר בין החוזים כתנועת שוק |
| התאמה לאחור בחיבור | מוסיפים 58.06 למקטע הישן | השינויים בדולרים בתוך המקטע נשמרים; הרמות ההיסטוריות והשינויים באחוזים משתנים |
| התאמה לאחור ביחס | מכפילים את המקטע הישן ב־20.43 / −37.63, כלומר בערך −0.543 | המכפיל השלילי הופך את הסימן של שינויי המחיר בתוך המקטע |
השורה האחרונה היא הסיבה שלא אקבל את התיאור ״מותאם ביחס״ כמפרט נתונים שלם. שיטה שמתנהגת באופן סביר כשהמחירים חיוביים בלבד צריכה מדיניות מפורשת לגבי מחירים אפסיים ושליליים.
גם להתאמה בחיבור יש השלכות משלה. אות שקונה מתחת לסף מוחלט של $30 עשוי להשתנות כשגלגולים מאוחרים משכתבים רמות מחיר קודמות. אות שמבוסס על ממוצע נע מהיר פחות מממוצע נע איטי עשוי להישאר ללא שינוי בעקבות היסט תוספתי אחיד, בתנאי שאותו היסט מוחל על שני החלונות. צריך לבדוק בנפרד חלונות שחוצים גבול התאמה.
שמרו לצד תוצאת המחקר את שיטת ההתאמה, לוח הזמנים לגלגול וגרסת הנתונים. עבור אותות שרגישים לרמות מותאמות, שחזרו את ההיסטוריה שהייתה זמינה בכל מועד קבלת החלטה. הורדה עדכנית עשויה לכלול התאמות מגלגולים שעדיין לא התרחשו אז.
שתי שורות הפקודה החסרות בגרף הרציף
הנה יומן חשבונאי מפושט בכוונה. נניח שחוזה מאי אחד סומן במחיר −30.00 לפני הגלגול. נניח שהיציאה מחוזה מאי והכניסה לחוזה יוני מתבצעות במחירי הסליקה ההיסטוריים שלמעלה, ואז חוזה יוני מסומן במחיר 21.00. המחירים שהונחו לביצוע משמשים כאן להמחשה חשבונאית.
| אירוע ביומן | חישוב | רווח והפסד ברוטו |
|---|---|---|
| סגירת פוזיציית לונג בחוזה מאי אחד במחיר −37.63 | 1,000 × (−37.63 − (−30.00)) | −$7,630 |
| פתיחת פוזיציית לונג בחוזה יוני אחד במחיר 20.43 | ללא תנועת מחיר בכניסה | $0 |
| רישום מחיר יוני של 21.00 | 1,000 × (21.00 − 20.43) | +$570 |
| סך הכול | לפני עלויות ביצוע ועמלות | −$7,060 |
פער ה־$58.06 אינו מופיע כרווח או כהוצאה בפני עצמו. בטחונות שינוי יומיים קובעים מתי רווח והפסד מחוזים עתידיים מגיע למזומן; הם לא יוצרים עותק נוסף של הרווח או ההפסד.
גלגול אמיתי עשוי להתבצע באמצעות פקודת מרווח בין מועדי אספקה, במקום באמצעות שתי פקודות נפרדות. הסימולטור צריך לייצג את המנגנון שהונח, כולל הביצועים והחיובים שלו, ובמקביל לשמר את הפוזיציות בכל חוזה בנפרד.
בדיקת הקבלה שלי פשוטה: כל דולר של רווח והפסד ממסחר בחוזים עתידיים חייב להתיישב עם חוזה מזוהה, כמות, מכפיל ושני מחירים השייכים לאותו חוזה. אני רוצה גם את חותמת הזמן של החלטת הגלגול ואת הנתונים ששימשו אותה. כלל שמבוסס על נפח המסחר של היום שהסתיים אינו יכול לסחור בשקט מוקדם יותר באותו יום.
הציגו את הקו הרציף כדי לתת הקשר. מתחתיו הציגו את החוזים שהוחזקו בפועל וסמנו כל מעבר. אם עקומת ההון קופצת במעבר, אלה שתי שורות הפקודה הראשונות שאבדוק.
← כל הפוסטים


