١. نظرة عامة
يمكن لـ MagicTradeBot استقبال إشارات التداول مباشرة من مؤشرات TradingView والاستراتيجيات وتنبيهات Pine Script. بمجرد وصول الإشارة، تمر عبر نفس محرك التنفيذ المستخدم للإشارات الداخلية للبوت — حيث يعمل كل من وضع الأوامر و DCA والقرارات الذكية والإشعارات الواسعة بشكل متماثل.
تعمل ثلاثة مكونات معًا:
- 🔗 tv-signal-bridge — خدمة Axum مستقلة تستقبل webhooks من TradingView، وتتحقق من السر، وتوحّد رمز السهم، وتنشر إلى NATS
- 📡 NATS JetStream — وسيط رسائل خفيف يعمل في Docker وينقل الإشارات من الجسر إلى البوت مع تسليم مرة واحدة على الأقل
- 🤖 مستمع إشارات MagicTradeBot — يشتري في NATS، ويزيل الإشارات المكررة، ويجري فحوصات بوابة الحماية، ثم يستدعي
sync_bot_scan_result
معلومة
إشارات TV الخارجية هي إشارات من الدرجة الأولى. بمجرد تسجيل مفتاح الإشارة في
إشارات TV الخارجية هي إشارات من الدرجة الأولى. بمجرد تسجيل مفتاح الإشارة في
signal_registry.yaml،
يعاملها البوت تمامًا مثل TOP_GAINER_LONG_SIGNAL أو أي إشارة داخلية أخرى.
٢. تنسيق مفتاح الإشارة
كل إشارة TradingView تنتج مفتاحًا بهذا التنسيق:
TV_{الاستراتيجية}_{الاتجاه}_EXTERNAL_SIGNAL
| الإعداد | مفتاح الإشارة الناتج |
|---|---|
| الاستراتيجية: EMA_CROSS الاتجاه: long | TV_EMA_CROSS_LONG_EXTERNAL_SIGNAL |
| الاستراتيجية: RSI_DIV الاتجاه: short | TV_RSI_DIV_SHORT_EXTERNAL_SIGNAL |
| الاستراتيجية: SUPERTREND الاتجاه: long | TV_SUPERTREND_LONG_EXTERNAL_SIGNAL |
٣. المتطلبات الأساسية
- تثبيت وتشغيل MagicTradeBot
- بناء ملف tv-signal-bridge الثنائي وتوفره
- تثبيت وتشغيل Docker Desktop (لـ NATS)
- خطة TradingView مدفوعة — Essential أو أعلى
- عنوان URL عام أو IP حتى يتمكن TradingView من الوصول إلى الجسر
٤. الإعداد
٤.١ تشغيل NATS عبر Docker
docker run -d \ --name nats \ --restart unless-stopped \ -p 4222:4222 \ -p 8222:8222 \ nats:latest -js
٤.٢ تكوين tv-signal-bridge
قم بتحرير config/config.toml:
[bridge] bot_name = "MagicTradeBot-1" hmac_secret = "سرك-الطويل-هنا" [stream] backend = "nats" nats_url = "nats://127.0.0.1:4222" subject = "trade.signals" [symbols.mappings] "BTCUSDT" = "BTC/USDT" "ETHUSDT" = "ETH/USDT"
٤.٣ تشغيل tv-signal-bridge
# Windows ./tv-signal-bridge-win.exe # Linux / macOS ./tv-signal-bridge-linux
٤.٤ تسجيل مفاتيح الإشارة في signal_registry.yaml
register_trading_signals: - "TV_EMA_CROSS_LONG_EXTERNAL_SIGNAL" register_broadcast_signals: - "TV_EMA_CROSS_LONG_EXTERNAL_SIGNAL"
٤.٥ تمكين إشارات TV في MagicTradeBot
قم بتحرير settings/tradingview.yaml:
enabled: true bot_name: "MagicTradeBot-1" stream_backend: "nats" nats_url: "nats://127.0.0.1:4222" subject: "trade.signals"
٥. إعداد تنبيه TradingView
عنوان URL للويب هوك:
https://your-server.com:8090/webhook/tradingview
الرسالة (JSON):
{
"secret": "سرك-الطويل-هنا",
"symbol": "{{ticker}}",
"side": "long",
"strategy": "EMA_CROSS",
"confidence": 80.0,
"timestamp": {{timenow}}
}
٦. الاختبار بدون TradingView
اختبار PowerShell (Windows)
$timestamp = [int]([DateTimeOffset]::UtcNow.ToUnixTimeSeconds())
$body = @{
secret = "سرك-الطويل-هنا"
symbol = "BTCUSDT"
side = "long"
strategy = "EMA_CROSS"
confidence = 85.0
timestamp = $timestamp
} | ConvertTo-Json
Invoke-RestMethod -Uri "http://localhost:8090/webhook/tradingview" `
-Method POST -Body $body -ContentType "application/json"
٧. التحقق من السلسلة الكاملة
تحقق من سجلات الجسر ← سجلات البوت ← إشعار Discord/Telegram ← سجل الصفقة في قاعدة البيانات.
٨. مرجع التكوين
٩. استكشاف الأخطاء وإصلاحها
| العرض | الإصلاح |
|---|---|
| الجسر يُرجع 401 INVALID_SECRET | السر غير متطابق — انسخه تمامًا كما هو |
| الإشارة تصل إلى الجسر ولكن ليس إلى البوت | تحقق من enabled: true وأعد تشغيل البوت |
| 'bot_name mismatch' | يجب أن يكون bot_name متطابقًا في كلا ملفي التكوين |
١٠. قائمة مرجعية سريعة
- Docker Desktop قيد التشغيل
- تم تشغيل حاوية NATS مع -js
- الجسر يعمل على المنفذ 8090
- تسجيل مفاتيح الإشارة في signal_registry.yaml
- تفعيل tradingview.yaml مع bot_name مطابق
- الاختبار باستخدام curl / PowerShell
- تم إنشاء الإشعار والصفقة بنجاح