تكامل TradingView Webhook
آخر تحديث: أكتوبر 2026
حوّل تنبيهات TradingView إلى أوامر حقيقية تلقائيًا. عندما ينطلق تنبيهك، يرسل TradingView webhook إلى etrink، ويقوم EtrinkAgent الخاص بنا بتنفيذ الشراء/البيع على حساب MT5 الخاص بك — على مدار الساعة 24/7، حتى عندما يكون حاسوبك مطفأً.
كيف يعمل
تنبيه TradingView ← webhook من etrink (يتحقق من المفتاح وحدود الرمز والحجم) ← طابور الأوامر ← EtrinkAgent على منصة MT5 الخاصة بك ← وسيطك. تُسجَّل كل إشارة في لوحتك.
الإعداد خطوة بخطوة
- في لوحتك افتح Webhook، واختر الحساب المراد ربطه، ثم انقر على + مفتاح جديد.
- انسخ رابط الـ webhook الذي يُعرض مرة واحدة فقط (احتفظ به سرًّا — إذ يمكنه وضع أوامر):
https://api.etrink.com/hooks/etrk_xxxxxxxxxxxxxxxx- في TradingView، أنشئ تنبيهًا. فعّل Webhook URL والصق الرابط أعلاه.
- الصق ملف JSON التالي في حقل Message (الرسالة) الخاص بالتنبيه:
{
"action": "buy",
"symbol": "EURUSD",
"volume": 0.01,
"sl": 0,
"tp": 0,
"id": "{{time}}"
}- احفظ. عندما ينطلق التنبيه، يُنفَّذ الأمر على حسابك المرتبط.
تنسيق الرسالة
| الحقل | إلزامي | الوصف |
|---|---|---|
action | نعم | buy · sell · close. الأمر close يُغلق فقط — ولا يفتح أمرًا جديدًا أبدًا. |
symbol | نعم | رمز الوسيط (مثل EURUSD، XAUUSD) |
volume | لا | حجم اللوت. مطلوب لأوامر buy/sell؛ ويخضع لحد الحجم الخاص بكل حساب. |
sl / tp | لا | سعر وقف الخسارة / جني الأرباح (0 = بلا) |
magic | لا | رقم magic في MT5 (عدد صحيح ≥ 0) للأمر — استخدم رقمًا واحدًا لكل استراتيجية. مع close تُغلق فقط المراكز التي تحمل هذا الـ magic؛ ومن دونه تُغلق جميع مراكز الرمز. |
closeOpposite | لا | true = قبل الفتح، أغلق الاتجاه المعاكس على الرمز نفسه (أمر buy يُغلق مراكز sell، وأمر sell يُغلق مراكز buy)؛ وإذا حُدِّد magic فالمراكز ذات الـ magic نفسه فقط. إذا تعذّر إغلاق الاتجاه المعاكس، لا يُفتح الأمر الجديد. |
allowDuplicate | لا | القيمة الافتراضية true. false = لا يُفتح أمر جديد ما دام هناك مركز مفتوح في الاتجاه نفسه على الرمز (وبالـ magic نفسه إن حُدِّد). تظهر الإشارة في لوحتك على أنها تم تخطّيها — وهذا ليس خطأ. مع closeOpposite يُغلق الاتجاه المعاكس أولًا، ثم يُجرى هذا الفحص. |
comment | لا | تعليق يُكتب على الأمر المفتوح في MT5. يُستخدم 31 حرفًا كحد أقصى؛ وتتحول الحروف التركية إلى لاتينية (ç ← c)، وتُحذف علامات الاقتباس والرموز التعبيرية. |
id | لا | مفتاح منع التكرار (idempotency) — لا يُنفَّذ الـ id نفسه مرتين أبدًا |
test | لا | true = تحقّق فقط، دون أمر حقيقي |
تُقبل أيضًا صيغ كتابة بديلة: close_opposite، closeopposite، magicNumber، magic_number، allow_duplicate — وكذلك قيم نصية مثل "true" أو "false" أو "1001".
أمثلة
بيع (sell)
{ "action": "sell", "symbol": "XAUUSD", "volume": 0.05 }إغلاق مركز مفتوح
{ "action": "close", "symbol": "EURUSD" }إغلاق مراكز استراتيجية واحدة فقط (magic)
{ "action": "close", "symbol": "XAUUSD", "magic": 1001 }قيم ديناميكية (متغيرات TradingView)
يستبدل TradingView القيم {{ticker}} و{{strategy.order.action}} و{{close}} وغيرها لحظة الإرسال:
{ "action": "{{strategy.order.action}}", "symbol": "{{ticker}}", "volume": 0.01 }عكس الاستراتيجية (تنبيه واحد للشراء والبيع)
يتبع تنبيه استراتيجية واحد رسمك البياني على MT5: عندما تتحول الاستراتيجية إلى long، تُغلق مراكز sell الخاصة بالـ magic 1001 ويُفتح أمر buy؛ وعندما تتحول إلى short، يحدث العكس. لا يُفتح أبدًا مركز ثانٍ في الاتجاه نفسه.
{
"action": "{{strategy.order.action}}",
"symbol": "{{ticker}}",
"volume": 0.01,
"magic": 1001,
"closeOpposite": true,
"allowDuplicate": false,
"comment": "TV strateji A",
"id": "{{timenow}}"
}مثال Pine Script
استخدم الاستدعاء alert() لكي تُرسَل الرسالة (ملف JSON الخاص بك) إلى الـ webhook عند تحقق الشروط:
//@version=5
strategy("etrink signal", overlay=true)
fast = ta.sma(close, 10)
slow = ta.sma(close, 30)
if ta.crossover(fast, slow)
strategy.entry("Long", strategy.long)
alert('{"action":"buy","symbol":"EURUSD","volume":0.01}',
alert.freq_once_per_bar_close)
if ta.crossunder(fast, slow)
strategy.close("Long")
alert('{"action":"close","symbol":"EURUSD"}',
alert.freq_once_per_bar_close)اختبر بأمان
أضف "test": true إلى أي رسالة (أو استخدم زر إشارة تجريبية في اللوحة). تُنفَّذ جميع الفحوصات، ويُسجَّل الحدث بوصفه test، لكن لا يُوضع أي أمر حقيقي.
استكشاف الأخطاء وإصلاحها
- «symbol not allowed» (الرمز غير مسموح به) — الرمز غير موجود في قائمتك المسموح بها، أو يختلف اسمه لدى وسيطك (مثل
EURUSD.m). - «no running instance» (لا توجد نسخة قيد التشغيل) — الحساب المرتبط متوقف؛ سيُعاد تشغيله تلقائيًا، ثم أعد الإرسال.
- رُفض الحجم — أعلى من الحد الخاص بالحساب؛ خفّض قيمة
volumeأو ارفع الحد. - الإشارة «تم تخطّيها» —
allowDuplicate: falseوكان هناك مركز مفتوح بالفعل في الاتجاه نفسه؛ وهذا سلوك متوقع. - يظهر كل استدعاء في صفحة الإشارات في لوحتك مع حالته ونتيجته (رقم التذكرة أو الخطأ) وملف JSON الخام — تحقّق من هناك أولًا.
هل تحتاج إلى مساعدة؟ [email protected]