WeCore
אוטומציה

אוטומציה של התראות TradingView עם webhooks

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

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

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

מה זה webhook

Webhook הוא מנגנון שבו מערכת אחת שולחת בקשת HTTP למערכת אחרת כשמשהו קורה, במקום שהמערכת השנייה תצטרך לשאול כל הזמן "יש חדש?". במקרה של TradingView, כשתנאי ההתראה מתקיים, השרתים של TradingView שולחים בקשת POST לכתובת ה-webhook שהגדרתם, ובגוף הבקשה נמצא הטקסט שכתבתם בשדה ההודעה.

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

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

התראות אינדיקטור מול התראות אסטרטגיה

יש שני סוגים עיקריים של התראות שמשמשים לאוטומציה:

  • התראת אינדיקטור או תנאי: נוצרת על אינדיקטור, על מחיר או על פונקציית alert בקוד Pine. מתאימה כשהלוגיקה פשוטה, או כשהאינדיקטור עצמו מחשב מתי לשלוח אות.
  • התראת אסטרטגיה: נוצרת על סקריפט מסוג strategy ומופעלת כשמנוע האסטרטגיה מבצע פקודה מדומה (כניסה, יציאה, היפוך). היתרון הוא שאפשר לשלוח בהודעה מידע על הפקודה עצמה, כמו כיוון וגודל.

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

בניית ההודעה: JSON ו-placeholders

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

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

כמה כללים שכדאי לשמור:

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

הסימול הנכון וגלגול חוזים

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

שיקולי אמינות

אוטומציה טובה היא אוטומציה שאתם יודעים מתי היא לא עבדה. נקודות שכדאי להכיר:

  1. תפוגת התראות: בחלק מהמנויים להתראות יש תאריך תפוגה. התראה שפגה פשוט מפסיקה לשלוח, בלי רעש. סמנו לעצמכם תזכורת.
  2. שינוי בסקריפט: אם עורכים את האינדיקטור או האסטרטגיה, ההתראה הקיימת עלולה להמשיך לרוץ על הגרסה הישנה. לרוב צריך ליצור אותה מחדש.
  3. התראות כפולות: שתי התראות על אותו גרף, או התראה שמופעלת יותר מפעם אחת בנר, עלולות לשלוח פקודה כפולה. הגדירו את תדירות ההפעלה בכוונה, ועדיף שהצד המקבל יזהה כפילויות.
  4. עיכובים: webhook עובר ברשת ויכול להתעכב. בשוק מהיר עיכוב קטן משפיע על המחיר; ראו את המאמר על החלקה ועלויות ביצוע.
  5. כשל בצד המקבל: אם השרת המקבל לא זמין, ההודעה עלולה ללכת לאיבוד. מערכת טובה תתריע לכם.

אבטחת כתובת ה-webhook

כתובת ה-webhook היא בפועל מפתח: מי שיודע אותה, ויודע את פורמט ההודעה, יכול לשלוח פקודות לחשבון שלכם. לכן:

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

איך מאבחנים התראה שלא בוצעה

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

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

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

דוגמה לסדר עבודה כשמעדכנים אסטרטגיה

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

צ'קליסט לפני הפעלה

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

נקודות מפתח

  • Webhook הוא רק שליח: TradingView שולח הודעה, והצד המקבל מבצע ומנהל סיכונים.
  • התראות אסטרטגיה מאפשרות להעביר כיוון וכמות, אבל צריכות הגדרות חישוב עקביות.
  • JSON תקין ו-placeholders נכונים חוסכים הרבה טעויות.
  • תפוגה, כפילויות ועריכת סקריפטים הן מקורות כשל נפוצים.
  • כתובת ה-webhook היא סוד; התייחסו אליה כמו לסיסמה.

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

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