מדוע אלגוריתם martingale נשבר בשוק החי
מרטינגייל נראה יציב בהיסטוריה: הפסדים נדירים מכוסים על ידי סדרת הכפלות. בשוק החי לא הרעיון עצמו נשבר, אלא גבולותיו.
נפח העסקה הבאה גדל כמו 2ⁿ, ובשלב השמיני-עשירי המרג'ין הנדרש גדול פי עשרות מההתחלתי — איזון פוזיציה נגד המגמה נתקל לא בהסתברות להיפוך, אלא בגודל החשבון ובמינוף שהברוקר ייתן דווקא היום.
הטיעון שניסח נאסים טאלב פועל כאן באופן מילולי: הפסד שמאפס את החשבון לא מפוצה בשלב הבא — פשיטת רגל היא בלתי הפיכה. נקודת כשל שנייה — היעדר תנאי עצירה: באלגוריתם לא מוגדר לא מגבלה על מספר הצעדים, לא תקרת ירידה של האסטרטגיה, ולא הפסקה אחרי רצף כניסות כושלות. לכן על השאלה «למה מרטינגייל מתרסק» עונה לא השוק, אלא סדרת עסקאות ללא מגבלה, שאין לה תנאי יציאה.
הסיבה השלישית — ביצוע. החלקה על ספר פקודות דל מזיזה את נקודת הכניסה, והמכפיל כבר לא משחזר את הפוזיציה; תיקונים ידניים תוך כדי תנועה — צעד מוגדל, פקודה שהוחמצה — שוברים את החישוב, וניתוק קשר ברגע הצבת פקודה נוספת משאיר סדרה פתוחה ללא שליטה. בהמשך נסביר איך זה נסגר: חישוב עומק מרבי של הסדרה, שליטה אוטונומית בביצוע והגנה מפני התערבות ידנית.
מה נותנת לוגיקת איזון פוזיציה מנוהלת
מרטינגייל קלאסי מכפיל את הנפח אחרי הפסד ונשען על הנחה שהסדרה מתישהו תתהפך. המגבלה אינה במתמטיקה, אלא בגודל החשבון הסופי: סדרה לא סגורה מוציאה כספים מהר יותר מאשר מגיע ההיפוך.
לוגיקת איזון מנוהלת מחליפה את ההנחה הזו בסט כללים שהרובוט מבצע ללא אדם — מכפיל ותקרת נפח, מגבלה על סדרת עסקאות, סיכון לעסקה וליום.
מגבלות קשיחות במקום תקווה להיפוך
ניהול גודל הפוזיציה מוגדר בנוסחה עם תקרה: צעד הסדרה לא יכול לעלות על המגבלה, וסיכון שנוצל ליום סוגר את המסחר עד יום המסחר הבא. מגבלה על סדרת עסקאות קוטעת את האיזון בצעד נתון — במקום להמתין להיפוך, הרובוט מקבע את הפסד הסדרה ומתחיל חישוב חדש.
שחזור אחרי כשל של רובוט מסחר נשען על יומן מצב: בהפעלה מחדש הפוזיציה והפקודות הפתוחות נבדקות מול הבורסה, למשל Bybit, צעד הסדרה משוחזר מהיומן, ופער מפורש כסגירה לפי הכלל. הרובוט חוזר לעבודה תוך שניות וממשיך את הסדרה מהצעד השמור, ולא פותח אותה מחדש.
דיווח שקוף על כל סדרה
על כל סדרה נשמר רישום: מספר הצעד, נפח, מחיר כניסה, תוצאה מצטברת וסיבת יציאה — מגבלה, יעד או עצירה ידנית. מודול חישוב אחד משרת כמה כלים, ורק הפרמטרים שונים, לכן התנהגות האסטרטגיה בשוק חדש צפויה ואינה דורשת לוגיקה נפרדת.
השוואת מצבים: מרטינגייל, אנטי-מרטינגייל, משולב
מצבי העבודה של אלגוריתם מסחר נבדלים לא בלוגיקת הכניסה, אלא בתגובה לסדרת עסקאות מפסידות: איך משתנה הנפח, מתי לאזן ומתי הסדרה נסגרת. בליבה אחת אנו מרכיבים ארבע תצורות — הן מוחלפות בפרמטר, בלי לבנות מחדש את הקוד.
| מצב | מתי מתאים | מגבלות |
|---|---|---|
| מרטינגייל קלאסי | דשדוש, תנודתיות שקטה, כלי עם רמות ברורות | נפח התוספת גדל לפי הכפלה: יש צורך ברזרבה כספית ובמגבלה קשיחה על מספר הצעדים |
| אנטי-מרטינגייל | מגמה, פריצת טווח, מומנטום יציב | בהיפוכים מצטברות סדרות הפסד קצרות, הרווח נחתך על ידי מסנני כניסה |
| היברידי עם החלפה | החלפת מצבי שוק בתוך סשן | קשה יותר לבדיקה: נדרש מודל להחלפת מצב ובדיקה בתפר המעבר |
| מצב ידני | דיבוג, כלי לא סטנדרטי, בדיקת רעיון | אין אוטומציה — הכניסה והאיזון כולם על המפעיל |
איך לבחור מצב לכלי שלך
את השאלה «מרטינגייל או אנטי-מרטינגייל» אנחנו פותרים לא לפי טעם, אלא לפי הטור ההיסטורי של הכלי. מחשבים התפלגות של סדרות עסקאות מפסידות, אורכן המרבי ועומק הירידה בפרמטרים שונים, ואת האותות ניקח ממקור חיצוני (TradingView או זרם הבורסה).
אם הסדרות קצרות והחזרה לממוצע יציבה — האיזון עובד; אם תנועות כיווניות שולטות, בטוח יותר להגדיל נפח לפי המגמה. אסטרטגיית איזון היברידית מוצדקת במקום שבו מצב השוק משתנה בתוך יום המסחר ואף אחת מהגישות הקיצוניות לא מחזיקה את הירידה.
החלפת מצבים בלי לשלוח קוד מחדש
מצב הוא סט פרמטרים: צעד איזון, מכפיל נפח, מספר תוספות מקסימלי, סף תנודתיות להחלפה. הם נמצאים בקובץ הגדרות שהאלגוריתם קורא בהפעלה ובאיתות ניהול, לכן מעבר בין מצבים — תיקון שורה אחת והפעלה מחדש בלי בנייה. לוגיקת האיזון נשארת ללא שינוי, רק ההגדרה שלה משתנה — כך נמנעות שגיאות של העתקת קוד ידנית.
איך אנחנו מרכיבים אלגוריתם martingale: שלבי העבודה
פיתוח אלגוריתם מסחר מתחיל לא בקוד, אלא בניתוח של איך ההחלטה מתקבלת כיום. כל עוד כללי התוספת והיציאה נמצאים בראש, אי אפשר לשחזר תקלה, והוויכוח «הרובוט אשם או השוק» מוכרע בלי לראות. לכן את שלבי הטמעת רובוט המסחר בונים כך שכל כלל יהיה מתועד לפני המימוש וייבדק בנפרד.
פורמליזציה של כללים לפני שורת הקוד הראשונה
- ביקורת הלוגיקה הנוכחית. לפי יומני עסקאות משחזרים היכן החלטות ידניות סטו מהמתוכנן ובאילו קטעים סדרת האיזון נכנסה לירידה עמוקה.
- כללי כניסה ויציאה. תנאי התחלת הסדרה, מרווח נרות, גודל הפוזיציה הראשונה, צעד התוספת ומקדם גידול הנפח, סגירה — לפי יעד, לפי זמן או לפי אות.
- סכמת ניהול סיכונים. ירידה מרבית של הסדרה באחוזים מהון העבודה, מספר צעדים מקסימלי, הפסקה אחרי רצף הפסדים ותנאי לעצירה מלאה של האלגוריתם.
בדיקה על נתונים ובמצב בדיקה
- מימוש. אסטרטגיה, מודול סיכונים ושכבת ביצוע פקודות מופרדים למודולים, הפרמטרים מועברים לקונפיגורציה — ההתנהגות משתנה בלי תיקוני קוד.
- בדיקת אסטרטגיה על היסטוריה. הרצה תוך התחשבות בעמלות, עיכובי ביצוע והחלקה, בנפרד במגמה ובדשדוש, עם בדיקה חוזרת מתגלגלת על קטעים עוקבים.
- בדיקה במצב טסט. הפעלה על זרם ציטוטים חי בלי הצבת פקודות: משווים אותות ונפחים להרצה ההיסטורית ותופסים פערים לפני מעבר לחשבון אמיתי.
- מסירת האלגוריתם ללקוח. מאגר קוד, קונפיגורציות, תיאור הלוגיקה, הוראות הפעלה וחזרה לגרסה קודמת, ובהמשך — ליווי לפי נוהל מוסכם.
מה כלול באספקה: קוד, קונפיגורציות, נהלים
אפשר לקבל את האספקה לפי סימן פורמלי: הקוד רץ במתאר בדיקה, הקונפיגורציה משנה את התנהגות האלגוריתם בלי תיקון קוד, והנוהל מתאר את פעולות התורן. להלן — מה בדיוק נמסר.
- קוד המקור של רובוט המסחר עם הערות: חישוב נפח הפוזיציה הבאה בסדרה, הצבה וביטול פקודות, טיפול בביצועים חלקיים ובניתוקי קשר.
- קונפיגורציית פרמטרי סיכון בקובץ נפרד: גודל פוזיציה בסיסי, מכפיל ומגבלת מספר מדרגות, סטופ לסדרה, מגבלת חשיפה מצטברת, חלונות מסחר.
- מדיניות גישה ל-API: מפתחות מופרדים לפי הרשאות, משיכת כספים סגורה בצד הבורסה, מוגדרות רוטציה של מפתחות והגבלות לפי כתובות ותדירות בקשות.
- סכמת אינטראקציה בין מודולים: מסלול הנתונים מספר הפקודות עד ההחלטה על כניסה ויציאה, נקודות רישום ביומן ומטריקות למעקב.
- תיעוד לאלגוריתם: לוגיקת הסדרות ותנאי איפוס, התנהגות בנזילות נמוכה, בהתרחבות ספרד ובהחלקה.
- נוהל עצירת חירום: סימני הפעלה, סדר ביטול פקודות וסגירת פוזיציות, תיעוד תקלה וניתוח סיבות.
- צ'ק-ליסט קבלה: הרצה על נתונים היסטוריים ועל מתאר בדיקה של הבורסה לפני מעבר לחשבון עבודה.
תיעוד שמאפשר למהנדס אחר לעבוד
מדור נפרד — הוראות פריסה, דף פרמטרים עם טווחים מותרים ותיאור ההשלכות של חריגה מהם, סדר חזרה לגרסת קונפיגורציה קודמת. מומחה שלא כתב את האלגוריתם מרים את הרובוט מאפס לפי החומרים האלה, משנה הגדרות סיכון ומבין היכן לחפש ביומנים.
מקרה בוחן: איך עיבוד מחדש של הלוגיקה שינה את התנהגות האסטרטגיה
בגרסה המקורית לסדרת האיזון לא היה גבול עליון: הרובוט הוסיף נפח נגד התנועה בכל צעד, ובמגמה ממושכת צבר עד שתים עשרה פוזיציות ברצף. פרמטרי הצעד והמכפיל תוקנו ידנית דרך הממשק — כל תיקון דרש עצירת מסחר, וניתוק קשר השאיר סדרה פתוחה בלי ליווי.
המחיר של לוגיקה כזו התגלה לעתים רחוקות, אבל קשה: ירידה באפיזודות מגמתיות הגיעה ל-60–70% מהשיא של החשבון, וההשבתה אחרי אובדן קשר נמשכה בין 15 ל-40 דקות. הרובוט עבד עם צמדים לדולר ב-Binance, שם ניתוק חיבור הוא מצב שגרתי, וכל הפסקה משמעה פוזיציה לא מנוהלת.
בגרסה המעובדת הופיעו מגבלה קשיחה על עומק הסדרה ומכפיל מדורג: אחרי הצעד החמישי לא נפתחות פוזיציות חדשות, ולפי סף מופעלת עצירה אוטומטית של המסחר. מצב הרובוט נכתב ליומן, לכן אחרי ניתוק קשר הוא מרים פוזיציות לפי עובדת העסקאות שבוצעו — בלי לסגור ולפתוח מחדש. התוצאה — הפחתת ירידה מ-60–70% ל-25–30% מהשיא של החשבון והחזרת ליווי בתוך דקה.
איך חישבנו את התוצאה
כדי שתוצאות הטמעת הרובוט לא ייראו כתפירה, שתי גרסאות הורצו על אותו קטע היסטורי בשלושה מצבי שוק: עלייה, ירידה, דשדוש. ניתוק קשר הודמה בניתוק כפוי ל-10, 20 ו-40 דקות, וביצוע עסקאות הוזן עם עיכובים אמיתיים. חישבנו ירידה מהשיא של החשבון, זמן החזרת הליווי ומספר התערבויות ידניות למאה עסקאות.
במה מרטינגייל שונה מאנטי-מרטינגייל בפועל
מרטינגייל מגדיל נפח אחרי עסקה מפסידה, אנטי-מרטינגייל — אחרי עסקה רווחית. זהו ההבדל היחיד, אבל מהותי: הלוגיקה הראשונה הולכת נגד הסדרה ומחכה לחזרת המחיר לממוצע, השנייה מצטרפת לתנועה ומהמרת על המשכה.
במרטינגייל הנפח גדל באופן גיאומטרי — כל כניסה הבאה גדולה מהקודמת במספר נתון של פעמים. לכן ההון צריך להחזיק לא עסקה כושלת אחת, אלא את כל הסדרה, והעומק המרבי שלה הופך לפרמטר הסיכון העיקרי.
אנטי-מרטינגייל מגדיל נפח רק אחרי רווח מאושר, מוציא הון לאט יותר, אבל תלוי לחלוטין בשאלה אם סדרה רווחית מספיקה להתפתח.
התפלגות התוצאה של שתי הלוגיקות היא מראה. מרטינגייל נותן הרבה פלוסים קצרים וירידות עמוקות נדירות: מגמה ממושכת אחת נגד הפוזיציה מכסה עשרות מחזורים מוצלחים. אנטי-מרטינגייל נותן הפסדים קטנים תכופים ורווחים גדולים נדירים, והתוצאה נקבעת לפי משרעת התנועה שנתפסה.
במגמה אנטי-מרטינגייל מגדיל פוזיציה בכיוון התנועה ומצמיד סטופ למחיר — המגמה הופכת למקור התוצאה העיקרית. מרטינגייל במגמה נגד הפוזיציה מאזן לכיוון יותר ויותר מפסיד, ובלי מגבלה קשיחה על מספר הצעדים הסדרה מסתיימת באובדן הון העבודה.
בדשדוש התמונה הפוכה: חזרת המחיר לממוצע סוגרת סדרות מרטינגייל בפלוס, ואנטי-מרטינגייל אוסף פריצות שווא וסטופים קטנים. לכן את צעד הרשת והמכפיל אנו מצמידים לתנודתיות הנוכחית וקובעים מגבלת עומק לסדרה.
ספקות טכניים: על מה שואלים לפני ההתחלה
לפני ההתחלה לקוחות בודקים לא כל כך את המתמטיקה של האיזון, אלא את התנהגות האלגוריתם במצבים לא שגרתיים: תנועה חדה נגד הפוזיציה, ניתוק קשר, העברת האסטרטגיה לפלטפורמה אחרת. להלן — תשובות לספקות שעולים לרוב אצל מי שכבר סחר ידנית.
מה עושה האלגוריתם בתנועה חדה של המחיר נגד הפוזיציה?
הנפח גדל לפי הרשת שהוגדרה, אבל רק עד למגבלת הצעדים ולחשיפה המקסימלית. בגבול האלגוריתם מקבע הפסד לפי כלל סטופ, ולא ממשיך לאזן. תרחיש כזה מורץ מראש על היסטוריה.
איך מוגבל הסיכון, מלבד גודל הפוזיציה?
שלושה מגבילים בלתי תלויים: מגבלה על סדרת איזונים, מגבלת ירידה לסשן מסחר וסטופ אוטומטי כאשר התנודתיות יוצאת מהמסדרון. כל אחד מופעל בעצמו, בלי השתתפות המפעיל.
מה קורה בעת ניתוק קשר עם הבורסה?
האלגוריתם לא משלים ציטוטים: הפקודות נשארות בצד הפלטפורמה, ובשחזור החיבור המצב נבדק מול המצב בפועל. תרחיש ההגנה רץ לפי זמן מקומי, לכן הפסקה בערוץ לא משאירה את הפוזיציה בלי השגחה.
אפשר להעביר את האלגוריתם לבורסה או לכלי אחר?
לוגיקת הביצוע קשורה לכללי הפלטפורמה: סוגי פקודות, צעד מחיר, מגבלות, עמלות. משתנה שכבת ההסתגלות, ולאחר מכן האסטרטגיה מורצת על ההיסטוריה של הכלי החדש.
איך נבדק האלגוריתם לפני הפעלה על הון אמיתי?
שלושה שלבים: הרצה על היסטוריה עם תנועות חדות נדירות, מתאר בדיקה של הבורסה, נפח מוגבל. המעבר הלאה — אחרי התאמה בין תוצאות מחושבות לתוצאות בפועל.
בואו נדון במשימה: מאיפה להתחיל ומה להכין
לדון בפיתוח אלגוריתם פרודוקטיבי יותר כשיש על השולחן נתוני פתיחה, ולא רק רעיון «צריך דוגון». הם קובעים גם את הארכיטקטורה וגם את היקף העבודה: מרטינגייל ואנטי-מרטינגייל דומים מבחוץ, אבל נפרדים כבר בשלב חישוב גודל הפוזיציה אחרי סדרה.
סט מינימלי להכנה לדיון:
- לוגיקת כניסות ויציאות — איך מחושבת הכניסה הראשונה, צעד האיזון, המכפיל, מספר השלבים המרבי והכלל ליציאה מהסדרה.
- סטטיסטיקת עסקאות — ייצוא לתקופה: זמן כניסה ויציאה, תוצאה, ירידה מקסימלית לפי סדרה.
- בורסות וכלים — היכן סוחרים, ספוט או שוק חוזים, צמדים פעילים, מגבלות על גודל הפוזיציה.
- מגבלות סיכון פעילות — ירידה מרבית ליום ולסדרה, מגבלה לפוזיציה, תנאי עצירה אוטומטית.
- דרישות לדיווח — מה צריך לראות: יומן עסקאות, סיכום יומי, התראות על תקלות וסטיות מהתוכנית.
- הרשאות ומתאר בדיקה — הרשאות לחשבון מסחר, מתאר בדיקה של הבורסה, מי מקבל החלטות בעת תקלה.
חלק מנתוני הפתיחה משתחזרים מהיסטוריית החשבון, לכן היעדרם לא חוסם את השיחה. לאחר הדיון נחזור עם הערכת פרויקט אוטומציה של מסחר ותוכנית עבודה לאלגוריתם: שלבים, הרצה על נתונים היסטוריים, נקודות ביקורת לקבלה.







