WeCore
מדריכים

הודעת JSON בהתראת TradingView: דוגמאות, תחביר וטעויות נפוצות

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

WeCore·פורסם ·7 דק׳ קריאה

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

המאמר עוסק בהודעה עצמה בלבד. את התמונה הרחבה של הקשר בין התראות ל-webhook תמצאו באוטומציה של התראות TradingView עם webhook, ואת יצירת ההתראה צעד אחר צעד במדריך ההתראות של TradingView.

מה TradingView עושה עם ההודעה

לפי דף העזרה של TradingView על webhooks (נקרא ב-11 באוקטובר 2026), ההודעה נשלחת כגוף של בקשת POST לכתובת ה-webhook. אם ההודעה היא JSON תקין היא נשלחת עם סוג התוכן `application/json`, ואחרת כ-`text/plain`. זה חשוב: מקבל שמצפה ל-JSON ידחה בדרך כלל טקסט רגיל, ו-TradingView לא תתריע שהסוגריים שלכם שגויים. תגלו את זה רק מהלוג של ההתראה או מהרישומים אצל המקבל.

TradingView מציינת גם שבקשה שנמשכת יותר משלוש שניות מבוטלת, שנתמכים רק פורטים 80 ו-443, ושה-webhook עלול מדי פעם לא להגיע ליעד. ההודעה לא משנה את זה, אבל זו סיבה לשמור הודעות קצרות ושלמות: התראה אחת, הוראה אחת עצמאית.

JSON בחמישה כללים

JSON הוא פורמט טקסט של שדות (מפתחות) וערכים. בהודעות התראה חמישה כללים מכסים כמעט הכול:

  1. כל ההודעה עטופה בסוגריים מסולסלים: `{ ... }`.
  2. מפתחות וערכי טקסט כתובים עם גרשיים כפולים ישרים: `"action":"buy"`. גרש בודד וגרשיים "מעוקלים" אינם תקינים.
  3. מספרים נכתבים בלי גרשיים: `"quantity":1`.
  4. שדות מופרדים בפסיקים, ובלי פסיק אחרי השדה האחרון.
  5. אובייקט מקונן מקבל סוגריים משלו: `"stopLoss":{"type":"stop","amount":15}`.

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

פלייסהולדרים של TradingView

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

פלייסהולדרמה הוא מחזיר
`{{ticker}}`הטיקר של הסימבול בהתראה
`{{exchange}}`הבורסה של הסימבול
`{{close}}`, `{{open}}`, `{{high}}`, `{{low}}`ערכי הנר שבו ההתראה הופעלה
`{{volume}}`הנפח של הנר המפעיל
`{{time}}`זמן הנר, ב-UTC
`{{timenow}}`הרגע שבו ההתראה ירתה, ב-UTC
`{{interval}}`טיימפריים הגרף

בהתראות אסטרטגיה יש פלייסהולדרים נוספים של פקודות. בדף התראות האסטרטגיה של TradingView מופיעים `{{strategy.order.action}}`, `{{strategy.order.price}}`, `{{strategy.market_position}}`, `{{strategy.position_size}}` ו-`{{strategy.order.comment}}`, ורשימת הפלייסהולדרים של האסטרטגיה כוללת גם `{{strategy.order.contracts}}`. הם מתמלאים רק באירועי פקודה בזמן אמת, לא בפקודות על נרות היסטוריים.

גרשיים סביב פלייסהולדרים

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

  • טקסט: `"action":"{{strategy.order.action}}"` הופך ל-`"action":"buy"`, וזה תקין.
  • מספר: `"limitPrice":{{close}}` הופך ל-`"limitPrice":24500.25`, וזה תקין. הכתיבה `"limitPrice":"{{close}}"` שולחת את המספר כטקסט, ומקבלים רבים ידחו אותה.

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

הפורמט ש-WeCore קורא

נקודת הקצה של ה-webhook ב-WeCore קוראת הודעת JSON עם השדות הבאים. השמות לקוחים מהתיעוד של WeCore בתוך האפליקציה:

  • `ticker` (או `symbol`): המכשיר. אפשר לשלוח טיקר רציף כמו `MNQ1!`, `MES1!`, `MGC1!`, `NQ1!`, `ES1!` או `GC1!`, ו-WeCore ממפה אותו לחוזה החודש הקרוב הנוכחי, כך שלא צריך לערוך את ההתראה בכל גלגול רבעוני. רקע על גלגול בגלגול חוזים עתידיים.
  • `action`: אחד מ-`buy`, `sell`, `exit`, `add`, `cancel`, `breakeven` או `protect`.
  • `quantity`: מספר חוזים, אלא אם הוגדרה בהרשמה לאסטרטגיה שיטת גודל מבוססת דולרים.
  • `orderType` ו-`limitPrice`: פקודות לימיט עם מחיר מפורש הן ההגדרה המומלצת.
  • `stopLoss`: אובייקט עם `type` ו-`amount`, כשהכמות בנקודות.
  • `takeProfit`: אובייקט עם `amount` בנקודות.

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

דוגמאות עבודה

כל דוגמה היא שורה אחת, מוכנה להדבקה בשדה Message של התראה שכתובת ה-webhook שלה מצביעה על אסטרטגיה ב-WeCore. אלה המחשות תחביר בלבד; המכשיר, הגודל והמרחקים הם ערכי מקום לתוכנית שלכם ולא המלצה.

  • כניסה עם סטופ ויעד: `{"ticker":"MNQ1!","action":"buy","orderType":"limit","limitPrice":{{close}},"quantity":1,"stopLoss":{"type":"stop","amount":15},"takeProfit":{"amount":30}}`
  • יציאה: `{"ticker":"MNQ1!","action":"exit"}`
  • ברייק-איבן על פוזיציה פתוחה: `{"ticker":"MNQ1!","action":"breakeven"}`
  • ביטול פקודות ממתינות: `{"ticker":"MNQ1!","action":"cancel"}`
  • הוספת הגנה לפוזיציה פתוחה: `{"ticker":"MNQ1!","action":"protect","stopLoss":{"type":"stop","amount":15},"takeProfit":{"amount":30}}`
  • התראת אסטרטגיה עם פלייסהולדרים: `{"ticker":"MNQ1!","action":"{{strategy.order.action}}","quantity":1}`

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

סקריפט alert() מול שדה ההודעה

יש שתי דרכים שבהן הודעה מגיעה למנוע ההתראות של TradingView, וערבוב ביניהן יוצר התראות ריקות או שבורות.

  • שדה Message: אתם מקלידים את ה-JSON בחלון ההתראה. זו הדרך הרגילה לתנאי אינדיקטור פשוטים ולהתראות פקודה של אסטרטגיה.
  • קריאות alert(): סקריפט ה-Pine עצמו בונה את טקסט ההודעה בזמן ריצה. התיעוד של Pine ב-TradingView (נקרא ב-11 באוקטובר 2026) מסביר שביצירת התראה על סקריפט עם `alert()` בוחרים אם להפעיל רק על קריאות alert, רק על מילוי פקודות, או על שניהם. בדרך של `alert()` ההנחיה של WeCore היא לבחור "alert() function calls only" ולהשאיר את שדה Message ריק, כי הסקריפט מספק את הטקסט.

ל-`alert()` יש גם ארגומנט תדירות: `alert.freq_once_per_bar` (ברירת המחדל), `alert.freq_once_per_bar_close` או `alert.freq_all`. הבחירה קובעת אם נר אחד יכול לשלוח הודעה אחת או הרבה, וזה משפיע על כפילויות. אם אתם בונים את ההודעה בתוך Pine, אותם כללי JSON חלים, בתוספת הצורך להימלט (escape) מגרשיים בתוך המחרוזת.

טעויות תחביר נפוצות

טעותמה קורהתיקון
גרשיים "חכמים" מועתקים ממסמך או מצ'אטההודעה הופכת ל-text/plain ונדחיתלהקליד מחדש את הגרשיים בשדה של TradingView
פסיק אחרי השדה האחרוןJSON לא תקיןלמחוק אותו
חסר סוגר מסולסלJSON לא תקיןלספור פותחים וסוגרים
פלייסהולדר טקסטואלי בלי גרשיים`"action":buy` לא תקיןלעטוף פלייסהולדרים טקסטואליים בגרשיים
פלייסהולדר מספרי בתוך גרשייםהמחיר מגיע כטקסטלהסיר את הגרשיים סביב פלייסהולדרים מספריים
מילים נוספות סביב ה-JSONהמקבל לא מצליח לפענחבשדה ההודעה רק ה-JSON
שדה Message ריק בהתראה שאינה alert()אין מה לקרואלמלא JSON
גודל סימבול שגויפוזיציה פי 10לבדוק מיני מול מיקרו בטיקר

בדיקה בטוחה

התייחסו לכל הודעה חדשה כלא בדוקה עד שראיתם אותה מגיעה. סדר פעולות סביר:

  1. לבדוק את ה-JSON במצב לא מקוון עם ערכי דוגמה.
  2. להפנות את ההתראה לאסטרטגיה שחשבון הברוקר שלה במצב Simulation. חשבונות ברוקר חדשים ב-WeCore מתחילים ב-Simulation, ומסחר חי אפשרי רק אחרי ששמרתם כללי סיכון. המאמר על מצב סימולציה לפני מסחר חי מפרט את התהליך.
  3. להפעיל את ההתראה ולקרוא את לוג ההתראות של TradingView, שמציג סטטוס שליחה, ואחר כך את האות באפליקציית WeCore.
  4. להשוות את הפקודה שהגיעה לכוונה: סימבול, צד, גודל, סטופ ויעד.
  5. רק אז לשקול מעבר מעבר ל-Simulation, ורק אחרי שקראתם את כללי האוטומציה העדכניים של חברת הפרופ שלכם (ראו חברות פרופ שמאפשרות אוטומציה).

אם נראה שההתראה לא יורה בכלל, עברו על התראת TradingView לא יורה: פתרון תקלות לפני שאתם עורכים את ההודעה.

שמירה על הודעות שקל לתחזק

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

אם אתם מעדיפים לא לכתוב כללים בעצמכם, אפשר לעיין באסטרטגיות המוכנות של WeAlgo, שרצות על שרת המסחר שלכם עם נתוני הברוקר שלכם. ואם אתם רוצים להפוך כללים כתובים שלכם לאסטרטגיה, ה-AI Strategy Builder בתוך אפליקציית WeCore (Tools ואז Strategy Builder, דורש תוכנית Start, Prop או Fleet פעילה) זמין אחרי פתיחת חשבון. אפשר קודם להשוות את התוכניות; יש ניסיון של 7 ימים שמתחיל באימות כרטיס של $1.

שאלות נפוצות

האם הודעת התראה ב-TradingView חייבת להיות JSON?

לא. TradingView תשלח כל טקסט, אבל מקבל כמו WeCore מצפה ל-JSON תקין עם לפחות טיקר ופעולה. טקסט רגיל מגיע כ-text/plain ובדרך כלל נדחה.

האם לשים גרשיים סביב `{{close}}`?

לא, כשהשדה הוא מספר. `"limitPrice":{{close}}` מפיק מספר תקין. גרשיים רק לפלייסהולדרים שמחזירים מילים, כמו פעולת הפקודה.

האם התראה אחת יכולה לשלוח גם קנייה וגם מכירה?

בהתראת אסטרטגיה כן: הפלייסהולדר `{{strategy.order.action}}` מתמלא על ידי TradingView בכיוון הפקודה. בהתראת תנאי פשוטה בדרך כלל יוצרים התראה נפרדת לכל פעולה.

למה ההודעה עובדת בבודק JSON ולא בהתראה?

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

איפה בודקים הודעה חדשה?

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

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

מקורות וקריאה נוספת