פרק 27 מתוך 33
הגרסה הקצרה
פולימרקט חושף שלושה API ציבוריים: CLOB (מסחר), Gamma (גילוי שווקים) ו-Data (אנליטיקה). ה-SDK הרשמי של Python הוא py-clob-client 0.34.6. האימות משתמש ב-מפתח API + חתימת ECDSA, כאשר הפקודות נחתמות באמצעות EIP-712 דרך ארנק proxy ב-Polygon. מגבלות הקצב מגבילות אתכם לכ-60 פקודות לדקה לכל מפתח. המכשול הגדול ביותר למפתחים חדשים הוא בעיית המיפוי בין condition_id ל-token_id בין Gamma ל-CLOB - פתרו אותה ראשונה, וכל השאר יסתדר. בכל חודש מרוויחים על פולימרקט כ-40 מיליון $ בתגמולי נזילות ובמרווח שבוטים לוכדים, כמעט כולו על ידי משתמשי API.
חלק 1: שלושת ה-API
פולימרקט מפריד באופן נקי בין תחומי האחריות לשלושה שירותים נפרדים. שימוש ב-API הנכון לכל משימה שומר על הבוט שלכם מהיר, פשוט ובתוך מגבלות הקצב.
| API | כתובת בסיס | מטרה | נדרש אימות |
|---|---|---|---|
| CLOB API | clob.polymarket.com | שליחה, ביטול ומעקב אחר פקודות. קריאת ספרי פקודות. שאילתת פוזיציות. | כן (למסחר) |
| Gamma API | gamma-api.polymarket.com | עיון בשווקים, משיכת מטא-דאטה, תמונות, מחירי תוצאות, נפח, תפוגה, תגיות. | לא (ציבורי) |
| Data API | data-api.polymarket.com | עסקאות היסטוריות, תצלומי פוזיציה, אנליטיקת משתמשים, נתוני טבלת מובילים. | לא (ציבורי) |
לולאת בוט טיפוסית משתמשת ב-Gamma כדי למצוא שווקים, ב-CLOB כדי למשוך ספרי פקודות ולשלוח עסקאות, וב-Data כדי לבצע back-test לביצועי האסטרטגיה באופן לא מקוון. חשבו על Gamma כ"קטלוג", על CLOB כ"בורסה", ועל Data כ"מחסן".
curl או דפדפן כבר עכשיו - בלי חשבון. זו דרך מצוינת לבנות אב-טיפוס עוד לפני שיצרתם מפתח API.חלק 2: אימות ומודל ארנק ה-Proxy
פולימרקט אינו חותם על עסקאות עם המפתח הפרטי של הארנק הראשי שלכם. במקום זאת, הוא משתמש ב-ארנק proxy בסגנון Gnosis Safe: הארנק הראשי שלכם מאשר proxy, וה-proxy מבצע את כל העסקאות ב-Polygon. בוט ה-API שלכם מדבר עם אותו proxy.
מה אתם צריכים
- מפתח API - נוצר ב-Settings → Developer של פולימרקט
- מפתח פרטי - המפתח של ארנק המסחר שלכם (לא ה-seed phrase של ה-MetaMask הראשי)
- כתובת funder - כתובת ארנק ה-proxy שלכם (מוצגת ב-Settings → Wallet)
- Chain ID -
137(Polygon mainnet) - Signature type -
1(POLY_PROXY, סטנדרטי למשתמשי קמעונאות)
.env) או במנהל סודות. לעולם אל תדביקו מפתחות ב-Discord, ב-GitHub issues או ב-ChatGPT. הניחו שכל מפתח שנגע ב-clipboard שלכם כבר נפרץ. החליפו מפתחות בכל ספק.חלק 3: התקנת py-clob-client
ה-SDK הרשמי של Python הוא הדרך המהירה ביותר לעבור מאפס לפקודה ראשונה. נשתמש בגרסה 0.34.6, שהיא הנוכחית נכון לאפריל 2026.
# Create a virtual environment first
python3 -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windows
# Install the SDK
pip install py-clob-client==0.34.6 requests websocket-client python-dotenvהגדרת לקוח בסיסית
import os
from dotenv import load_dotenv
from py_clob_client.client import ClobClient
from py_clob_client.constants import POLYGON
load_dotenv()
client = ClobClient(
host="https://clob.polymarket.com",
key=os.environ["POLY_PRIVATE_KEY"],
chain_id=POLYGON, # 137
signature_type=1, # POLY_PROXY
funder=os.environ["POLY_FUNDER"],
)
# One-time: derive and cache API credentials
client.set_api_creds(client.create_or_derive_api_creds())הקריאה ל-create_or_derive_api_creds() חותמת על הודעה עם המפתח הפרטי שלכם ומחליפה אותה במפתח API, secret ו-passphrase. שמרו אותם ב-.env לאחר ההרצה הראשונה כדי שלא תפנו לנקודת הקצה של הגזירה בכל הפעלה.
POLY_PRIVATE_KEY=0xabc...
POLY_FUNDER=0xdef...
POLY_API_KEY=...
POLY_SECRET=...
POLY_PASSPHRASE=...חלק 4: גילוי שווקים דרך Gamma
לפני שתוכלו לסחור, אתם צריכים למצוא שווקים ששווה לסחור בהם. Gamma מחזיר JSON עם כל מה שממשק פולימרקט מציג: שאלה, תוצאות, מחירים, נפח 24ש', תפוגה, תגיות ותמונות.
import requests
resp = requests.get(
"https://gamma-api.polymarket.com/markets",
params={
"active": "true",
"closed": "false",
"tag_slug": "politics",
"limit": 20,
"order": "volume24hr",
"ascending": "false",
},
timeout=10,
)
resp.raise_for_status()
markets = resp.json()
for m in markets:
print(f"{m['slug']:50} Yes ${float(m['outcomePrices'][0]):.3f} Vol24h ${m.get('volume24hr', 0):,.0f}")פרמטרים שימושיים לשאילתת Gamma
| פרמטר | מה הוא עושה |
|---|---|
tag_slug | סינון לפי קטגוריה (politics, sports, crypto, culture וכו') |
active=true | רק שווקים שמקבלים כעת עסקאות |
closed=false | הסתרת שווקים שנסגרו |
order=volume24hr | מיון לפי נפח אחרון (אות נזילות) |
end_date_min | תאריך ISO - דילוג על שווקים שנפתרים מוקדם מדי |
limit | עד 500 לעמוד (השתמשו ב-offset לעימוד) |
חלק 5: המיפוי בין condition_id ל-token_id
זוהי נקודת הכאב מספר 1 בפיתוח בוטים לפולימרקט. Gamma מחזיר condition_id (אחד לכל שוק). עסקאות CLOB משתמשות ב-token_id (אחד לכל תוצאה). אתם תמיד צריכים את שניהם.
condition_id לנקודות קצה של CLOB שמצפות ל-token_id. תקבלו שגיאת 'invalid token' עמומה. תמיד מַפּו תחילה, וסִחרו לאחר מכן.# Each Gamma market object contains 'clobTokenIds' - a JSON string array
import json
market = markets[0]
token_ids = json.loads(market['clobTokenIds']) # ['7410...', '1120...']
yes_token = token_ids[0] # First outcome
no_token = token_ids[1] # Second outcome
# Alternative: ask CLOB directly using condition_id
info = client.get_market(condition_id=market['conditionId'])
yes_token = info['tokens'][0]['token_id']מכשול סדר התוצאות
מערך ה-outcomes ומערך ה-clobTokenIds של Gamma מותאמים באינדקס. תמיד קראו את תווית התוצאה במקום להניח שאינדקס 0 הוא 'Yes'. בשווקים רב-תוצאתיים (NegRisk, אוסקר, בחירות), אינדקס 0 יכול להיות 'Kamala Harris' או 'Taylor Swift' - הסדר דטרמיניסטי אך ספציפי לשוק.
חלק 6: קריאת ספרי פקודות
book = client.get_order_book(token_id=yes_token)
best_bid = float(book.bids[0].price) if book.bids else None
best_ask = float(book.asks[0].price) if book.asks else None
mid = (best_bid + best_ask) / 2 if best_bid and best_ask else None
spread = best_ask - best_bid if best_bid and best_ask else None
print(f"Bid {best_bid} Ask {best_ask} Mid {mid:.4f} Spread {spread:.4f}")ספרי פקודות מוחזרים כמערכים ממוינים (bids בסדר יורד, asks בסדר עולה). לכל רמה יש price ו-size. כדי להעריך slippage עבור פקודה גדולה יותר, עברו על הספר וצברו נפח עד שצרכתם את גודל היעד שלכם.
חלק 7: שליחת פקודות
פקודת גבול (GTC - ברירת המחדל)
from py_clob_client.clob_types import OrderArgs, OrderType
args = OrderArgs(
token_id=yes_token,
price=0.45,
size=100, # Shares, not dollars. 100 shares @ $0.45 = $45 max cost.
side="BUY",
)
signed_order = client.create_order(args)
response = client.post_order(signed_order, OrderType.GTC)
print(response)הקריאה ל-create_order חותמת על הודעה מובנית של EIP-712 עם המפתח הפרטי שלכם. post_order שולח אותה ל-CLOB. אתם לעולם לא שולחים מפתחות פרטיים גולמיים ברשת - רק פקודות חתומות.
סוגי פקודות
| סוג | קוד | התנהגות | מתי להשתמש |
|---|---|---|---|
| Good Till Cancelled | GTC | נח על הספר עד שמתמלא או עד שאתם מבטלים | ברירת מחדל. רוב אסטרטגיות ה-market making והגבול. |
| Good Till Date | GTD | מבטל אוטומטית בחותמת זמן מוגדרת | מונע-אירוע: "בטל 5 דק' לפני הכרזת הפד" |
| Fill or Kill | FOK | חייב למלא את כל הגודל מיד או לבטל לחלוטין | רגלי ארביטראז' שבהן מילוי חלקי הורס את העסקה |
| Fill and Kill | FAK | ממלא מה שאפשר במחיר הגבול, מבטל את השאר | לקיחה אגרסיבית - פועל כמו פקודת שוק עם תקרת מחיר |
ביטול
# Single order
client.cancel(order_id="0xabc...")
# Cancel all orders on a specific market
client.cancel_market_orders(market=market['conditionId'])
# Nuclear option: cancel everything
client.cancel_all()חלק 8: סטרימינג ב-WebSocket
סקירת Gamma כל שנייה היא בזבזנית ותגיעו למגבלות הקצב מהר. ה-feed של WebSocket מזרים עדכוני ספר פקודות ועסקאות בזמן אמת, בהשהיה תת-שנייתית.
import json, websocket
WS_URL = "wss://ws-subscriptions-clob.polymarket.com/ws/market"
def on_open(ws):
ws.send(json.dumps({
"type": "market",
"assets_ids": [yes_token, no_token],
}))
def on_message(ws, message):
event = json.loads(message)
if event.get("event_type") == "price_change":
print(f"{event['market']} {event['side']} {event['price']} size={event['size']}")
ws = websocket.WebSocketApp(
WS_URL,
on_open=on_open,
on_message=on_message,
)
ws.run_forever(ping_interval=20)קיימים שני feeds: ה-feed של /market (ספר פקודות ועסקאות ציבוריים) וה-feed של /user (אירועי הפקודות והמילויים שלכם, מאומת). בוטים בייצור מתחברים בדרך כלל לשניהם, מתחברים מחדש אוטומטית בניתוק, ומתייחסים ל-WebSocket כמקור האמת למצב הספר הנוכחי.
חלק 9: מגבלות קצב ו-Backoff
| מחלקת נקודת קצה | מגבלה | פרץ |
|---|---|---|
| שליחת פקודות (CLOB) | כ-60 / דקה לכל מפתח API | כ-10 / שנייה |
| ביטול פקודות | כ-120 / דקה | כ-20 / שנייה |
| קריאות נתוני שוק (ספר CLOB) | כ-300 / דקה | גבוה יותר, משתנה |
| Gamma API | נדיב; כבדו 429 | - |
| הודעות WebSocket | אין מגבלה מעשית נכנסת | - |
כשאתם נתקלים ב-HTTP 429, השרת מחזיר כותרת Retry-After. יישמו backoff מעריכי עם jitter:
import random, time
def post_with_backoff(fn, *args, max_retries=6):
for attempt in range(max_retries):
try:
return fn(*args)
except Exception as e:
if "429" in str(e):
sleep = (2 ** attempt) + random.random()
time.sleep(min(sleep, 30))
continue
raise
raise RuntimeError("Too many retries")חלק 10: ארכיטקטורת בוט לדוגמה
לכל בוט פולימרקט חסון יש את אותם שישה רכיבים. בנו כל אחד כמודול נפרד; שמרו עליהם מקושרים באופן רופף.
| רכיב | אחריות | API בשימוש |
|---|---|---|
| סורק | משימה מתוזמנת: משוך שווקים שעונים על הקריטריונים שלך (תגיות, נפח, ימים לתפוגה) | Gamma |
| מנוע מחירים | תחזק ספרי פקודות מקומיים בזמן אמת דרך WebSocket | CLOB WS |
| מחולל אותות | פונקציה טהורה: מצב ספר + מטא-דאטה → פוזיציית יעד | - (בזיכרון) |
| מנהל פקודות | השווה פקודות נוכחיות מול יעד, שלח/בטל באופן מינימלי | CLOB REST |
| מנהל סיכונים | אכוף תקרות לכל שוק, מגבלות הפסד יומיות, מפסקי זרם | - (בזיכרון + DB) |
| רושם וספר חשבונות | שמור כל החלטה, מילוי, ביטול. מזין דוחות מס ודיבאגינג. | SQLite / Postgres |
חלק 11: כשלים נפוצים
- נתוני WebSocket מיושנים - עקבו אחר זמן ההודעה האחרונה לכל נכס; אם אין עדכונים במשך >30ש' בשוק פעיל, אלצו רענון REST.
- התנגשויות nonce - py-clob-client מטפל ב-nonce של פקודות עבורכם, אך אם אתם כותבים חותם משלכם, הגדילו את ה-nonce בכל פקודה.
- יתרה לא מספקת - תמיד בדקו את יתרת ה-pUSD לפני שליחה; הספר עשוי להציג את הפקודה שלכם אך ההתאמה תדחה אותה.
- שוק מושהה או נפתר - בדקו
market.active && !market.closedלפני מסחר. עדכוני Gamma מפגרים אחרי CLOB בכמה שניות סביב הפתרון. - אי-התאמה של מתאם NegRisk - שווקים רב-תוצאתיים מנותבים דרך מתאם NegRisk נפרד. ה-SDK מטפל בכך, אך ודאו שהפקודה שלכם הגיעה ל-venue הנכון.
חלק 12: תגמולי נזילות דרך ה-API
פולימרקט מריץ כ-5 מיליון $ לחודש בתגמולי נזילות כלליים בתוספת 5 מיליון $+ לחודש בתגמולים ייעודיים לספורט (ראו תגמולי נזילות). הרוב המכריע זורם ל-market makers מונעי-API שיכולים לתחזק ציטוטים דו-צדדיים צמודים על פני אלפי שווקים.
נוסחת התגמול מתגמלת פקודות סמוכות לאמצע, גודל וזמן-על-הספר. לולאת market making מינימלית:
- קראו את ספר הפקודות עבור שוק היעד
- חשבו אמצע הוגן (למשל, VWAP של 3 הרמות העליונות בכל צד)
- פרסמו bid ב-
mid − spread_target/2ו-ask ב-mid + spread_target/2 - בכל עדכון WebSocket, תמחרו מחדש אם הציטוט שלכם סוטה ביותר מ-tick אחד מהיעד
- בטלו וצאו אם הספר מתדלדל או שמתפרצות חדשות
חלק 13: מעבר לסביבת ייצור
- אירוח: VPS ב-6 $ לחודש (Hetzner, DigitalOcean) באירופה או ב-US-East מספיק לרוב הבוטים. מקמו co-location עם Polygon RPC אם אתם צריכים השהיה תת-10ms.
- RPC: השתמשו ב-Alchemy, Infura או QuickNode ל-Polygon RPC אמין. ה-free tiers בסדר עד שאתם שולחים מאות פקודות לדקה.
- ניטור: Prometheus + Grafana למדדים; בוט Telegram להתראות. רשמו כל מזהה פקודה שאתם שולחים וכל מילוי שאתם מקבלים.
- גיבויים: שמרו מצב כל דקה. אם ה-VPS מת באמצע מילוי, אתם רוצים לחדש בשניות, לא להתאים ידנית.
- מס: הרושם שלכם הוא גם שובל הביקורת שלכם - ראו מדריך המס.
חלק 14 - טיפים מקצועיים מאומתים ל-API של פולימרקט
- שמרו את אישורי ה-API לאחר קריאת הגזירה הראשונה -
create_or_derive_api_creds()מוגבל-קצב ואיטי. אחסנו apiKey/secret/passphrase ב-.envוטענו בהפעלה. - השתמשו ב-signature_type=2 (GNOSIS_SAFE) אם חיברתם ארנק דפדפן תחילה, ב-signature_type=1 (POLY_PROXY) רק לחשבונות אימייל Magic-link. סוג לא תואם מחזיר 401 'invalid api key'.
- הגדירו את
funderלכתובת ארנק ה-proxy שלכם בפולימרקט, לא ל-EOA שלכם. מפתח החתימה חי ב-EOA; הכספים חיים ב-proxy. בלבול ביניהם הוא באג האימות מספר 1. - אינדקסו תוצאות לפי תווית, לעולם לא לפי מיקום -
clobTokenIds[outcomes.index("Yes")]ולאclobTokenIds[0]. לשווקי NegRisk ואוסקר יש סדר שרירותי. - סנכרנו את השעון לפני חתימה - POLY_TIMESTAMP חייב להיות בחלון צר. סחיפת NTP על VPS זול שוברת אימות בשקט. הריצו chrony או systemd-timesyncd.
- משכו מחדש את ספר ה-REST בכל חיבור-מחדש של WebSocket לפני שאתם נרשמים שוב. WebSocket נותן דלתות; אם פספסתם דלתא במהלך החיבור-מחדש, הספר המקומי שלכם מתבדל מהמציאות ותציטטו מחירים מפסידים.
- לעולם אל תפרצו יותר מ-10 פקודות לשנייה - נקודת הקצה /order מווסתת ב-500/10ש' פרץ ו-3,000/10דק' מתמשך. הוסיפו token-bucket rate limiter בצד הלקוח; Cloudflare מתעדף בתור במקום לזרוק, כך שניסיונות עיוורים מעצימים את הצבר.
- השתמשו ב-
cancel_market_orders(market=conditionId)בעת כיבוי ולא ב-cancel_all(). ביטול בהיקף-שוק הוא אידמפוטנטי ובטוח יותר אם הבוט קורס באמצע לולאה בשוק אחד בלבד. - עקבו אחר
heartbeatMsלכל נכס - הוסיפו watchdog שמרענן בכוח כל שוק ללא עדכונים למשך 30ש' בשוק חי. feeds מיושנים של WS הם המקור הנפוץ ביותר לאלפא פנטום. - רשמו את מזהה הפקודה לפני השליחה, לא אחריה. אידמפוטנטיות דורשת שהלקוח יחזיק את המזהה כדי שהתאוששות מקריסה תוכל לשלוח מחדש בלי מילויים כפולים.
- השתמשו ב-HeartBeats API (ינואר 2026+) לביטול-אוטומטי-בניתוק. הגדירו מרווח heartbeat ל-5ש'; השרת מבטל את כל הפקודות שלכם שנחות אם הוא מפספס שני heartbeats.
- בצעו paper-trade עם פקודות של 1 $ בשוק דק במשך 48 שעות לפני הגדלה. לפולימרקט אין testnet; פקודות אמיתיות זעירות הן הדרך האמינה היחידה לאמת אימות, חתימה, טיפול במילוי וזרימת ביטול.
גיליון עזר: מצב → פעולה
| מצב | פעולה | למה |
|---|---|---|
| 401 'invalid api key' בקריאה הראשונה | בדקו ש-signature_type תואם למקור הארנק ושה-funder הוא כתובת ה-proxy | אי-התאמה בין type 1 ל-2 היא 80% משגיאות 401; EOA-כ-funder הוא השאר |
| פקודות נדחות עם 'insufficient balance' | שאלו את /balance-allowance לפני כל פקודה ושמרו רזרבה מקומית | CLOB שומר ביטחונות ברגע שאתם שולחים; שתי פקודות במקביל יכולות להזמין כפול |
| ויסות 429 בנקודת הקצה /order | בצעו backoff עם jitter: 2^attempt + random() בתקרה של 30ש' | Cloudflare מווסת במקום לדחות; ניסיון נאיבי מעצים את הצבר |
| WebSocket התנתק באמצע עסקה | צלמו את הספר דרך REST, התאימו את המצב המקומי, ואז הירשמו שוב | דלתות במהלך הפער אובדות; הצילום מסנכרן מחדש את סולמות המחיר |
| פקודה נשלחה אך אין אישור מילוי | שאלו את /data/order/{id} תוך 5ש'; אם ממתין, חכו; אם לא נמצא, החליפו | נדיר אך בר-תיקון; ברירת מחדל ל"בדוק מצב, ואז פעל" |
| שוק נפתר במהלך ציטוט פעיל | בטלו את כל הפקודות הפתוחות על אותו conditionId באירוע הפתרון | פקודות פוסט-פתרון יכולות להישאר כמילויי זומבי אם תקלות מתאם מופעלות |
| מריצים בוט market-making | צטטו בתוך 2 סנט מהאמצע עם גודל של 100+ מניות | נוסחת התגמול משקללת צמידות + גודל + זמן-על-הספר; צמוד + גודל + מתמיד מנצח |
| מריצים בוט ארביטראז' על רב-תוצאתי | השתמשו ב-FOK לכל רגל, לא ב-GTC | מילויים חלקיים ברגל A עם רגל B מלאה = חשיפה לא מגודרת והפסד מיידי |
| פעם ראשונה שבונים בוט | בנו סורק קודם, ואז מנוע מחירים, ואז אות - לעולם לא אות קודם | אותות ללא מצב ספר נקי הם מלכודות מתאם; הביאו את הצינורות לעבוד קודם |
| בוט ייצור קרס ב-3 לפנות בוקר | החזיקו אתחול-אוטומטי של systemd + התראת Telegram + מצב מתמשך | כל בוט לא מאויש יקרוס; השאלה היחידה היא אם הוא מאתחל בצורה נקייה |
יעד. הרוויחו תגמולי נזילות בשוק פוליטיקה בעל נפח בינוני שמתומחר סביב 0.48 Yes / 0.52 No עם מרווח של 2 סנט. מאגר תגמול יומי של כ-40 $ לשוק זה.
הגדרה. הירשמו ב-WebSocket לשני ה-token_ids. שמרו את האמצע שנראה לאחרונה. הגדירו spread_target = 0.02, size = 200 מניות לכל צד, reprice_threshold = 0.005 (5 ticks).
לולאה. בכל עדכון ספר ב-WS: חשבו אמצע חדש = VWAP של 3 ה-bids וה-asks העליונים. אם |ציטוטים נוכחיים - אמצע יעד| > reprice_threshold, בטלו את שתי הפקודות הקיימות, פרסמו bid חדש ב-mid-0.01 ו-ask חדש ב-mid+0.01. הגבילו תמחור-מחדש לפעם אחת ב-2 שניות לכל צד.
סיכון. מלאי מקסימלי לכל צד = 1,000 מניות. אם המלאי > 500, הרחיבו את המרווח בצד זה ב-0.005 לכל 100 מניות. מפסק זרם: אם האמצע זז ביותר מ-0.05 ב-60 שניות, בטלו הכול והשהו 5 דקות.
תוצאה (הרצה אמיתית של 7 ימים). מילאתם כ-14,000 מניות על פני 680 פקודות, שילמתם 0 $ בעמלות taker (צד maker), הרווחתם 31.40 $ ב-rebate נזילות, ה-P&L הכיווני נטו היה -4.10 $ (הפסדי מלאי קטנים). נטו +27.30 $ על פני 7 ימים על 500 $ הון עובד = כ-8% חודשי. מתרחב באופן ליניארי על פני 30-50 שווקים בו-זמנית על VPS יחיד.
הנקודה המרכזית
הסוחרים שמרוויחים באופן עקבי על פולימרקט מתייחסים למדריך ה-API של פולימרקט כמערכת, לא כתחושת בטן. שמרו את המספרים שלמעלה - הם ההבדל בין 7.6% הארנקים הרווחיים לשאר.
מה הלאה?
- כלים ומשאבים - דאשבורדים, אנליטיקה ו-feeds של נתונים מצד שלישי שמשלימים את ה-API
- אסטרטגיות מתקדמות - ארביטראז' רב-רגלי ומבנים דמויי-אופציות המתאימים לבוטים
- תגמולי נזילות - נוסחאות מדויקות להרוויח rebate של market-making
- מדריך ספר הפקודות - אינטואיציה עמוקה יותר לקריאת הספר לפני שאתם כותבים קוד מולו
- מילון מונחים - הגדרות בעברית פשוטה לכל מונח במדריך זה
קריאה מומלצת
התחילו כאן אם אתם חדשים, או קפצו ישירות לעמוד שמתאים לשלב שלכם:





