הבקטסט שלנו ספר 91 מילויים מתוך 100 הוראות שנשלחו. במסחר פייפר, אותה אסטרטגיה קיבלה 63. הזמן החציוני מהאות ועד לאישור קבלת ההוראה היה 84 מילישניות, ו-12 מהמילויים שהוחמצו בפייפר היו הוראות לימיט שהבקטסט הניח שמולאו מיד כשהמחיר נגע בהן.
הפער בן 28 נקודות נראה כמו בעיה באסטרטגיה עד שהפרדנו בין החלטות ההוראה להחלטות המילוי. האסטרטגיה בחרה כמעט באותו צד, גודל ומחיר בשתי הריצות. מסלול הביצוע היה שונה: חלק מההוראות הגיעו באיחור, חלק נשארו פתוחות, וחלק פגשו שוק שכבר זז.
מהי התאמה בין הוראות בבקטסט לפייפר?
התאמה פירושה שהבקטסט ומערכת הפייפר מקבלים החלטות דומות על סמך אותו מידע זמין, ואז מביאים בחשבון במפורש את מודלי הביצוע השונים שלהם. אין פירושה שכל מילוי מדומה צריך להתאים למילוי בפייפר. נתונים היסטוריים בנרות אינם יכולים לשחזר את המיקום בתור, ופלטפורמת פייפר עשויה להשתמש במודל התאמה שונה מזה של בורסה חיה.
השאלה המועילה ממוקדת יותר: עבור כל הוראה שהאסטרטגיה התכוונה לשלוח, האם אפשר להסביר מה קרה אחר כך? ספירת עסקאות ותשואה סופית מסתירות יותר מדי. שמרו רשומה מאוחדת לכל החלטה, עם מזהה החלטת אסטרטגיה יציב שעובר דרך אירועי האות, ההוראה, האישור, הביטול והמילוי.
| השוואה | מה היא חושפת | דוגמה |
|---|---|---|
| מועד ההחלטה והצד | הבדלים בקלט או בתזמון | אות הפייפר מופעל נר אחד מאוחר יותר |
| הגודל והמחיר המבוקשים | עיגול, ניהול סיכונים או כללי הפלטפורמה | הבקטסט שולח 0.013 BTC; הפייפר מעגל ל-0.01 |
| מעברי מצב ההוראה | פערים בשליחה, דחייה וביטול | הבקטסט מתייחס לבקשת ביטול כאילו הושלמה |
| כמות המילוי והמחיר | אופטימיות במודל המילוי או תנועת השוק | המחיר נגע בהוראת לימיט והיא מולאה במלואה בבקטסט, אך לא בפייפר |
למה הוראות הלימיט שהמחיר נגע בהן היו אחראיות לכל כך הרבה החמצות?
הבקטסט שלנו השתמש בנרות של דקה. אם מחיר הלימיט היה בתוך הטווח שבין השיא לשפל של נר, הוא סימן את ההוראה כמולאה. הכלל הזה עונה על השאלה אם השוק נסחר במחיר הזה בשלב כלשהו במהלך הדקה. הוא לא עונה אם ההוראה שלנו כבר הייתה פעילה אז, אם היא הייתה ראשונה בתור, או אם נסחרה כמות מספקת אחרי שההוראה הגיעה.
יומני הפייפר חשפו את בעיית התזמון. האסטרטגיה חישבה אות בשעה 12:03:00.000, אבל אירוע נתוני השוק הגיע לתהליך ההוראות 31 מילישניות לאחר מכן. בדיקות הסיכון ארכו עוד 22 מילישניות, וסימולטור הפלטפורמה אישר את ההוראה 31 מילישניות אחרי כן. בתנועה מהירה, נר היסטורי עלול לגרום למחיר להיראות בר-השגה, אף שהוראת הלימיט הגיעה אחרי שהשוק כבר עזב אותו.
הייתה גם הסתבכות נוספת: 12 הוראות פייפר עדיין היו פתוחות כשהבקטסט כבר התקדם. הסימולטור קיבל בקשת ביטול כאילו ההוראה נעלמה מיד. במערכת הפייפר, אישור הביטול הגיע מאוחר יותר; 3 הוראות מולאו במהלך הזמן הזה. הדבר שינה את הפוזיציה שהאות הבא ראה.
איך מודדים את הפער בלי להטעות את עצמנו?
התחילו בדוח התאמה פשוט שמקובץ לפי כוונת ההוראה. השאירו את המכנה גלוי. "שיעור מילוי" יכול להיות מספר המילויים חלקי מספר ההוראות שנשלחו, כמות שמולאה חלקי הכמות המבוקשת, או מספר ההוראות שמולאו חלקי מספר ההוראות שהגיעו לפלטפורמה. כל מדד עונה על שאלה אחרת.
- חברו בין האירועים באמצעות מזהה החלטה או מזהה הוראת לקוח, ולא באמצעות חותמת זמן שמנחשים בדיעבד.
- השוו קודם את ההחלטות: מועד האות, הצד, הכמות המבוקשת, סוג ההוראה ומחיר הלימיט.
- בהחלטות תואמות, השוו את עיכוב האישור, דחיות, זמן פתיחה, זמן ביטול, כמות שמולאה ומחיר מילוי משוקלל לפי נפח.
- דווחו על שיעורים לפי סוג הוראה ותנאי שוק. שיעור מילוי כולל של 63% עשוי להסתיר 90% בהוראות שוק ו-35% בהוראות לימיט פסיביות.
הקפידו שהקטגוריות יהיו מובחנות זו מזו. הוראה שנדחתה אינה הוראה שלא מולאה; הוראה שמולאה חלקית אינה מילוי מלא; והוראה שבוטלה אחרי מילוי חלקי עדיין שינתה את הפוזיציה. ספרו גם הוראות וגם כמות מבוקשת, כדי שמקבץ של הוראות זעירות לא יגרום לתוצאה להיראות טובה יותר מכפי שהיא.
מה כדאי לשנות בבקטסט?
השתמשו בכלל מילוי שתואם את רזולוציית הנתונים ואת ההתנהגות הרצויה של ההוראה. בנתוני נרות, נגיעה במחיר לימיט היא ראיה למילוי אפשרי, לא הוכחה. אפשר למדל מילויים חלקיים באופן שמרני, לדרוש שהמסחר יעבור מעבר למחיר, או להחריג הוראות פסיביות שאי אפשר להעריך את מיקומן בתור. כל בחירה עונה על שאלה אחרת; תעדו אותה והשוו את התוצאה לפי יותר מכלל סביר אחד.
מדלו גם את מצב ההוראה. הוראה נשארת פעילה עד שהמערכת מקבלת אירוע סופי, ובקשת ביטול אינה מוחקת את החשיפה. אם האסטרטגיה יכולה לשלוח הוראה שנייה בזמן שהראשונה ממתינה, הבקטסט שלה צריך לייצג את התחרות הזאת או למנוע אותה בתכנון.
מודל מילוי הוא טענה לגבי מה שההוראה שלכם הייתה יכולה לעשות. תנו לו כלל שאפשר להסביר, ואז בדקו את הכלל מול יומני הפייפר.
בפער בן 28 הנקודות שלנו, החלק המפתיע לא היה שבקטסט המבוסס על נרות של דקה הפריז במילויים פסיביים. אלא שהפוזיציה של האסטרטגיה סטתה עוד לפני ההחלטה הבאה, כי תזמון הביטול לא נכלל. אחרי שתיקנו את מודל מצב ההוראה והפסקנו להתייחס לכל נגיעה במחיר לימיט כמילוי, ההשוואה לפייפר החמיאה לנו פחות והייתה מועילה יותר.
זה הרף המעשי להתאמה: לכל הבדל משמעותי בין התנהגות מדומה להתנהגות בפייפר יש סיבה מתועדת, והבקטסט אינו מתיימר לוודאות כשהנתונים שלו אינם יכולים לספק אותה.
← כל הפוסטים


