פיתוח אלגוריתם ליצירת שוק: מודלים, מלאי, גידור

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

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

שאלות נפוצות

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

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1481
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1336
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1034
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1293
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    738
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1032

פיתוח אלגוריתם Market Making מאפס

אנו מפתחים אלגוריתמי market making מאפס — מניתוח נזילות ועד פריסת שרת. בקריפטו, market making נשאר רווחי מאוד עבור נכסי נישה: altcoins בעלי שווי שוק בינוני, חוזים עתידיים תמידיים עם נזילות נמוכה. עם כוונון נכון, התשואה היומית הממוצעת היא 0.15–0.3% מהמלאי, ושיעור הביצוע מגיע ל-70–85%. אנו משתמשים במודל Avellaneda-Stoikov ובספרד דינמי כדי למזער סיכון מלאי ולמקסם רווח והפסד (P&L).

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

כיצד אנו מבטיחים יציבות?אנו משתמשים בארכיטקטורה עמידה לתקלות עם גיבוי חם, ניטור השהיה (<10ms), והתראות אוטומטיות כאשר חריגים מגבלות סיכון. כל אלגוריתם עובר בדיקות עמידות על נתונים היסטוריים ומותאם אישית לנכס הספציפי. מהנדסים מוסמכים מספקים תמיכה 24/7.

מודל Market Making בסיסי

Market making נאיבי — הצעת קנייה X% מתחת למחיר האמצע והצעת מכירה X% מעל. בעיה: סיכון מלאי. אם המחיר זז בחדות לכיוון אחד, ה-market maker צובר פוזיציה לא חיובית. הפסדים יכולים להגיע ל-50% מההון בסשן אחד אם לא מנהלים סיכונים.

מודל Avellaneda-Stoikov — אסטרטגיית market making אופטימלית מתמטית. הוא מתחשב בסיכון מלאי ובאופק זמן:

bid_price = mid - δ/2 - γσ²(T-t)q
ask_price = mid + δ/2 - γσ²(T-t)q
где:
δ = spread (оптимальный)
γ = risk aversion coefficient
σ = волатильность актива
q = текущий inventory (в единицах актива)
T = конец торгового периода
t = текущее время

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

כיצד להגדיר את מודל Avellaneda-Stoikov?

  1. איסוף נתונים היסטוריים: מחירים, נפחים, ספרד, תנודתיות (σ).
  2. בחירת מקדם סלידת סיכון (γ) — בפועל 0.01–0.1.
  3. אופטימיזציה של מלאי יעד (q_target) ואופק זמן (T).
  4. הרצת backtest על 30 הימים האחרונים של נתונים.
  5. הגדרת מגבלות קשות/רכות: לדוגמה, מלאי מקסימלי = 10% מההון.

אנו מכוונים פרמטרים באופן אישי באמצעות אלגוריתמים גנטיים וחיפוש רשת (grid search).

כיצד פועל מודל Avellaneda-Stoikov?

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

מהו סיכון מלאי וכיצד למזער אותו?

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

  • מגבלה קשה: כאשר מלאי > MAX_INVENTORY — הפסקת הצבת הזמנות בצד זה. המתנה לביצועים.
  • מגבלה רכה עם הטיה (skewing): הזזה הדרגתית של הצעות מחיר נגד כיוון המלאי שנצבר. ככל שהמלאי גדול יותר, כך ההטיה חזקה יותר.
  • גידור (Hedging): פתיחת פוזיציית גידור בבורסה אחרת או בחוזים עתידיים תמידיים. אם צברנו הרבה BTC ספוט, אנו מוכרים BTC-PERP.

עבור כל פרויקט, אנו בוחרים שילוב של שיטות בהתבסס על תנודתיות הנכס ונפח המסחר. אנו מבטיחים שהירידה מסיכון מלאי לא תחרוג מהסף המוגדר מראש (בדרך כלל 5% מההון).

ניהול ספרד

הספרד לא צריך להיות קבוע — הוא מתאים את עצמו לתנאי השוק:

  • ספרד מבוסס תנודתיות: bid_price = mid - δ/2 - γσ²(T-t)q ask_price = mid + δ/2 - γσ²(T-t)q где: δ = spread (оптимальный) γ = risk aversion coefficient σ = волатильность актива q = текущий inventory (в единицах актива) T = конец торгового периода t = текущее время . כאשר התנודתיות גבוהה, הספרד מתרחב — סיכון המלאי עולה.
  • עומק ספר ההזמנות: אם הנזילות בספר ההזמנות נמוכה, סיכון הבחירה השלילית גבוה יותר, הספרד מתרחב.
  • שעה ביום: בתקופות פעילות נמוכה, הספרד מתרחב.
  • זרימה רעילה: אם N העסקאות האחרונות היו בעיקר בצד אחד, זה עשוי להצביע על מסחר מודע. האלגוריתם מרחיב את הספרד או מסיר הצעות מחיר זמנית.

הצעות מחיר מרובות רמות

במקום זוג הזמנות יחיד (הצעת קנייה אחת + הצעת מכירה אחת), אנו מציבים מספר רמות:

Bid 3: mid - 0.5% × 1000 USDT
Bid 2: mid - 0.3% × 500 USDT
Bid 1: mid - 0.15% × 200 USDT
--- MID PRICE ---
Ask 1: mid + 0.15% × 200 USDT
Ask 2: mid + 0.3% × 500 USDT
Ask 3: mid + 0.5% × 1000 USDT

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

ביטול הזמנות והצעת מחיר מחדש

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

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

ביטולי הזמנות תכופים צורכים מכסת בקשות API. בורסות מטילות מגבלות קצב. עבור Binance: 1200 בקשות/דקה HTTP, מגבלות נפרדות ל-WebSocket. אופטימיזציה של תדירות העדכון היא קריטית.

תוכניות Market Making בבורסות

בורסות גדולות משלמות עבור מתן נזילות:

בורסה תוכנית תנאים
Binance ספק נזילות החזר עד -0.005%
Bybit Market Maker עמלת יוצר אפסית או שלילית
OKX Market Maker תנאי עמלה מיוחדים
Kraken Market Maker החזר יוצר לפי בקשה

כדי לזכות בתנאים אלה, יש לשמור על זמינות הצעות מחיר מינימלית (>80% מהזמן הצעה/דרישה בטווח מסוים מהאמצע) ונפח מינימלי.

שלבי פיתוח

שלב משך תוצאה
ניתוח נזילות 2–5 ימים דוח עם מודל אופטימלי ופרמטרי סיכון
יישום אלגוריתם 2–4 שבועות מודולים: תמחור, ניהול הזמנות, בקרת סיכון
אינטגרציה עם בורסה 3–7 ימים חיבור WebSocket + REST יציב
בדיקות (backtest + paper) 1–2 שבועות דוח על Sharpe, ירידה, שיעור ביצוע
פריסה וניטור 3–5 ימים שרת עם Grafana, התראות ב-Telegram

ניטור ומדדים

פירוט P&L: הכנסה מספרד - הפסדי סיכון מלאי - עמלות.

שיעור ביצוע: אחוז ההזמנות שבוצעו. נמוך מדי (<50%) → ספרד רחב מדי. גבוה מדי (>90%) → ספרד צר מדי, בחירה שלילית מוגזמת.

חשיפת מלאי: פוזיציה נוכחית בדולרים, מקסימום לסשן, ממוצע. זמינות: אחוז הזמן שבו מוצבות הצעות מחיר (יעד >99.5%). השהיה: זמן מעדכון שוק ועד הצבת/עדכון הזמנות (יעד <10ms).

ערימת טכנולוגיות

שפה: Python (asyncio + aiohttp/websockets) לאסטרטגיות עם השהיה > 50ms. C++ או Rust לרכיבים קריטיים להשהיה.

מחברי בורסה: CCXT Pro (Python) מספק API אחיד ל-WebSocket. לייצור, אנו בונים מחברים מותאמים אישית לכל בורסה.

אחסון: PostgreSQL לעסקאות, הזמנות, פוזיציות. InfluxDB או TimescaleDB למדדי ביצועים.

ניטור: לוחות מחוונים של Grafana ל-P&L בזמן אמת, מלאי, השהיה. התראות ב-Telegram כאשר חריגים מגבלות סיכון.

צור קשר כדי להעריך את הפרויקט שלך תוך יומיים. קבל ייעוץ מארכיטקט — דון בפרטים.