פיתוח מערכת סטופ-לוס אוטומטית לבוט קריפטו

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

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

שאלות נפוצות

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

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

סטופ-לוס לבוט קריפטו: היכן נשברת הגנת הפוזיציה

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

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

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

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

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

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

האפקט המדיד של הגנה אוטומטית על הפוזיציה

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

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

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

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

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

מצבי הפעלה: השוואת גישות ומגבלות

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

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

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

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

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

שלבי ההטמעה: מביקורת הלוגיקה ועד הקבלה

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

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

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

ערכת המסירה: תצורות, תרשימים, נהלים

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

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

מקרה בוחן: כיצד הוסרה סדרת סגירות כפויות

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

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

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

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

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

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

מדד לפני אחרי
סגירות כפויות 14 לסשן 1
זמן הפעלה ממוצע של ההגנה ~9 שנ' 0.4 שנ'
ירידה בקטע 21% 6%
שיעור הפעלות כוזבות 32% 6%

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

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

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

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

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

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

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

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

ספקות טכניים נפוצים לפני תחילת העבודה

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

כיצד המערכת מבחינה בין הפעלה כוזבת להיפוך אמיתי?

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

מהי ההשהיה בין האות לביצוע?

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

האם הסטופ-לוס לא ישבור את לוגיקת האסטרטגיה שלי?

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

האם אקבל את קוד המקור ואת הגישות?

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

מי מלווה את המערכת לאחר המסירה?

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

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

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

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

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