MeowQuant הוא אתר מידע עצמאי וצד שלישי, לא האתר הרשמי של OKX. כפתור ההרשמה נושא את קוד ההזמנה OK30001, ואנחנו עשויים לקבל בעקבותיו דמי שירות שיווקי. גילוי מלא ←

OKX · יסודות

איך משתמשים בחשבון הדמו של OKX: קודם להריץ את האסטרטגיה עם כסף מדומה

כתבת סקריפט אסטרטגיה, האצבע מרחפת מעל מקש Enter — האם לתת לו לרוץ בחשבון אמיתי? ההיסוס הזה נכון. שכר הלימוד היקר ביותר של מתחיל באלגו הוא בדרך כלל לא הפסד בשוק, אלא הפסד בגלל תנאי שיפוט הפוך, נקודה עשרונית חסרה — וטעויות כאלה היו נחשפות בדמו תוך חמש דקות.

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

invite_codes.env1

מה זה חשבון הדמו (Demo Trading)

הדמו של OKX נקרא Demo Trading (מסחר מדומה). בפשטות, זהו חשבון מקביל שרץ עם כסף וירטואלי: השער, הממשק ותהליך ההזמנה זהים לחשבון האמיתי, רק שמה שאתה מוציא בהזמנה הוא לא כסף אמיתי אלא חבילת USDT מדומה שהמערכת נותנת לך. אתה קונה ומוכר בו, תולה רשת, מריץ סקריפטים — והרווחים וההפסדים לא קשורים ליתרה האמיתית שלך.

למי שעוסק באלגו יש כאן דבר אחד שחייבים לסדר מראש: לדמו יש API Key משלו. צריך ליצור מפתח Demo Trading API Key נפרד בתוך סביבת הדמו; המסלול בתיעוד הרשמי הוא ליצור מפתח נפרד, אז אל תצפה למתג שמדליקים על המפתח של החשבון האמיתי. הבשורה הטובה היא שצד הקוד כמעט לא משתנה: מחליפים את האישורים לאלה של הדמו, מדליקים את מתג הדמו, והסקריפט שכתבת לחשבון האמיתי עובר אימות בדמו כמעט בלי שינוי.

למה חובה לעבור אותו לפני הכסף האמיתי

ההיגיון פשוט: התוכנה לא מהססת. במסחר ידני, לפני הלחיצה על אישור עוד אפשר להעיף מבט על הכיוון ועל הכמות; הסקריפט לא, הוא יבצע בנאמנות וברציפות את הלוגיקה השגויה שכתבת. כיוון קנייה/מכירה הפוך, תנאי יציאה חסר בלולאה — בחשבון אמיתי זה כסף אמיתי שזורם החוצה ברציפות.

הדמו מוריד את העלות של הטעויות האלה לאפס. אתה יכול לתת לסקריפט להתנגש בקיר בבטחה — להזמין שגוי, לבטל שגוי, לכתוב מחיר קרוב למחיר השוק וביצוע מיידי — וכל אלה בדמו רק מבזבזים USDT וירטואלי, וכל "התנגשות" עזרה לך לתפוס מראש באג שהיה הורג אותך בחשבון האמיתי. הניסיון שלנו: אסטרטגיה חדשה בסבבים הראשונים בדמו, בתשעה מתוך עשרה מקרים מוציאה לפחות בעיה אחת שלא צפית.

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

איך פותחים חשבון דמו

פתיחת דמו פשוטה בהרבה מפתיחת API, ולא דורשת אישור נוסף. להלן הנתיב הכללי, לפי הממשק הנוכחי של OKX (מיקום הכניסה משתנה מעט מדי פעם):

  1. היכנס ל-OKX, ובאפליקציה או באתר מצא באזור החשבון/המסחר את הכניסה ל'מסחר מדומה' או 'Demo Trading', בדרך כלל ליד מתג החשבון בדף המסחר או באזור האישי.
  2. היכנס ועבור לסביבת הדמו. אחרי המעבר יהיה לממשק סימון ברור (למשל המילה 'מדומה' למעלה) שיזכיר לך שעכשיו אתה מוציא כסף מדומה.
  3. המערכת תיתן לך חבילת כסף וירטואלי. כשהמכסה נגמרת אפשר בדרך כלל לאפס אותה ידנית בממשק הדמו ולהמשיך לתרגל.
  4. אם אתה רק רוצה לנסות באתר/באפליקציה את הבוטים המובנים כמו רשת והעתקת מסחר, השלב הזה מספיק — פשוט הגדר פרמטרים והרץ בסביבת הדמו.
  5. אם אתה רוצה לחבר סקריפט לדמו, קודם צור API Key נפרד של Demo Trading בתוך סביבת הדמו (תהליך יצירת המפתח מופיע במבוא המעשי ל-API שלנו), ורק אז עבור לדמו דרך המתג בקוד.

איך ccxt מתחבר לדמו

הסעיף הזה הוא מה שמשתמשי סקריפט הכי מתעניינים בו. חיבור ccxt לדמו נבדל מחיבור לחשבון אמיתי בשורת מתג אחת ובכך שהאישורים הם של מפתח הדמו ולא של החשבון האמיתי. מבחינת המבנה מדובר עדיין באותם שלושה: apiKey, secret, ו-password (כלומר ה-Passphrase שהגדרת בעת יצירת המפתח, שב-ccxt השדה הזה נקרא password, ומתחילים מפספסים אותו הכי הרבה).

import ccxt

# שים לב: שלושת אלה הם מפתח הדמו (Demo Trading), לא של החשבון האמיתי
okx = ccxt.okx({
    'apiKey':   'ה_apiKey_של_הדמו',
    'secret':   'ה_secret_של_הדמו',
    'password': 'ה_Passphrase_של_הדמו',   # ייחודי ל-OKX, ב-ccxt נקרא password
})

# השורה המכרעת: ccxt יצרף מעכשיו את כותרת הדמו לכל בקשה
okx.set_sandbox_mode(True)

# בדיקה עצמית: השורה הזו חייבת להדפיס 1, אחרת אתה עדיין בחשבון האמיתי
print(okx.headers.get('x-simulated-trading'))

# מכאן והלאה כל הבקשות נושאות את סימון הדמו, עם כסף וירטואלי
balance = okx.fetch_balance()
print('USDT זמין בדמו:', balance['USDT']['free'])

מה שהשורה set_sandbox_mode(True) עושה הוא לגרום ל-ccxt לצרף לכל הבקשות הבאות את כותרת הדמו x-simulated-trading: 1. הדמו והחשבון האמיתי של OKX יושבים על אותו REST host, והשאלה לאיזו סביבה הבקשה נוחתת תלויה כולה בכותרת הזו — אז אל תנסה להבחין ביניהם לפי ה-URL. עם השורה הזו, בדיקת היתרה, ההזמנה והביטול שלך כולם עוברים בכסף מדומה; בלעדיה (או עם False), אותו קוד חוזר לכסף אמיתי.

אולי נתקלת בגרסה שכותבת את sandboxMode בתוך options כבר באתחול. הכתיבה הזו לא מעבירה אותך לדמו: ב-ccxt מי שמוסיף את כותרת הדמו היא השיטה set_sandbox_mode() עצמה, וכתיבת options בבנאי לא קוראת לה בכלל — הכותרת לא נוספת, הדגל לא נדלק, והבקשה יוצאת בדיוק כמו בחשבון אמיתי. אל תיתן לערך בתצורה להחליף את השורה שלמעלה: קרא ל-okx.set_sandbox_mode(True), ואז השתמש באותו print כבדיקה עצמית.

ומעל הכול יש נקודה מסוכנת יותר: את מפתח ה-API של הדמו חייבים ליצור בנפרד. המסלול לפי התיעוד הרשמי של OKX הוא התחברות ל-OKX ← Trade ← Demo Trading ← Personal Center ← Demo Trading API, ושם יוצרים Demo Trading API Key בתוך סביבת הדמו; זה המסלול שהתיעוד נותן, לא מתג שמדליקים על המפתח של החשבון האמיתי. ומכיוון שהדמו והחשבון האמיתי חולקים אותו REST host ומופרדים רק על ידי הכותרת x-simulated-trading: 1, המסקנה בוטה: אם המפתח שמילאת הוא של החשבון האמיתי והכותרת לא מצורפת, ההזמנות שאתה חושב שהן מדומות נוחתות בספר האמיתי. אם המתג דלוק ואתה עדיין מקבל שגיאת אימות, הבעיה בדרך כלל באישורים עצמם (הכי שכיח: הסט האמיתי שהודבק לתוך סקריפט דמו), ואפשר לחזור ולהשוות לרשימת שגיאות API נפוצות לאיתור התקלה.

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

📋 דוגמת חיבור והזמנה
כשמחברים את הסקריפט הנ"ל ב-ccxt לדמו של OKX, מה שהכי מועד להשתבש הוא ששורת set_sandbox_mode(True) חסרה. בלעדיה הבקשה יוצאת בלי הכותרת x-simulated-trading: 1, ואז היא נוחתת בחשבון האמיתי לא משנה איזה מפתח מילאת: אם זה המפתח של החשבון האמיתי, fetch_balance יחזיר את היתרה האמיתית — והכי קל לטעות דווקא כשהחשבון ריק, כי אז זה נראה כמו הדמו. לכן אל תקבע באיזה צד אתה נמצא לפי השאלה אם קפצה שגיאה או לא — הדפס את שורת הבדיקה העצמית שלמעלה והסתכל בה. ומכיוון שהדמו והחשבון האמיתי יושבים על אותו REST host ונבדלים רק באותה כותרת, אי אפשר לסמוך על ה-URL כדי לדעת באיזו סביבה אתה נמצא — הבדיקה העצמית היחידה שמחזיקה היא print(okx.headers.get('x-simulated-trading')), וחייב להתקבל 1. אחרי שהכותרת מאומתת, כדאי להריץ את כל הרצף פעם אחת: הזמנת קנייה limit על BTC/USDT (כמות 0.0001, מחיר נעול נמוך בהרבה ממחיר השוק כך שלא יתבצע), create_order מחזיר מספר הזמנה, ואחרי sleep(2) cancel_order מבטל אותה בסטטוס canceled. הרצה אחת כזו מאשרת שהשרשרת "חיבור לדמו ← בדיקת יתרה ← הזמנה ← ביטול" עובדת מקצה לקצה — כמה דקות, וכולה ללא עלות.

המקומות שבהם הדמו מרמה אותך

הדמו מצוין, אבל יש לו תקרה, והתקרה הזו יכולה ליצור אשליה. כמה דברים שחובה שתדע:

ה-slippage ומחיר הביצוע מיופים

בחשבון אמיתי, ההזמנה שלך צריכה להתאים עם צד נגדי אמיתי בשוק, והמחיר לרוב לא אידיאלי כמו שתלית — זה נקרא slippage. ההתאמה בדמו לרוב "צייתנית" יותר, ומחיר הביצוע קרוב יותר למחיר האידיאלי שלך. התוצאה: אותה סדרת פרמטרים, עקומת הרווח בדמו לרוב יפה יותר מבחשבון האמיתי. אל תיקח את הרווח בדמו כציפייה לחשבון האמיתי.

העומק והנזילות לא אמיתיים

בשוק אמיתי, הזמנה גדולה "תאכל" את הספר ותזיז את המחיר; צמד לא פופולרי אולי לא יוכל בכלל להתאים את ההזמנה שלך. הדמו לרוב מטפל בזה בפישוט, וכל הזמנה בכל גודל מתבצעת בחלקות. כשתגיע לחשבון אמיתי, ובמיוחד עם מטבעות בנזילות נמוכה, החלקות הזו נעלמת.

גם הרגש שלך מדומה

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

שוק קיצוני לא משוחזר

דקירת מחיר, התרסקות בזק, עומס והשהיה אקראיים של הבורסה — הרגעים הקיצוניים האלה הם המבחן האמיתי של אסטרטגיה וניהול סיכונים, ואת זה הריצה היומיומית של הדמו קשה לשחזר. אז דמו שרץ יציב לא אומר שהאסטרטגיה שלך תעמוד בשוק קיצוני.

אל תיתן לרווח בדמו לרמות אותך: הדמו מאמת אם "התהליך נכון", לא "כמה אפשר להרוויח". ה-slippage, העומק והרגש בו מפושטים או נמחקו, והרווח לרוב אופטימי יותר מבחשבון האמיתי. תתייחס אליו כארגז חול לאיתור תקלות ולתרגול, לא כחזרה גנרלית של רווח. מחירי נכסי קריפטו תנודתיים מאוד, ושום ביצוע בדמו אינו מייצג תוצאה בחשבון אמיתי.

סדר המעבר מדמו לחשבון אמיתי

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

  • הרצה רציפה תקופה בדמו. לא הרצה אחת מוצלחת ודי, אלא לתת לו לרוץ ברצף מספיק זמן, לכסות כמה סבבי עליות וירידות, ולוודא שהזמנה, ביטול, callback ושינויי יתרה כולם כמצופה.
  • מעבר לחשבון אמיתי: מתג אחד וסט אישורים אחד. הסר את set_sandbox_mode(True) או שנה ל-False, והחלף את האישורים בחזרה למפתח של החשבון האמיתי (מפתח ה-Demo Trading לא עובד שם). זה בדיוק הערך של האימות הקודם בדמו — עלות המעבר הצטמצמה כמעט לאפס.
  • הפעם הראשונה בחשבון האמיתי רק בכסף קטן מאוד. סכום שגם אם תפסיד הכל לא יכאב לך, התייחס אליו כשכר לימוד. ה-slippage והעומק שהדמו לא מסוגל לשחזר — רק עכשיו ייחשפו.
  • עקוב אחריו בימים הראשונים. אל תרפה באמת, ודא שההתנהגות בחשבון האמיתי תואמת למה שראית בדמו, ורק אז הגדל בהדרגה.

הסדר הזה לא מסובך, אבל הוא חוסם את "הטעויות הקטלניות הנפוצות ביותר בשלב המתחיל" מחוץ לכסף האמיתי. קודם דמו, אז סכום קטן בחשבון אמיתי; קודם לשרוד, אז לדבר על רווחים — את המשפט הזה אנחנו חוזרים ומדגישים.

שאלות נפוצות

צריך להפיק API Key נפרד לדמו?

כן, צריך מפתח נפרד. את מפתח הדמו חייבים ליצור בתוך סביבת הדמו: התחברות ל-OKX ← Trade ← Demo Trading ← Personal Center ← Demo Trading API, ושם יוצרים Demo Trading API Key; זה המסלול שהתיעוד הרשמי נותן, לא מתג שמדליקים על המפתח של החשבון האמיתי. מה שמפיל אנשים: הדמו והחשבון האמיתי יושבים על אותו REST host, וההבחנה ביניהם היא רק לפי כותרת הבקשה x-simulated-trading: 1, ולכן אי אפשר לדעת לפי ה-URL באיזו סביבה אתה נמצא. קריאה ל-set_sandbox_mode(True) ב-ccxt מוסיפה את הכותרת הזו עבורך; לפני כל הרצה הדפס okx.headers.get('x-simulated-trading') — אם לא חוזר 1, אתה עדיין בחשבון האמיתי.

הכסף בדמו אמיתי? אם מפסידים צריך להחזיר?

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

הרווחתי בדמו — ארוויח אותו דבר בחשבון האמיתי?

אי אפשר להעתיק ישירות. הביצוע בדמו לרוב אידיאלי יותר מהאמיתי — ה-slippage, העומק ומהירות ההתאמה כולם מפושטים, וגם הלך הרוח שלך רגוע יותר כשמדובר בכסף מדומה. אותה סדרת פרמטרים עלולה בחשבון האמיתי לתת תוצאה שונה לגמרי, בגלל מחיר ביצוע גרוע יותר, עומק לא מספיק, או יד רועדת שלך. הדמו מאמת אם התהליך נכון, לא כמה אפשר להרוויח.

מה ההבדל בין set_sandbox_mode ל-sandboxMode בתצורה?

הן לא שקולות, וכתיבת sandboxMode בתצורה בלבד לא תעביר אותך לדמו. set_sandbox_mode() ב-ccxt היא שיטה שעושה שני דברים: מגדירה את sandboxMode בתוך options, ומוסיפה ל-headers את x-simulated-trading: 1 — הוספת הכותרת קורית רק בתוך השיטה הזו. כתיבת sandboxMode ב-options של הבנאי לא קוראת לשיטה בכלל, ולכן הכותרת לא נוספת, הדגל לא נדלק, והבקשה יוצאת בדיוק כמו בחשבון אמיתי. השתמש רק ב-okx.set_sandbox_mode(True), ואז הדפס okx.headers.get('x-simulated-trading') כבדיקה עצמית; רק אם חוזר 1 אתה באמת בדמו.

סידרתי בדמו — כמה שורות קוד צריך לשנות כדי לעבור לחשבון אמיתי?

מבחינת הקוד זו בעצם שורה אחת — להסיר את set_sandbox_mode(True) או לשנות ל-False; אבל האישורים חייבים להתחלף איתה, כי מפתח ה-Demo Trading לא עובד בחשבון האמיתי, ולכן צריך להחזיר את apiKey, secret ו-Passphrase של החשבון האמיתי. זה בדיוק היתרון של הרצה קודם בדמו: מאמתים את הלוגיקה עם כסף מדומה, ואחרי שמוודאים שהכל תקין משנים שורה אחת ועולים לכסף אמיתי. אבל בפעם הראשונה בחשבון האמיתי, חובה להשתמש בסכום קטן מאוד ולעקוב אחריו תקופה, כי הדמו לא מסוגל לשחזר slippage ועומק אמיתיים.

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