تخطَّ إلى المحتوى
Signal Pilot

الـWebhook (TradingView ← بوت)

يتيح الـWebhook إرسال تنبيهات TradingView إلى خدمات خارجية أو بوتات أو واجهات API خاصة بك لأتمتة العمل. يشرح هذا الدليل كيف تُضبط وتُستخدم مع مؤشرات Signal Pilot.

الغرض تعليمي

يعرض هذا الدليل ربط الـWebhook لغرض التعلم والأتمتة. التداول الآلي ينطوي على مخاطر كبيرة. هذه ليست نصيحة مالية.

📡 ما هو الـWebhook؟

الـWebhook طلب HTTP POST يرسله TradingView من تلقاء نفسه إلى العنوان الذي تحدده، لحظة انطلاق التنبيه. أشهر استخداماته:

  • التنبيه: إرسال التنبيهات إلى Discord أو Telegram أو Slack
  • التسجيل: حفظ التنبيهات في قاعدة بيانات أو جدول حسابات
  • الأتمتة: تشغيل إجراءات عبر واجهات API خاصة بك
  • التجربة: متابعة عدد مرات التنبيه والشروط التي يظهر عندها

✅ ما تحتاجه أولًا

قبل ضبط الـWebhook تحتاج عادةً إلى هذه الأمور:

  • خطّة TradingView مدفوعة (Essential أو Plus أو Premium): الحسابات المجّانية لا تملك صلاحية الويب هوك
  • عنوان الجهة المستقبِلة: خدمة تستقبل طلبات HTTP POST، مثل webhook في Discord أو خادم خاص بك أو منصة أتمتة
  • مؤشر من Signal Pilot: مضبوط وموضوع على رسمك البياني
  • إلمام بسيط بـJSON: مفيد إن أردت تركيب الرسالة بنفسك، وليس شرطًا

🔧 خطوة بخطوة

الخطوة 1: احصل على عنوان الـWebhook

العنوان المطلوب يتوقف على الجهة التي تريد وصول التنبيهات إليها:

webhook في Discord

  1. في Discord اذهب إلى إعدادات الخادم ← التكاملات ← Webhooks
  2. اضغط «New Webhook»
  3. اختر الاسم والقناة
  4. انسخ عنوان الـwebhook (شكله هكذا: https://discord.com/api/webhooks/...)
صفحة Integrations في إعدادات خادم Discord، وفيها سطر Webhooks مع زر Create Webhook، وبجانبه Channels Followed وTwitch وYouTube.
تسكن الـ webhooks تحت Integrations في إعدادات خادم Discord نفسه. وإنشاء واحد هناك ينتج العنوان الذي سيرسل إليه TradingView.

بوت في Telegram

  1. ابحث في Telegram عن «@BotFather»
  2. أرسل /newbot ثم اتبع ما يطلبه منك
  3. احتفظ برمز البوت
  4. استعن بخدمة وسيطة أو بخادم خاص بك لتمرير webhook الخاص بـTradingView إلى Telegram

خادم خاص أو واجهة API خاصة

تستطيع تجهيز الجهة المستقبِلة بنفسك عبر منصات مثل:

  • Webhook.site: للتجربة؛ يستقبل محتوى الـwebhook ويعرضه أمامك
  • Make.com (كان اسمه Integromat): لربط عدة خدمات ببعضها
  • Zapier: لأتمتة سلاسل العمل
  • خادم خاص بك: Python مع Flask، أو Node.js مع Express، وما شابه

الخطوة 2: اضبط التنبيه في TradingView

  1. على الرسم البياني الذي يحمل مؤشر Signal Pilot، اضغط أيقونة Alert (الساعة وعليها علامة +)
  2. في نافذة التنبيه:
    • الشرط: اختر مؤشر Signal Pilot والشرط الذي تريد مراقبته
    • الخيارات: اضبطه على «Once Per Bar Close» حتى لا تحدث إعادة رسم داخل الشمعة
    • الاستحقاق: حدده بحسب حاجتك؛ والأشيع هو «Open-ended»
  3. انزل إلى تبويب «Notifications».
  4. ثم فعّل خانة «Webhook URL».
  5. الصق هناك عنوان الجهة المستقبِلة
تبويب Notifications في نافذة تنبيهات TradingView، وفيه Notify in app وShow toast notification وSend email وWebhook URL مؤشَّرة، وحقل العنوان يعرض نصاً تجريبياً، وPlay sound وSend plain text غير مؤشَّرين.
يظهر حقل Webhook URL بمجرد تأشير المربع فوقه. ويرسل TradingView نص التنبيه جسماً لطلب POST إلى العنوان الذي تلصقه هناك.

الخطوة 3: ركّب الرسالة (اختياري)

في حقل «Message» تحدد أنت البيانات التي تُرسل. ويدعم TradingView هذه العناصر النائبة:

{
  "indicator": "{{ticker}}",
  "price": "{{close}}",
  "time": "{{time}}",
  "signal": "Pentarch: IGN event",
  "timeframe": "{{interval}}"
}

أشهر العناصر النائبة في TradingView:

  • {{ticker}}: اسم الأداة، مثل «BTCUSDT»
  • {{close}}: سعر الإغلاق في تلك اللحظة
  • {{time}}: وقت انطلاق التنبيه
  • {{interval}}: الإطار الزمني، مثل «15» أو «1D»
  • {{exchange}}: اسم المنصة

الخطوة 4: جرّب الـWebhook

  1. بعد إنشاء التنبيه، اضغط زر «Test» في إعدادات التنبيه.
  2. انظر في الجهة المستقبِلة: قناة Discord أو webhook.site أو ما وضعته
  3. تأكد من وصول الرسالة بتنسيق سليم
  4. إن لم يصل شيء، راجع الآتي:
    • هل عنوان الـwebhook صحيح
    • حساب TradingView يملك صلاحية الويب هوك (Essential أو Plus أو Premium)
    • هل الجهة المستقبِلة متاحة ولا يحجبها جدار حماية
رسالة على Discord من تطبيق اسمه Signal Pilot Alerts، فيها BULLISH FLOW على BTCUSDT.P 4h مع نسبتي الجودة والنظام وقيم الدخول والوقف والهدف والحجم والمخاطرة.
التنبيه وهو يصل إلى Discord. ينشر الـ webhook النص كما أرسله TradingView تماماً، فما تراه هنا هو ما أنتجه قالب التنبيه.

💬 أمثلة على التنسيق

رسالة بتنسيق Discord

{
  "content": "🔔 **Signal Pilot Alert**",
  "embeds": [{
    "title": "Pentarch: IGN event",
    "description": "IGN event printed on {{ticker}}",
    "color": 65280,
    "fields": [
      {"name": "Price", "value": "{{close}}", "inline": true},
      {"name": "Timeframe", "value": "{{interval}}", "inline": true},
      {"name": "Time", "value": "{{time}}", "inline": false}
    ]
  }]
}

رسالة نصية بسيطة

Signal Pilot: {{ticker}} - تغيّر نظام Harmonic Oscillator عند {{close}} على الإطار الزمني {{interval}}

JSON منظم لواجهة API خاصة

{
  "alert_type": "signal_pilot",
  "indicator": "janus_atlas",
  "symbol": "{{ticker}}",
  "exchange": "{{exchange}}",
  "timeframe": "{{interval}}",
  "price": "{{close}}",
  "timestamp": "{{time}}",
  "condition": "Level Break Alert"
}

🌐 المنصات الأكثر استخدامًا

المنصة متى يُستخدم صعوبة الضبط
Discord تنبيه الفريق وحفظ السجل سهلة جدًا
Telegram تنبيهات على الهاتف متوسطة؛ تحتاج بوتًا ووسيطًا
Make.com ربط عدة خدمات سهلة، وتبني المسار بصريًا
Zapier اتصال بأكثر من 5000 تطبيق سهلة، وتبني المسار بصريًا
Webhook.site التجربة وتتبع الأخطاء سهلة جدًا
خادم خاص تحكم كامل ومنطق تكتبه بنفسك عالية؛ تحتاج برمجة

🔍 حين لا يعمل شيء

🔍 الـWebhook لا يرسل شيئًا؟ راجع هذه النقاط:
  1. هل وضعت العنوان فعلًا داخل التنبيه؟ ← إن لم تفعل، أضفه
  2. هل ينطلق التنبيه أصلًا؟ ← إن لم ينطلق، أصلح التنبيه أولًا
  3. هل جربته على webhook.site؟ ← إن لم تجرب، ابدأ من هناك. وإن فشل، ولّد عنوانًا جديدًا
  4. هل التنسيق صحيح؟ ← راجع التنسيق الذي يطلبه Discord أو Telegram
  5. هل الـJSON سليم؟ ← مرره على أداة تحقق من JSON لمراجعة الصياغة
  6. هل لديك خطّة TradingView مدفوعة؟ ← الحسابات المجانية لا تستطيع استخدام الـwebhook

تجربة سريعة: اجعل تجربتك الأولى دائمًا على webhook.site. فإن وصلت هناك ولم تصل إلى Discord أو Telegram، فالخلل في إعداد الجهة المستقبِلة.

الـWebhook لا يصل

  • تحقق من باقتك في TradingView: الحسابات المجانية لا تستطيع استخدام الـwebhook
  • راجع العنوان: بلا مسافات زائدة، وبالبروتوكول https://
  • جرّب الجهة المستقبِلة: استخدم webhook.site للتأكد من أن TradingView يصل إلى عنوانك
  • هل انطلق التنبيه؟: راجع سجل التنبيهات في TradingView لتتأكد من انطلاقه فعلًا

بيانات خاطئة في الرسالة

  • صياغة العنصر النائب: الصواب هو {{ticker}} لا {ticker}
  • تنسيق الـJSON: إن استعملت الشكل المنظم، تحقق منه على jsonlint.com
  • تهريب علامات الاقتباس: استخدم \" إن احتجت علامات اقتباس داخل نص JSON

يصل عدد كبير من الـWebhook

  • تواتر التنبيه: انتقل من «Once Per Bar» إلى «Once Per Bar Close»
  • دقة الشرط: ضيّق الشرط حتى ينطلق مرات أقل
  • مدة الانتظار: بعض خدمات الـwebhook تحد من عدد الطلبات التي تقبلها

🔒 الأمان

نقاط مهمة في الأمان

  • عنوان الـwebhook معلومة حساسة: عامله معاملة كلمة المرور ولا تنشره في أي مكان
  • بدّله بين حين وآخر: خصوصًا إن تعلقت به أعمال مهمة
  • تحقق مما يصلك: إن كنت تستخدم خادمًا خاصًا، فتأكد أن الطلبات آتية فعلًا من TradingView
  • استخدم HTTPS كلما أمكن: الجهة التي تقبل HTTP غير مشفر تمثل خطرًا

📋 مثال على التركيب

السيناريو: تلقّي تنبيهات IGN من Pentarch في قناة على Discord

  1. أُنشئ: webhook في Discord داخل قناة ‎#trading-alerts
  2. ضُبط: Pentarch v1.0 على رسم BTCUSDT بإطار 15 دقيقة
  3. التنبيه: على شرط «Pentarch: IGN event»
  4. التواتر: «Once Per Bar Close»
  5. لُصق: عنوان webhook الخاص بـDiscord في إعدادات التنبيه
  6. رسالة مخصصة: بتنسيق التضمين في Discord المعروض أعلاه
  7. جُرّب: التنبيه؛ وظهرت الرسالة في Discord
  8. التنبيه يعمل: - تصل القناة رسالةٌ في كل مرّة يُطبع فيها حدث IGN

(مثال على تركيب حقيقي، للتعلم فقط. ليست نصيحة مالية. والنتائج تختلف من شخص لآخر.)