איך אני עושה סימולציית מסחר ממונף?

הבסיס

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

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

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

אסטרטגיות Pine Script™ קובעות את סכומי המינוף המוחלים על עסקאות לונג ושורט מדומות באמצעות התשומות "מרג'ין לפוזיציות לונג" ו"מרג'ין לפוזיציות שורט" בלשונית "מאפיינים" של הגדרות הסקריפט. תשומות אלו מגדירות את האחוז המינימלי מערך הפוזיציה הנדרש ביתרת החשבון עבור האסטרטגיה לדמות פתיחה ושימור של הפוזיציה.

 

לדוגמה, ערך "מרג'ין לפוזיציות לונג" של 20% פירושו שהסימולציה תחייב 20% מכל פוזיציה לונג להיות מכוסה על ידי היתרה הזמינה של האסטרטגיה, כאשר 80% הנותרים מכוסים על ידי הברוקר. מכיוון שכל פוזיציית לונג דורשת רק חמישית מהערך שלה למימון על ידי החשבון, האסטרטגיה יכולה לדמות פוזיציות לונג של עד פי 5 מהיתרה הזמינה שלה. במונחים אחרים, רמת מרג'ין זו (1:5) מגדילה את המינוף של האסטרטגיה ל-5:1.

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

הערה: מתכנתים יכולים להגדיר את ערכי המרג'ין המוגדרים כברירת מחדל בסקריפטים של האסטרטגיה שלהם באמצעות הפרמטרים `margin_long` ו-`margin_short` של הפונקציה `strategy()`.

הפרטים

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

 

המרג'ין המוקצה למסחר הוא תוצר של שווי השוק של הפוזיציה ויחס המרג'ין (כלומר, יחס המינוף הרצוי).

נניח שהשער הנוכחי של EURUSD הוא 1.05, ואנו רוצים לדמות רכישה סטנדרטית (100,000 יחידות) מבלי ללוות כספים מהברוקר (כלומר, שימוש במינוף של 1:1). במקרה זה, הגדרנו את "המרג'ין לפוזיציות לונג" ל-100%, תוך הנחיה לאסטרטגיה לבצע פקודות רק באמצעות הכספים הזמינים שלה. לכן, בחשבון חייב להיות לפחות 105,000 דולר (1.05 * 100,000) זמינים כדי לאפשר את העיסקה.

 

עכשיו, נניח שאנו רוצים לדמות את אותו המסחר עם מינוף 20:1. במקרה זה, יחס המרג'ין הוא 1:20 (5%). הגדרת " המרג'ין לפוזיציות לונג" ל-5% מציינת שיתרת החשבון חייבת להיות לפחות 5% מערך הפוזיציה כדי לדמות את קבלת יתר ה-95% מהברוקר. יתרת החשבון המינימלית (מרג'ין) הנדרשת כדי לאפשר עסקה זו היא 5% מ-105,000 (5,250 דולר).

 

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

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

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

 

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

 

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

נגמרים הכספים

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

הנוסחה שמנהלת מתי מתרחש אירוע קריאת מרג'ין היא:

 

CurrentEquity <= MarginRequired

 

ערך CurrentEquity הוא כמות ההון שיש לאסטרטגיה המדומה ברגע מסוים, כולל רווח או הפסד מהפוזיציה הפתוחה. MarginRequired הוא ההון שהחשבון צריך כדי לשמור על הפוזיציה. ברגע שה-CurrentEquity לא יספיק כדי לממן את הפוזיציה הפתוחה, יתרחש אירוע קריאת מרג'ין.

 

הנוסחה עבור CurrentEquity היא PriceChange * כיוון * PointValue * AbsPositionSize + InitialCapital + NetProfit, כאשר:

 

  • PriceChange הוא ההפרש בין המחיר הנוכחי למחיר הכניסה של הפוזיציה הפתוחה. 
  • הכיוון הוא 1 אם הפוזיציה היא לונג או -1 אם היא שורט.
  • PointValue הוא כמות הכסף שתנועת מחיר של מספר שלם מסמלת. עבור רוב הסימולים, הערך הוא 1, כאשר היוצא מן הכלל העיקרי הוא חוזים עתידיים, כאשר שינוי מ-100 ל-101 עשוי לגרום לכך שהערך השתנה ב-50 USD במקום ב-1 USD, ובמקרה זה ה-PointValue יהיה 50.
  • AbsPositionSize הוא גודל הפוזיציה הנוכחית. ערך זה תמיד חיובי, למרות שסקריפטים של אסטרטגיה מייצגים עסקאות שורט עם מספרים שליליים בגרף.
  • InitialCapital + NetProfit הוא סכום ההון העצמי הכולל של האסטרטגיה לפני פתיחת הפוזיציה הנוכחית.

 

הנוסחה עבור MarginRequired היא LastPrice * PointValue * AbsPositionSize * (MarginPercent / 100), כאשר LastPrice הוא המחיר בגרף לחישוב, ו-(Margin Percent / 100) הוא המקדם שאנו מכפילים בו כדי לקבל את החלק הנדרש של בעל החשבון מהפוזיציה הפתוחה.

כדי להדגים את החישובים הללו, דמיינו שאנו מדמים אסטרטגיה עם 1,000 דולר כ"הון התחלתי" וערך "מרג'ין לפוזיציות לונג" של 20% (מינוף 5:1) לרכישת 40 מניות של NASDAQ:GOOG במחיר של 100 דולר.

 

אם מחיר המניה ירד ל-95 USD, CurrentEquity הוא PriceChange * כיוון * PointValue * AbsPositionSize + InitialCapital + NetProfit = (95 - 100) * 1 * 1 * 40 + 1000 + 0 = 800, והמרג'ין האחרון *ValPrice Required הוא AbsPositionSize * (MarginPercent / 100) = 95 * 1 * 40 * 0.2 = 760. האסטרטגיה עדיין יכולה לקיים את הפוזיציה הפתוחה במחיר הזה, כך שלא מתרחש אירוע קריאת מרג'ין.

 

לאחר מכן, נניח שהמחיר ירד עוד יותר לערך של 90 דולר. הערך החדש CurrentEquity הוא (90 - 100) * 1 * 1 * 40 + 1000 + 0 = 600, וה-MarginRequired הוא כעת 90 * 1 * 40 * 0.2 = 720. מכיוון שה-CurrentEquity כבר לא מספיק כדי לכסות את MarginRequired, האסטרטגיה יוצרת אירוע קריאת מרג'ין וסוגרת בכוח חלק מהפוזיציה.

 

הדמיית מחיר המרג'ין

הדרך הקלה ביותר לדמיין את המחיר שבו יכול להתרחש אירוע של קריאת מרג'ין היא להשתמש במשתנה המובנה `strategy.margin_liquidation_price` בקוד המקור Pine Script™ של האסטרטגיה. הוספת שורת קוד זו לכל אסטרטגיית Pine Script™ v5 תציג את מחיר הסגירה כשורה כחולה בגרף:

plot(strategy.margin_liquidation_price)
Generic

כללי

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

 

MarginLiquidationPriceRaw = ((InitialCapital + NetPofit) / (PointValue * AbsPositionSize) - כיוון * EntryPrice) / (MarginPercent / 100 - כיוון)

 

ערך MarginLiquidationPriceRaw המתקבל לאחר מכן מעוגל כלפי מעלה (עבור פוזיציות שורט) או כלפי מטה (עבור פוזיציות לונג) למחיר הקרוב ביותר המתחלק בערך הסימון המינימלי של הסימול.

 

שימו לב איך הביטוי כולו מחולק ב-(MarginPercent / 100 - Direction). אם הכיוון הוא לונג וה-MarginLong% הוא 100, המחלק יהיה 0, וה-MarginLiquidationPriceRaw המתקבל לא יהיה בר השגה עקב חלוקה באפס. התנהגות זו עולה בקנה אחד עם התפיסה לפיה ברוקר לא יכול לסגור בכוח פוזיציית לונג עם מרג'ין של 100%.

 

עם האסטרטגיה ההיפותטית שתוארה בסעיף הקודם, חישוב זה יביא ל: ((1000 + 0) / (1 * 40) - 100) / (20 / 100 - 1) = 93.75, שהוא המחיר הראשון שיצדיק קריאת מרג'ין. מכיוון ש-93.75 מתחלק בגודל הסימון של GOOG של 0.01, לעיגול המבוסס על הסימון המינימלי אין השפעה בתרחיש זה.

 

שימו לב שאירוע קריאת מרג'ין לא מובטח שיופעל במחיר מחושב זה במהלך הסימולציה.

חישוב גודל הפירוק

1. חשב את הכסף שהוצא, סכום הכסף שהסוחר הוציא על פתיחת הפוזיציה.

 

גודל פוזיציה * מחיר כניסה

 

2. חשב את ערך השוק של נייר הערך (MVS).

 

גודל פוזיציה * מחיר נוכחי

 

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

 

ABS(MVS - כסף שהוצא) * 1-

 

4.  חשב את ההון העצמי, כלומר, הכסף העומד לרשות הסוחר ברגע הנוכחי.

 

הון ראשוני + רווח נקי + רווח פתוח

 

5. המר את אחוז המרג'ין ליחס המרג'ין.

 

אחוז מרג'ין/ 100

 

6. חשב את המרג'ין, כלומר את הסכום המדויק של הכסף הדרוש לכיסוי החלק בפוזיציה הפתוחה.

 

MVS * יחס מרג'ין

 

7.  חשב את הכספים הזמינים, כלומר את כמות הכסף האבוד שהסוחר לא יכול לכסות בהון העצמי הנוכחי שלו.

 

הון עצמי - מרג'ין

 

8.  חשב את סכום הכסף הכולל שהסוחר הפסיד.

 

כספים זמינים / יחס מרג'ין 

 

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

 

TRUNCATE(שלב #8 / מחיר נוכחי)

 

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

 

שלב מס' 9 * 4

 

כדי לבחון את החישוב הזה בפירוט, בואו נוסיף את אסטרטגיית ה-Supertrend המובנית לגרף NASDAQ:TSLA על מסגרת הזמן ה-1D. הגדר את גודל ההוראה ל-300% מההון ואת המרג'ין עבור פוזיציות לונג ל-25%.

 

הכניסה הראשונה שלנו התרחשה עם פתיחת הבר ב-16 בספטמבר 2010. אנחנו קונים 682438 יחידות (גודל הפוזיציה) ב-4.43 דולר (מחיר כניסה). ואז, ב-23 בספטמבר 2010, כשהמחיר עמד על 3.9 (מחיר נוכחי), 111052 יחידות יסגרו בכוח באמצעות קריאת מרג'ין.

 

1. כסף שהוצא: 682438 * 4.43 = 3023200.34

2. MVS: 682438 * 3.9 = 2661508.2

3. רווח פתוח: −361692.14

4. הון עצמי: 1000000 + 0 - 361692.14 = 638307.86

5. יחס מרג'ין: 25/100 = 0.25

6. מרג'ין: 2661508.2 * 0.25 = 665377.05

7. כספים זמינים: 638307.86 - 665377.05 = -27069.19

8. כסף שאבד: -27069.19 / 0.25 = -108276.76

9. מניות לכיסוי ההפסד: TRUNCATE(-108276.76 / 3.9) = TRUNCATE(-27763.27) = -27763

10. גודל קריאת המרג'ין: -27763 * 4 = - 111052