בוט מסחר AI: היכן נשבר המסחר האוטומטי בשוק חי
בוט מסחר AI בתקופת בדיקה מציג תשואה יציבה, ובשוק חי הדבר הראשון שנשבר הוא לא התחזית, אלא הביצוע. המודל יכול להיות חזק, אבל אם הבוט מאבד קשר עם הבורסה ברגע האות, שולח הזמנה פעמיים או מבוצע במחיר שכבר לא קיים — התוצאה סוטה מהחישוב פי כמה. מפרקים היכן נקרע המסחר האוטומטי ואיך זה נסגר.
הצוואר בקבוק הראשון — ניתוקי קשר עם הבורסה. הממשק מגיב באיחור, החיבור מתחבר מחדש, ומצב ההזמנה ברגע זה אינו ידוע: יצאה או לא. בוט בלי התאמה בין פוזיציות בפועל ליומן עסקאות חוזר על ההזמנה ומקבל נפח כפול במקום שבו תוכנן נפח בודד.
מעטפת מעל ממשקי הבורסה CCXT נותנת דרך אחודה לקרוא פוזיציות והזמנות, אבל אלגוריתם ההתאמה לכל תרחיש נכתב בנפרד.
השני — החלקת הזמנות. האות מחושב לפי מחיר אחד, הביצוע מגיע במחיר אחר: בצמדים נזילים ההפרש הוא שברי אחוז, בצרים — פי כמה יותר, וכל התשואה המחושבת של האסטרטגיה נעלמת בפער הזה.
זה מטופל בהזמנות לימיט עם סטיית מחיר מותרת, פיצול נפח ומגבלה על סטיית מחיר: אם המחיר התרחק מעבר לכך, העסקה לא נפתחת כלל.
השלישי — היעדר בקרת דראודאון ברמת הבוט. מגבלת סיכון לעסקה אחת לא מצילה כשסדרת הפסדים ופוזיציה תקועה מצטברות ליום אחד. דרושה שכבה בלתי תלויה: תקרת דראודאון יומית ותקופתית, עצירה אוטומטית בהגעה אליה והחזרת התיק למצב בטוח בלי מעורבות אדם.
אף אחד מהכשלים האלה לא נראה בהיסטוריה — הם מתגלים רק בשוק אמיתי. בהמשך מפרקים איך כל אחד מהם נסגר.
מהירות תגובה, משמעת ובקרת סיכון במסחר
מסחר ידני נתקע בשלושה דברים: מהירות, משמעת וגודל סיכון לעסקה. עד שהסוחר רואה אות, בודק את ספר ההזמנות ומאשר כניסה, המחיר בורח יחד עם חלק מהרווח הצפוי. אחר כך מתחברים רגשות: אחרי רצף הפסדים הכלל «לא יותר מ-N% לעסקה» הופך בשקט ל«אשלים כדי להחזיר הפסדים».
הבוט מסיר את שתי הבעיות בבת אחת. אות מהמודל הופך להזמנה תוך שניות, והמגבלות לעסקה, לדראודאון יומי ולמספר פוזיציות כתובות בקוד ואינן תלויות במצב רוח. הביצוע עובר דרך CCXT — שכבת גישה אחודה לבורסות, ולכן אותה אסטרטגיה עובדת בכמה פלטפורמות בלי לשכתב את הלוגיקה.
| פרמטר | ידני | עם בוט |
|---|---|---|
| תגובה לאות | שניות-דקות, תלוי בעומס | שניות, ללא החמצות |
| כללי כניסה | נסחפים אחרי רצף הפסדים | מקובעים בקוד האסטרטגיה |
| סיכון לעסקה | «בעין», נבחן מחדש תחת לחץ | מגבלה לעסקה, ליום, למספר פוזיציות |
| פוזיציות לילה | תלויות במי שלא ישן | עובד ללא מפעיל |
| ניתוח עסקאות | ייצוא ידני, חלק הולך לאיבוד | יומן הזמנות ואותות |
בנפרד מחושב סיכון: גודל הפוזיציה ורמות הסטופ נגזרים מההון הנוכחי, ולכן אחרי דראודאון נפח העסקה הבאה מצטמצם אוטומטית.
בסך הכל, זו התנהגות אחידה של האסטרטגיה בכל נפח, דראודאון צפוי ויומן שמראה היכן הכלל עבד והיכן המודל טעה.
דרכי הפעלה של הבוט: ענן, שרת עצמי, היברידי
היכן נמצא ליבת המסחר — קובע את השיהוי לפלטפורמה, את הזמינות ברגעי תנודתיות ואת מהירות החזרה לאחור של גרסה כושלת. חלק התחזית רגיש לזיכרון להסקת המודל ולמערכת אימון מחדש, ולא למהירות התגובה לטיק. לכן פריסת הבוט ואופן החיבור לבורסות נבחרים יחד: תרשים ההפעלה מגדיר גם את ארכיטקטורת העמידות בתקלות.
להלן שלושה תרשיםים, שביניהם באמת בוחרים בהתחלה ובהרחבה.
| אפשרות | מתי מתאימה | מגבלות |
|---|---|---|
| הפעלה בענן | התחלה מהירה, מחזור קטן, אימון מחדש נדיר | תלות בספק, שיהויי רשת לפלטפורמות, מגבלות על חישובים ארוכים |
| תשתית עצמית | רגישות לשיהוי, דרישות לאחסון נתונים ולהרשאות | עדכונים, ניטור ועמידות בתקלות נשארים באחריותכם |
| היברידי | ליבת מסחר ליד הפלטפורמה, היסטוריית עסקאות ואימון — בענן | שתי סביבות, נדרשים תצורה משותפת וניטור מקצה לקצה |
חיבור לבורסות נסגר עם מחבר אחוד על CCXT: ממשק אחד לעשרות פלטפורמות להזמנות, יתרות והיסטוריית עסקאות. הוספת בורסה חדשה — עריכת תצורה, לא שכתוב ליבת המסחר, לכן פיזור בין פלטפורמות לא הופך לפרויקט נפרד. מפתחות נשמרים בסודות עם הרשאות נפרדות: מסחר בלי משיכת כספים, מגבלות על נפח ותדירות בקשות.
שלבי עבודה: ביקורת אסטרטגיה, תרשים, תצורה, בדיקה
סדר השלבים נשמר קשיח: כל עוד כללי האסטרטגיה לא מנוסחים כתנאים פורמליים, לא תרשים האינטגרציה ולא תצורת הבוט ייתנו תוצאה צפויה. טעות שהוחמצה בכל שלב צפה כבר בחשבון החי, לכן כל שלב נסגר בארטיפקט ניתן לבדיקה.
- ביקורת אסטרטגיה: מפרקים את כללי הכניסה והיציאה, טיימפריימים עבודה, דראודאון מותר ומגבלות על פוזיציה — מתרגמים אותם לתנאים חד-משמעיים שהקוד מבצע בלי פרשנויות.
- תרשים אינטגרציה: מקור נתוני שוק, מודול חיבור לבורסה, אחסון מפתחות גישה והפרדה בין קונטור בדיקה לקונטור חי.
- הכנת נתונים: מנקים היסטוריה, משלימים חוסרים, מתחשבים בעמלות ובהחלקה — בלי זה התחזית נראית טוב יותר מהמסחר.
- תצורת הבוט: חישוב אות, מנהל סיכונים, מבצע הזמנות, יומן עסקאות — כל מודול נבדק בנפרד.
- בדיקה בקונטור בדיקה: תחילה ריצה על נתונים היסטוריים, אחר כך חשבון דמו עם זרם ציטוטים אמיתי.
- בדיקת תקלות: ניתוק קשר, הזמנה נדחית, קפיצת מחיר חדה — בודקים כיצד הבוט סוגר פוזיציות ומשחזר חיבור.
- מסירה לניהול: פאנל עם פוזיציות פתוחות, התראות על תקלות, נוהל עצירה ידנית.
בסופו של דבר — בוט מסחר AI עובד וסדר פעולות ברור למקרה שהשוק יתנהג בצורה לא שגרתית.
תצורות, תרשימי אינטגרציות ונוהלים בתוצאה
הבוט נמסר יחד עם ערכה שלפיה אפשר לתחזק, לבדוק ולהעביר אותו לצוות אחר. להלן הרכב האספקה לפי כל תחום: תצורה, תרשים אינטגרציות, מדיניות גישה למפתחות ונוהלי עדכון.
- תצורת הבוט — קבצים עם רשימת צמדי מסחר, מגבלות נפח פוזיציה, ספי הפעלה של התחזית ומצב סיכון. עריכות מבוצעות בלי שינוי בקוד.
- תרשים אינטגרציות — דיאגרמה של אינטראקציה עם פלטפורמות מסחר, מקור נתוני שוק, מאגר היסטוריה, מודול תחזית ושכבת ביצוע הזמנות, עם נקודות כשל מסומנות.
- מדיניות גישה למפתחות — הפרדת הרשאות לפי פלטפורמות, הרשאות מסחר בלי משיכת כספים, רוטציית מפתחות, אחסון מאובטח ויומן פניות.
- תיעוד המודל — אילו תכונות קלט, איך מחושבת התחזית, לפי אילו מדדים מוערכת האיכות ומתי מופעל אימון מחדש.
- נוהל עדכון וחזרה לאחור — תמונות מצב של תצורה וגרסת מודל, סדר מעבר לענף חדש וחזרה למערכת הפרמטרים הקודמת.
- אמצעי ניטור — מדדי שיהוי לפלטפורמה, שיעור הזמנות נדחות, פערים בין תחזית למציאות והתראות לצ'אט עבודה.
הערכה נבנית במהלך העבודה, לא בסוף: תצורה ומדיניות מקובעות לפני העסקאות הראשונות, תרשים האינטגרציות מתעדכן בחיבור הפלטפורמה השנייה, ונוהל העדכון נבדק בחזרה לאחור מדומה.
מקרה בוחן: תיק בארבע בורסות — מדדים לפני ואחרי
איך ניהלו את התיק ידנית
תיק בארבע בורסות ניהל סוחר אחד: איחד ספרי הזמנות ידנית, עקב אחרי פערי מחירים בין פלטפורמות והציב בעצמו זוגות הזמנות. בלילה וברגעי תנועות חדות אותות אבדו — לפי היומן ההחמצה הגיעה עד שליש.
חלק מההזמנות יצאו עם טעות בנפח או במחיר שהספיק לברוח בשניות שבין ההחלטה להזנה; ניתוח עסקאות כאלה והתאמת יתרות תפסו שעות כל שבוע.
מה שינו ומה הראו המדדים
הביצוע הועבר לשכבת גישה אחודה לבורסות על CCXT במקום ארבע ערכות סקריפטים מפוזרות. מודל התחזית מחשב הסתברות לתנועה ועובד כמסנן: אות עובר לביצוע רק אם המודל, מגבלות הסיכון ובדיקת הנזילות תאמו.
ההזמנות אידמפוטנטיות לפי מזהה משלהן, ואחרי ניתוק קשר הבוט מתאים פוזיציות בפועל לכאלה הצפויות ומביא אותן ליעד.
נותרו שתי פעולות ידניות: עריכת מגבלות וניתוח דוח שבועי. הסוחר הפסיק להיות צוואר בקבוק — התיק עובד בשעות הלילה ובכל ארבע הפלטפורמות בו-זמנית.
מה לעשות אם כבר פרוס בוט מסחר קלאסי?
כן, אין צורך לכתוב את הבוט מחדש — מודל תחזית מוטמע בקונטור קיים. הכללים נשארים שכבת ביצוע: הם מחזיקים חיבור לבורסה, מחשבים פוזיציה, עומדים במגבלות סיכון. המודל מתווסף כמודול נפרד ועונה רק על שאלה אחת — האם בכלל שווה להיכנס לעסקה עכשיו.
ההפרדה יוצאת נקייה: המודל מוסר הסתברות לתנועה לפי סט תכונות — תנודתיות, מצב שוק, התנהגות נפח, והכללים מתרגמים אותה לגודל פוזיציה, סטופ ורגע כניסה. קונטור כזה קל יותר לנפות. אם התחזית טועה, מיד רואים באיזו שכבה: תכונות, המודל עצמו או ביצוע ההזמנה.
נתונים לאימון כבר יש לכם — יומני אותות ועסקאות של הבוט עצמו. לפיהם משחזרים היסטוריית החלטות ומצרפים טורי שוק לאותו תקופה. תנאי מפתח: תכונות מחושבות באותו קוד כמו במסחר אמיתי, אחרת המודל לומד על התפלגות אחת ורואה אחרת, והאיכות על היסטוריה לא עוברת לחשבון חי.
ההרצה לפעולה נעשית בשלבים, בלי לעצור את המסחר. תחילה מצב צל: המודל מחשב תחזיות וכותב אותן לצד החלטות הכללים, הבוט סוחר כרגיל. כשהסטטיסטיקה המצטברת מספיקה כדי להשוות דיוק באותם תנאים, מגדילים בהדרגה את חלק ההון למודל — מחלק קטן עד מלא. מעבר חזרה לכללים נעשה בהגדרה אחת.
כך שדרוג של בוט קיים לא הופך לזינוק: הלוגיקה הישנה נשארת כרשת ביטחון עד שהחדשה תוכיח איכות על הנתונים שלכם ומצב השוק שלכם.
ספקות טכניים: שיהויים, סיכון, תקלות, הרשאות
המזמין לפני הפעלה שואל אותן שאלות הנדסיות: מה יקרה בניתוק ערוץ לבורסה, האם אפשר לסמוך על תחזית המודל, אילו הרשאות מקבל הבוט בחשבון ואיך הוא מתנהג בתקלה. להלן תשובות קצרות לכל סעיף.
העיקרון הכללי אחד: כל מצב לא שגרתי מעביר את הבוט למצב שמרני — עצירת כניסות חדשות וצמצום פוזיציות לפי כללי האסטרטגיה, ולא ניסיון «לסחוט» את העסקה.
מה קורה בניתוק קשר עם הבורסה?
הערוץ מנוטר לפי זמן תגובה ותדירות שגיאות. כשהקשר נופל הבוט לא שולח הזמנות חדשות, ואחרי שחזור הוא מתאים את מצב החשבון בפועל לחשבונאות הפנימית. פער נרשם ביומן ונסגר בהתאמה חוזרת. הזמנות שיצאו לפני הניתוק עוקבות לפי מזהים — פוזיציות אבודות לא נשארות.
עד כמה אמינה תחזית המודל?
המודל נותן הערכת הסתברות, לא ערובה. האיכות נבדקת על נתונים היסטוריים בלי הצצה לעתיד, בנפרד — על תקופה שהמודל לא ראה. במסחר אמיתי מעל האות פועלים הגבלת גודל פוזיציה והזמנת הגנה חובה. אם איכות האות יורדת מתחת לסף, הבוט מפחית נפח או עוצר מסחר.
אילו הרשאות דרושות לבוט בבורסה?
רק מפתחות מסחר, בלי הרשאת משיכת כספים. הכספים נשארים בחשבון הבורסאי של המזמין, והבוט פיזית לא יכול למשוך אותם. המפתחות נשמרים במאגר מאובטח עם גישה מוגבלת. ביטול מפתח שלילה מיידית גישה לבוט ולא פוגע במשיכת כספים.
איך הבוט מתנהג בתקלה?
פועלות כמה מגבלות בלתי תלויות: תקרת הפסד יומית, מגבלה על מספר עסקאות ומפסק ידני לעצירת מסחר. כשאחת מהן מופעלת, הפוזיציות נסגרות לפי כללי האסטרטגיה, והבוט עובר למצב המתנה עד אישור מפעיל. כל פעולה נרשמת ביומן עם זמן וסיבה — ניתוח תקלה אורך דקות.
נדון באסטרטגיה ונחזור עם הערכה ותוכנית
כדי שההערכה תישען על נתונים ולא על תחושות, להתחלה די בכמה פרטי קלט. בהמשך אנחנו מפרקים את לוגיקת הכניסות והיציאות, מריצים אותה על נתונים היסטוריים ורק אחרי זה מציינים את הרכב העבודה והמועדים.
מה לשלוח כדי שנתחיל לחשב:
- כללי אסטרטגיה: תנאי כניסה ויציאה, טיימפריים עבודה, רשימת מכשירים;
- פלטפורמות וסוגי חשבונות שבהם הבוט צריך לעבוד;
- קוד נוכחי, אם קיים: מאגר או ארכיון, תצורות, לוגים של הרצות אחרונות;
- איך מחושבים סיכונים כעת: גודל פוזיציה, מגבלות דראודאון, תנאי סטופ;
- דרישות למודל תחזית: אופק, סט תכונות, שיהוי אות מותר;
- מגבלות תשתית: היכן הבוט ירוץ, האם יש גישה לשרתים ולמפתחות עם הרשאת מסחר בלי משיכת כספים.
בתגובה אתם מקבלים תרשים אינטראקציה של מודולים (איסוף נתונים דרך CCXT, חישוב תכונות, תחזית, ביצוע הזמנות), הרכב עבודה לפי שלבים, תוכנית הטמעה עם נקודות בקרה והערכת מועדים.
אם על היסטוריה הכללים המוצהרים לא נותנים תוצאה יציבה, נגיד זאת ישירות ונציע לתקן את הלוגיקה, ולא להתאים את הדוח לציפיות.
תארו את המשימה — נחזור עם הערכה ותוכנית.







