פיתוח בוט טלגרם למסחר: היכן נשבר הביצוע
החיפוש «פיתוח בוט טלגרם למסחר» מוביל לרוב להדגמה שבה כפתור «קנה» משיב בזריזות «ההזמנה בוצעה». בשטח, בוט מסחר בטלגרם הוא שלושה מעגלים בלתי תלויים: הבורסה, לוגיקת האסטרטגיה והמסנג'ר — והשבר מתרחש תמיד במפגש ביניהם.
השבר הראשון — השהיית האישור. ביצוע אוטומטי של הזמנות מתייחס להזמנה כאל מבוצעת כבר עם שליחתה, אף שהבורסה טרם השיבה: המחיר זז, ובדוח נותרת החלקת מחיר שהאסטרטגיה לא תכננה. הדבר אינו נרפא ב«האצה», אלא בכך שמצב הפוזיציה נלקח מהעסקאות של הבורסה, בעוד היומן הפנימי של הבוט נחשב משני.
השני — ניתוק החיבור לבורסה. הערוץ נפל, הבוט חוזר ושולח שוב, בעוד ההזמנה הראשונה כבר התקבלה: מקבלים פוזיציה כפולה וסיכון כפול יש מאין. כאן פועלים מפתח אידמפוטנטי להזמנה והשוואת פוזיציות בעת שחזור החיבור; אחרת חוסר הסנכרון בפוזיציות יצוף רק דרך הדראודאון.
השלישי — המסנג'ר עצמו. מסירת הודעות ולחיצות אינה מובטחת: הכפתור נלחץ פעמיים, והסטטוס מצויר לפי מצב מיושן. לכן פקודה מהצ'אט היא בקשה, ולא עובדת עסקה — ואותה צריכה לאשר הבורסה. נבחן כיצד סוגרים את נקודות הכשל הללו.
מה משתנה במעגל המסחר לאחר האוטומציה
לפני האוטומציה, הדרך מהאות ועד להזמנה ארכה מארבעים שניות ועד כמה דקות: עד שהסוחר מבחין בהתראה, עובר לטרמינל ומזין פרמטרים — המחיר מספיק לזוז. הבוט קורא את האות ושולח הזמנה עם חישוב נפח והזמנות הגנה בתוך שניות בודדות, ולכן כניסה בקטע תנודתי נשארת בגבולות הכלל.
חלק הפעולות הידניות מצטמצם לסט מצומצם: פתיחה וסגירה של פוזיציה, הזזת רמת ההגנה, מימוש חלקי של רווח — כולם עוברים לכללי האסטרטגיה. לאדם נשאר מה שאי אפשר למסד — שינוי פרמטרים, השהיה במסחר, משיכת כספים. כל פעולה כזו מתועדת יחד עם המבצע והזמן.
סוג כשל נפרד — טעויות הסוחר: הזמנת הגנה שנשכחה, צד עסקה שגוי, נפח גדול בסדר גודל מהמחושב. הבדיקות מבוצעות לפני שליחת ההזמנה ואינן תלויות בעייפות או בחיפזון, ולכן בשלב הביצוע סוג התקלות הזה נעלם.
בקרת הסיכון נמדדת לפי הפוזיציה, ולא לפי תחושה: מגבלה לעסקה, עומס כולל לפי כלים, מספר הפוזיציות הפתוחות בו-זמנית והדראודאון המקסימלי ליום — נבדקים לפני כל הזמנה. בחריגה מהגבול ההזמנה אינה נשלחת, והאירוע נרשם בדוח.
יומן העסקאות אוסף הכול: זמן האות, פרמטרי ההזמנה, תגובת הפלטפורמה, סיבת הכניסה והיציאה, מצב הפוזיציה בכל שלב. לפיו רואים היכן התוכנית והמציאות נפרדות — וזו הדרך היחידה להעריך ביושר מה נתנה האוטומציה לאורך התקופה.
השוואת מצבי ביצוע: טבלת אפשרויות
מצב הביצוע אינו הגדרה «לכול», אלא פרמטר ברמת הכלי והאסטרטגיה בנפרד. אותו בוט יכול גם לפתוח פוזיציה בעצמו וגם להמתין לאישור במסנג'ר, ולכן את המצב בוחרים לפי בגרות האסטרטגיה ולפי מי שנושא באחריות לסיכון. להלן חלופות עובדות והמחיר שלהן.
| אפשרות | מתי מתאימה | מגבלות |
|---|---|---|
| ביצוע אוטומטי מלא | האסטרטגיה מכוילת, כללי הכניסה והיציאה ממוסדים, הסיכון מוגבל בצד הבוט | שגיאת לוגיקה מבוצעת מיד וללא אדם; חובה סטופים מגנים ועצירת חירום |
| אישור ידני של העסקה | השבועות הראשונים בחשבון אמיתי, שוק לא יציב, כלים בעלי נזילות נמוכה | השהיה בין האות לכניסה, החלקת מחיר; בתנועה חדה אין זמן לקבל החלטה |
| מצב אותות | האסטרטגיה נבחנת, או שהמבצע הוא מערכת חיצונית והבוט רק מחשב ומתריע | אין בקרת סיכון אוטומטית, הסטטיסטיקה מעוותת בגלל החמצות ואיחורים אנושיים |
| העתקה פרופורציונלית | יש צורך לחזור על עסקאות החשבון המוביל בקנה מידה לפי ההון שלך | ביצועים חלקיים ופערי מחירים יוצרים סטייה מהמקור, ויש לחשב את הנפח מחדש |
| מודול ביצוע חיצוני | הביצוע כבר מתקיים בשירות נפרד, והמסנג'ר נשאר שלט רחוק | שני מעגלי מצב: נדרשים סנכרון סטטוסים והגנה מפני שליחה כפולה של פקודות |
המצבים משולבים: אותות וידני על כלי אחד, ביצוע אוטומטי — על אחר. בכל אחד מהם פועלות מגבלות קצב בקשות: ממשק הבורסה מחזיר סירוב בחריגה, ולכן הבוט מחזיק תור פקודות ומפזר את השליחה לאורך זמן.
אם לא מכניסים זאת מראש, הביצוע האוטומטי מתחיל «לירות» בצרורות, חלק מההזמנות נדחות, והפוזיציה סוטה מהמחושבת. את השפעת המצב על הארכיטקטורה מנתחים בשלב התכנון, לפני הקוד.
איך מתנהלת העבודה: מניתוח האסטרטגיה ועד למסירה
בניית בוט מסחר אינה מתחילה בקוד, אלא בניתוח האסטרטגיה: אילו אותות ניקח, באיזה טיימפריים, כיצד מחשבים נפח פוזיציה והיכן גבולות הסיכון. כל עוד לוגיקת הכניסות והיציאות אינה מתוארת באופן פורמלי, האוטומציה משחזרת את טעויות המסחר הידני — רק מהר יותר.
במקביל מקבעים את סכמת האינטראקציה: הבוט, מפתחות הגישה לבורסה, ממשק השליטה בטלגרם, אחסון המצב ויומן העסקאות.
- ניתוח אסטרטגיית המסחר וההנחות. רושמים את כללי הכניסה והיציאה, תנאי ביטול, סגירה חלקית של פוזיציה והתנהגות בהיעדר נזילות — נקודות שנויות במחלוקת מנוסחות היטב לפני הקוד.
- סכמת האינטראקציה וההרשאות. קובעים מה נכנס לבוט, אילו פקודות זמינות מהצ'אט, מי יכול ללחוץ «עצור». את המפתחות מאחסנים בנפרד מהלוגיקה, והרשאות המסחר מוגבלות.
- הגדרה וממשק שליטה. מרכיבים את הפקודות, דוחות על עסקאות והתראות על שגיאות, כולל התערבות ידנית אם החיבור לבורסה אבד.
- בדיקה על נתונים היסטוריים. הרצה על ציטוטים מהעבר עם עמלות והחלקת מחיר: בוחנים דראודאון, שיעור העסקאות הרווחיות והתנהגות בתנועות חדות.
- מעגל בדיקה. הפעלה על מפתחות בדיקה ובנפחים קטנים, השוואת עסקאות בפועל מול המחושבות, ותיקון פערים עד לקבלה.
- קבלה ומסירה. צ'ק-ליסט: שחזור לאחר תקלה, מגבלות, תיעוד ביומן, הרשאות. מוסרים תיעוד ותקנון הפעלה, ומכאן והלאה — ליווי: עוקבים אחרי המדדים ומוסיפים כללים עם שינוי האסטרטגיה.
מה נשאר בידיים שלכם לאחר ההשקה
לאחר ההשקה הבוט חי לא בהתכתבות עם המפתח, אלא במעגל שלכם — עם קונפיגורציה, סכמת ביצוע ותקנונים שלפיהם אפשר לשנות ולתחזק אותו בלעדינו. את החבילה מוסרים למאגר ולשרת, כך שאף תרחיש עובד לא יישען על הזיכרון של מישהו.
- קונפיגורציית הפעלה — זוגות מסחר, גדלי פוזיציות, מגבלות ולוח זמנים בקובץ אחד: שינויים בלי לבנות מחדש.
- סכמת הביצוע — מסלול האות עד להצבת ההזמנה: היכן מחושבים הסיכונים, כיצד מטופלים סירובי הבורסה וניסיונות חוזרים.
- מדיניות הגישה למפתחות — אילו הרשאות יש לבוט, מדוע משיכת כספים חסומה, היכן נשמרים המפתחות ומה לא נכנס ללוגים ולצ'אט.
- תקנון רוטציית מפתחות — תדירות ההחלפה, סדר הפעולות בלי לעצור את המסחר, העברת גישה עם החלפת הרכב הצוות.
- הוראות לתורנות — מה לבדוק בניטור, אילו שגיאות דורשות התערבות ואילו הבוט מטפל בהן בעצמו.
- נוהל עצירת המסחר — כיצד להסיר הזמנות, לסגור פוזיציות ולכבות את הבוט מטלגרם תוך שמירת היסטוריית העסקאות.
- סכמת פריסה וגיבויים — ממה השירות עולה מאפס, מה נשמר ובאיזו תדירות, וכיצד נבדק השחזור.
כל סעיף הוא מסמך עבודה, ולא תיאור של הבטחות: לפיו המומחה שלכם והמהנדס התורן פועלים באופן עצמאי.
מקרה בוחן: כיצד בוט המסחר ביטל את ההזמנות הידניות
לפני ההטמעה האותות הגיעו לצ'אט משותף, וההזמנות הוצבו ידנית על ידי הסוחר. בשוק רגוע התגובה ארכה 40–90 שניות, ובתנועה חדה נמתחה לכמה דקות — חלק מהאותות אבדו בזרם ההודעות.
כמעט שליש מהפעולות נסגרו ידנית, ופערים בין הפוזיציה בפועל ליומן העסקאות צפו כמה פעמים בשבוע, בדרך כלל לאחר ביצועים חלקיים.
מה שינו במעגל
הרכיבו בוט עם ממשק שליטה ב-Telegram: אות ממעגל האנליטיקה נכנס לערוץ סגור, הבוט מפרסר את מבנה ההודעה, מעביר את הפרמטרים דרך מגבלות מודול הסיכון ומציב הזמנה. הסוחר מאשר את הכניסה בלחיצת כפתור ישירות בצ'אט, והביצוע חוזר באותה הודעה — אין יותר צורך לעבור בין הטרמינל למסנג'ר. כל פעולה נרשמת ביומן עם מזהה האות המקורי, והפוזיציה נבדקת מול היומן אוטומטית לאחר כל ביצוע חלקי.
מדדים לפני ואחרי
התגובה לאות שגרתי הצטמצמה ל-2–4 שניות, ומהאישור ועד להצבת ההזמנה — פחות משנייה. שיעור הפעולות הידניות ירד מכ-~30% למקרים בודדים: המצב הידני הושאר בכוונה, לעסקאות גדולות עם אישור נוסף.
פערים בין הפוזיציה ליומן בהשוואות תקופתיות הפסיקו להופיע — בעבר הם נבעו מביצועים חלקיים ותיקונים ידניים; כעת נפח ההזמנה והתוצאה נרשמים כאירוע אחד, וחזרה למצב הפוזיציה הקודם מנותחת דרך היומן בלי ארכיאולוגיה בהיסטוריית הצ'אט.
מה עושים אם לברוקר יש מגבלות קשיחות על בקשות
מגבלות קשיחות של הברוקר אינן פגם באינטגרציה, אלא תקציב קבוע: הממשק מקבל מספר סופי של פניות ביחידת זמן. בחריגה מהתקציב המפתח נחסם זמנית, והבוט מאבד את היכולת לסגור פוזיציה בדיוק ברגע תנועת השוק. ניסיונות חוזרים רק מאריכים את החסימה, ולכן זרימת הפניות מתוכננת מראש ולא נכבית תוך כדי תנועה.
כל הפעולות עוברות דרך תור הזמנות אחד עם מגביל קצב משותף, שמחזיק אותו 20–30% מתחת למותר. הרזרבה מוקדשת לפקודות חירום — ביטול, צמצום וסגירת פוזיציות. בקשות מידע: דוחות, היסטוריה, סטטיסטיקה — מפנות את הדרך לבקשות מסחר, ובמצב עומס נדחות.
ניסיונות חוזרים מיושמים רק על פעולות עם מפתח הלקוח: לכל הזמנה מוקצה מזהה משלה, ולכן הניסיון החוזר לא יוצר כפילות של ההזמנה. המרווח גדל באופן אקספוננציאלי עם פיזור, כדי שזרמים לא יפגעו בממשק בו-זמנית; לאחר מיצוי הניסיונות המשימה עוברת לתור טיפול ומעלה התראה לאחראי.
מעגל נפרד — השוואת מצב: הבוט מושך מעת לעת פוזיציות פתוחות והזמנות פעילות ומביא את המודל המקומי למצב בפועל. אם ממשק המסחר אינו זמין או ש-Telegram אינו מגיב, אירועים קריטיים יוצאים בערוץ גיבוי — דוא"ל או מסנג'ר נוסף. תקציב הבקשות מושקע על ניהול הפוזיציה, ולא על סקרים לשם הסקר.
ספקות טכניים: הרשאות, מגבלות, עמידות בכשלים
ספקות מעשיים של הלקוח נוגעים לא ללוגיקת האסטרטגיה, אלא לתפעול: אילו הרשאות מקנה המפתח, מה יקרה בניתוק הערוץ והיכן נגמרת האוטומטיקה. להלן תשובות למה שצף לרוב לפני ההתחלה, וכל אחת מהן הופכת לסעיף נפרד בקונפיגורציה, שאותו נתאם בכתב.
ממשק השליטה יושב ב-Telegram, ולכן חלק מההחלטות נוגעות למסירת פקודות והתראות — את עמידותן בכשלים מתכננים בנפרד מהליבה הסוחרת.
אילו הרשאות דרושות למפתח הבורסה?
המפתח נוצר עם הרשאת מסחר וללא הרשאת משיכת כספים, הגישה מוגבלת לכתובות של השרתים שלנו, והפעולות עוברות דרך תת-חשבון נפרד. חשיפה של מפתח כזה אינה מאפשרת למשוך את היתרה, והוא מבוטל מאזור הניהול של הבורסה בקליק אחד.
מה עושה הבוט בעת אובדן חיבור?
יומן הזמנות מקומי עם מזהים אידמפוטנטיים: בעת שחזור הערוץ הבוט משווה את המצב מול הבורסה, משלים הזמנות שלא נסגרו ואינו שולח כפילויות. כניסות חדשות לא נפתחות באותו רגע — קודם יישור הפוזיציות.
כיצד יודעים שהבוט שותק?
צ'אט ראשי לדוחות וערוץ התראות גיבוי: אות תקופתי «הבוט חי» והתראת חירום אוטומטית אם הוא נעלם. אירועים קריטיים — הזמנה שנדחתה, מגבלה שהופעלה — משוכפלים לשני הערוצים.
היכן נגמר הביצוע האוטומטי?
מגבלות על גודל הפוזיציה, מספר העסקאות ביום והדראודאון המותר מוגדרות בקונפיג. כל מה שחריג עובר לאישור בכפתור בממשק, ולא מבוצע כברירת מחדל.
כיצד מעבירים אסטרטגיה לשוק אחר?
הפרמטרים מוצאים לקובץ נפרד, והכלי והשוק הם ערכים מוחלפים, ולכן מעבר לזוג חדש אינו דורש עריכת קוד. הקונפיג משתנה, היסטוריית העסקאות והגדרות ההתראות נשארות כשהיו.
נדון במשימה: מה נדרש מצדכם כדי להתחיל
הערכת בוט מסחר עם שליטה מהמסנג'ר מתחילה לא בקוד, אלא במיפוי נתוני הקלט. כל מה שלא מתואר לפני ההתחלה צף כבר בשלב הדיבוג ודוחה את לוחות הזמנים: בדרך כלל בדיוק כאן מאבדים שבוע-שבועיים.
כדי לחזור עם הערכה ותוכנית, ולא עם שאלות הבהרה, נדרש סט כזה:
- תיאור האסטרטגיה: תנאי כניסה ויציאה, חישוב נפח הפוזיציה, התנהגות במגמה ובטווח, מה נחשב אות ומה — רעש.
- חומרים להרצה על נתונים היסטוריים: תקופה, טיימפריים, סט כלים והתוצאה שאתם רואים כמקובלת למעבר לחשבון בדיקה.
- חשבון בדיקה: מפתחות גישה עם הרשאת מסחר אך ללא משיכת כספים — עליו מריצים את הלוגיקה עד שהדוחות מתיישבים.
- רשימת הכלים והפלטפורמות: היכן סוחרים, האם נדרשים חיבורים בו-זמנית ותמצית אחודה על הפוזיציות.
- מגבלות סיכון: מגבלה לפוזיציה, דראודאון מותר, התנהגות בניתוק החיבור — עצירה או החזקה.
- פורמט השליטה מהמסנג'ר: מה המפעיל עושה ביד — הפעלה, השהיה, עריכת פרמטרים, סגירה ידנית.
- כללי ההתראות: אילו אירועים שולחים, באיזו תדירות, והאם נדרש יומן פעולות מפעיל.
עם הסט הזה אנחנו מרכיבים תוכנית שלבים, מסמנים את הנקודות שבהן נדרשת בדיקת הלוגיקה מצדכם, ומתאמים את סדר העבודות. תארו את המשימה — נחזור עם הערכה ולוחות זמנים לכל שלב.







