אלגוריתם מבוסס סיכון לחישוב גודל פוזיציה במסחר

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

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

שאלות נפוצות

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

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1376
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1350
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    798
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1093
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1035
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1132

מדוע מערכת חישוב הפוזיציה נשברת בתנועות חדות

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

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

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

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

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

מה נותן חישוב פוזיציה מונחה-סיכון

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

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

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

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

השוואה בין גישות לניהול סיכון לעסקה

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

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

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

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

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

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

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

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

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

תיעוד, סכמות ותקנונים במקום כיול ידני

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

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

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

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

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

איך היה לפני ההטמעה

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

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

מה שינו ומה קיבלנו

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

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

בתקופה ברת-השוואה הדראון — 11% מול 34%, שיעור העסקאות בחריגת סיכון — 0.4% מול 6.8%, עריכת הכללים — 15–20 דקות במקום שלושה ימים: הפרמטרים משתנים בקונפיגורציה של השירות ונקלטים בלי לבנות מחדש את החוזה. המחזור נותר כשהיה, והעמידות לתנודתיות עלתה בזכות ניהול הסיכון, ולא בזכות הפסקה במסחר.

במה נבדל מודל סיכון לעסקה מנפח קבוע

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

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

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

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

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

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

ספקות טכניים: תנודתיות, החלקה, נזילות

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

מה לעשות אם היסטוריית העסקאות חלקית?

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

כיצד המערכת מתנהגת בירידת נזילות?

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

האם צריך לעצור את המסחר בזמן ההטמעה?

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

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

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

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

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

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

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