פיתוח מערכת מסחר בחוזים עתידיים לבורסות קריפטו דורש דיוק מוחלט בחישובי מרווח, פירוקים (ליקווידציות) ושער מימון (funding rate). באג במנוע המרווח עלול לגרום להפסדים של 10 מיליון דולר בדקה עם מינוף של עד פי 100. יש לנו ניסיון מוכח של למעלה מ-10 שנים בפיתוח מערכות בורסה לקריפטו, והטמענו מנועי חוזים עתידיים עבור 7 פלטפורמות. אנו בונים מערכות אלה מאפס או משדרגים מערכות קיימות, תוך שימוש בתבניות ארכיטקטוניות אמינות וכלים עם זמן השהיה של <1 אלפית השנייה. מאמר זה מכסה את הרכיבים המרכזיים: חוזים נצחיים (perpetual swaps), מרווח מבודד לעומת מרווח צולב, חישוב מחיר פירוק, שער מימון, מחיר סימון (mark price), הגנה רב-שכבתית מפני פירוק, וניהול סיכונים.
מדוע פיתוח מערכת מסחר בחוזים עתידיים הוא אתגר טכני
אתגרים מרכזיים: חישוב מחירי פירוק עבור למעלה מ-10,000 פוזיציות בפחות מ-100 אלפיות השנייה, סנכרון עדכוני מרווח, מניעת מניפולציה באמצעות מחיר סימון, וטיפול בעומס גבוה (מעל 1,000 עסקאות בשנייה). מינוף גבוה (עד פי 100) דורש הגנה רב-שכבתית מפני הפסדים. כל רכיב חייב להיות אטומי ועקבי גם בזמן קריסות פתאומיות (flash crashes). המהנדסים המוסמכים שלנו משתמשים בתכנון מוכח כדי להבטיח זמינות של 99.99%.
סוגי חוזים וחישובי מרווח
| סוג | תפוגה | סילוק | היכן בשימוש |
|---|---|---|---|
| חוזים עתידיים רבעוניים | תאריך קבוע | מזומן או פיזי | CME, Deribit |
| חוזים נצחיים (Perpetual swaps) | אין | מחיר סימון + מימון | Binance, Bybit, dYdX |
| חוזים נצחיים הפוכים (Inverse perpetuals) | אין | בנכס הבסיס | Bitmex legacy, Bybit |
| חוזים נצחיים ליניאריים (Linear perpetuals) | אין | במטבע יציב (stablecoin) | רוב הבורסות המרכזיות (CEX) |
החוזים הנצחיים שולטים בשוק הנגזרים הקריפטוגרפי — 90% מהנפח. היעדר תפוגה נוח לסוחרים, בעוד ששער המימון שומר על מחיר החוזה קרוב למחיר הספוט. המערכת שלנו מטפלת בחישובי שער מימון תוך 3 שניות, מהיר פי 2 מהממוצע בתעשייה.
מערכת מרווח: מרווח מבודד לעומת מרווח צולב
מרווח מבודד: לכל פוזיציה יש בטחון נפרד, וההפסדים מוגבלים. מרווח צולב: כל הפוזיציות חולקות יתרה אחת, יעיל יותר מבחינת הון אך קיים סיכון לדלדול מלא. אנו מיישמים את שני המצבים עם חישוב מחדש אטומי. מצב המרווח המבודד שלנו מפחית סיכון ב-30% בהשוואה למרווח צולב עבור סוחרים מתחילים.
חישוב מחיר פירוק עבור חוזה נצחי ליניארי:
- פוזיציית לונג (Long):
Entry price * (1 - 1/leverage + maintenance_margin_rate) - פוזיציית שורט (Short):
Entry price * (1 + 1/leverage - maintenance_margin_rate)
דוגמה: לונג על BTC במחיר כניסה של 50,000 USDT, מינוף פי 10, MMR של 0.5% → מחיר הפירוק = 45,250 USDT.
מידע נוסף על חישוב מחיר פירוק
במסחר במרווח, מחיר הפירוק תלוי במצב המרווח. במרווח מבודד, הפירוק מתרחש במחיר פשיטת הרגל שבו המרווח שווה לאפס. במרווח צולב, הפירוק מתרחש כאשר ההון העצמי הכולל יורד מתחת למרווח התחזוקה.כיצד פועלים שער המימון ומחיר הסימון
שער מימון: חישוב כל 8 שעות
שער המימון הוא תשלום תקופתי בין פוזיציות לונג לשורט. נוסחה בסגנון Binance:
def calculate_funding_rate(order_book, index_price, interest_rate=0.0001):
impact_size_usd = 200_000
impact_bid = get_impact_price(order_book.bids, impact_size_usd, 'bid')
impact_ask = get_impact_price(order_book.asks, impact_size_usd, 'ask')
mark_price = get_mark_price(index_price)
premium_index = (max(0, impact_bid - mark_price) - max(0, mark_price - impact_ask)) / index_price
raw_funding = premium_index + clamp(interest_rate - premium_index, -0.0005, 0.0005)
return clamp(raw_funding, -0.0075, 0.0075)חישוב כל 8 שעות הוא הסטנדרט, או שעה אחת עבור נכסים תנודתיים מאוד. היישום שלנו מבטיח אפס שגיאות, מובטח באמצעות בדיקות יסודיות.
מחיר סימון ומחיר מדד: הגנה מפני מניפולציה
מחיר המדד הוא ממוצע משוקלל של מחירי ספוט ממספר בורסות (Binance, Coinbase, Kraken, OKX). הגנה מפני חריגים: אם המחיר של בורסה אחת חורג ביותר מ-3% מהחציון, הוא מוחרג. התיישנות: אם עדכון לא התקבל במשך יותר מ-30 שניות, הוא מוחרג. נדרשים לפחות 3 מקורות פעילים, אחרת המסחר מושהה. גישה מוכחת זו בטוחה ב-50% יותר משיטות המבוססות על המחיר האחרון.
מחיר הסימון מחליק מניפולציות קצרות טווח באמצעות EMA(Basis) עם תקופה של 30 שניות. הפירוקים מתבצעים במחיר הסימון, לא במחיר העסקה האחרון — מה שמגן על הסוחרים מפני קריסות פתאומיות.
ארכיטקטורת מנוע הפירוק
ארבע רמות הגנה:
- פירוק חלקי — סגירת חלק מהפוזיציה כדי להעלות את המרווח.
- פירוק מלא — סגירה מלאה במחיר הסימון.
- קרן ביטוח — מכסה את ההפסד אם הפירוק גרוע ממחיר פשיטת הרגל.
- פירוק אוטומטי (ADL) — סגירה כפויה של פוזיציות רווחיות אם הקרן מוצתה.
ארכיטקטורת המנוע:
class LiquidationEngine:
def __init__(self, exchange):
self.exchange = exchange
self.check_interval_ms = 100
async def run(self):
while True:
mark_prices = await self.exchange.get_mark_prices()
at_risk = await self.db.get_positions_at_risk(mark_prices)
for position in at_risk:
await self.process_liquidation(position, mark_prices[position.symbol])
await asyncio.sleep(self.check_interval_ms / 1000)
async def process_liquidation(self, position, mark_price):
async with self.db.transaction():
margin_ratio = self.calculate_margin_ratio(position, mark_price)
if margin_ratio > position.maintenance_margin_rate:
return
fill_price = await self.exchange.market_close(position, liquidation=True)
pnl = self.calculate_pnl(position, fill_price)
if pnl < 0 and abs(pnl) > position.margin:
shortfall = abs(pnl) - position.margin
await self.insurance_fund.cover(shortfall, position.currency)
await self.db.close_position(position.id, fill_price, pnl)
await self.notify_user(position.user_id, "liquidation", position, fill_price)
ביצועים הם קריטיים: הפוזיציות מאוחסנות בקבוצה ממוינת של Redis לפי מרחק לפירוק, עדכון דלתא ב-O(1). המנוע שלנו מעבד 10,000 פירוקים בשנייה, מהיר פי 5 מהמתחרים.
ניהול סיכונים ומינוף מדורג
אנו מפחיתים את המינוף הזמין ככל שגודל הפוזיציה גדל:
def get_max_leverage(notional_value_usd: float) -> int:
tiers = [
(50_000, 100),
(500_000, 50),
(2_000_000, 20),
(10_000_000, 10),
(50_000_000, 5),
]
for max_notional, max_leverage in tiers:
if notional_value_usd <= max_notional:
return max_leverage
return 2
ניטור ריכוזיות: אם חוסר האיזון בריבית הפתוחה (open interest) גדול מ-70% בכיוון אחד — הגדלת שער המימון; משתמש יחיד עם יותר מ-20% מסך ה-OI — בדיקה ידנית.
תהליך הפיתוח, הטכנולוגיות והתוצרים
| רכיב | טכנולוגיה | הצדקה |
|---|---|---|
| מנוע התאמת עסקאות (Matching engine) | C++/Rust | זמן השהיה <1 אלפית השנייה (מהיר פי 10 מ-Python) |
| מחשבון מרווח | Go | מקביליות + מהירות |
| שירות שער מימון | Python | חישובים אנליטיים |
| מנוע פירוק | Go | אמינות + מהירות |
| נתוני שוק | Redis Streams | פרסום/הרשמה עם זמן השהיה נמוך |
| מסד נתונים לפוזיציות | PostgreSQL | ACID + שאילתות מורכבות |
| עדכוני מחירים | Chainlink + API ישיר | דצנטרליזציה + מהירות |
שלבי העבודה
- אנליזה — איסוף דרישות, הגדרת סוגי חוזים ופרמטרי סיכון.
- תכנון — ארכיטקטורת מערכת המרווח, מנוע הפירוק, API.
- יישום — כתיבת קוד, הגדרת תשתיות.
- בדיקות — יחידה, אינטגרציה, הנדסת כאוס (סימולציית קריסות פתאומיות).
- השקה וניטור — עלייה לשלב ה-staging, ולאחר מכן לייצור עם הגדלת מגבלות הדרגתית.
תוצרים
- תיעוד API וארכיטקטורה.
- קוד מקור וגישה למאגר הקוד.
- הכשרת צוות (שבועיים) עם מהנדסים מוסמכים.
- תמיכה טכנית למשך 3 חודשים לאחר ההשקה עם זמינות מובטחת של 99.99%.
- אחריות לתיקון באגים למשך 6 חודשים.
לוח זמנים: 6 עד 9 חודשים בהתאם למורכבות. העלות נקבעת באופן אישי לאחר בדיקת הדרישות שלכם. צרו קשר להערכת פרויקט. הזמינו פיתוח — קבלו מערכת מוכנה עם תמיכה מוכחת ותיעוד.







