خادم AlgoVesta MCP: اجعل Claude وChatGPT وCursor وGemini يتداولون في حساباتك الحقيقية على المنصات وMetaTrader 5
ما هذا: تُشغّل AlgoVesta خادم Model Context Protocol (MCP) مُستضافًا يمنح مساعد الذكاء الاصطناعي عشرين أداة تداول حقيقية عبر رابط HTTPS واحد. الصق هذا الرابط الواحد في Claude أو ChatGPT أو Cursor أو Claude Code أو Gemini CLI أو أي عميل يدعم MCP، ويستطيع المساعد قراءة الأرصدة، وفتح وإغلاق المراكز، وتحريك وقف الخسارة وجني الأرباح، وتدقيق أفعاله الخاصة عبر 16 منصة عملات رقمية وMetaTrader 5 للفوركس في آن واحد — باستخدام إعدادات المخاطر التي حفظتها بالفعل في AlgoVesta، خلف جدار سياسات على مستوى الخادم لا يمكن لأي أمر نصي (prompt) تجاوزه. يبدأ كل اتصال برصيد تجريبي قدره 5,000$، وتعيد كل عملية إيصالًا موقّعًا بـed25519.
بروتوكول Model Context Protocol معيار مفتوح لربط مساعدي الذكاء الاصطناعي بأنظمة خارجية. معظم خوادم MCP المتعلقة بالتداول تبث بيانات السوق إلى نافذة المحادثة. أما هذا الخادم فيُنفّذ: فهو طبقة توجيه أوامر تسبقها محرك مخاطر حتمي، والذكاء الاصطناعي هو المُستدعي — وليس صاحب القرار أبدًا.
البدء السريع
الإعداد ثلاث خطوات ولا يحتاج إلى أي كود. تعيش العملية بأكملها في تبويب اتصال MCP في لوحة AlgoVesta الخاصة بك.
افتح اتصال MCP وأنشئ مفتاحًا. المفاتيح الجديدة تكون افتراضيًا بنطاق paper . يُعرض الرابط الكامل مرة واحدة فقط — انسخه حينها.
الصق الرابط في عميل الذكاء الاصطناعي الخاص بك كخادم MCP مخصص. لا تغادر أي مفاتيح API نطاق AlgoVesta، ولا كود، ولا تثبيت محلي.
تحدّث معه. “كيف هي محفظتي؟” “حاكِ صفقة شراء (long) بقيمة 200$ على ETHUSDT برافعة 5x.” “أغلق نصف مركز BTC الخاص بي.”
يبدو رابط الاتصال الخاص بك كما يلي:
https://api.algovesta.com/u/avmcp_<your-key>/mcp
هذا الرابط بمثابة بيانات اعتماد. أي شخص يحمله يمكنه التصرف ضمن نطاقه في حساباتك. تعامل معه كما تتعامل مع كلمة مرور: لا تلصقه أبدًا في محادثة عامة، أو لقطة شاشة، أو مستودع مشترك، أو تذكرة دعم فني. إذا تسرّب، ألغِه من اللوحة — يسري الإلغاء فورًا على الاتصالات الجديدة ويُسقط تدفقات الأحداث المفتوحة خلال ثوانٍ.
مساعدو الذكاء الاصطناعي القادرون على الاتصال
يمكن لأي عميل يتحدث MCP عبر Streamable HTTP أن يتصل. يسجّل الجدول أدناه ما تم التحقق منه مقابل الخادم الفعلي، بما في ذلك القيود الحقيقية — بعض هذه القيود ناتج عن منتج الذكاء الاصطناعي نفسه، وليس عن AlgoVesta، وستواجهها بغض النظر عن خادم MCP الذي تستخدمه.
| عميل الذكاء الاصطناعي | أين تلصق الرابط | ملاحظات وقيود حقيقية |
|---|---|---|
| Claude (الويب، سطح المكتب، iOS، Android) | Customize → Connectors → Add custom connector | دعم كامل. عناوين الأدوات ومربعات حوار التأكيد تأتي مباشرة من الخادم. |
| Claude Code | claude mcp add --transport http | سطر الأوامر. مفيد لسير العمل المُبرمج أو القابل للتكرار. |
| Cursor | mcp.json، في "url" حقل | دعم كامل. لاحظ أن اسم المفتاح هو url هنا — بينما يستخدم Gemini CLI اسمًا مختلفًا. |
| ChatGPT | وضع المطوّر / موصل مخصص | الخطط المدفوعة فقط. الموصلات المخصصة لـMCP غير متاحة في الخطة المجانية، وقد يلزم تفعيل وضع المطوّر أولًا. هذا قيد من OpenAI. |
| Gemini CLI | ~/.gemini/settings.json، في "httpUrl" حقل | واجهة سطر الأوامر (CLI) فقط. تطبيق Gemini على الويب لا يدعم خوادم MCP المخصصة. استخدم مفتاح httpUrl ، وليس url. |
| أي عميل آخر يدعم MCP | إعدادات MCP / الموصلات الخاصة به | يطبّق الخادم المعيار القياسي، لذا فإن أي عميل يدعم MCP عن بُعد عبر Streamable HTTP سيعمل دون الحاجة إلى أي شيء خاص به. |
مثال Cursor (mcp.json):
{
"mcpServers": {
"algovesta": {
"url": "https://api.algovesta.com/u/avmcp_<your-key>/mcp"
}
}
}
مثال Gemini CLI (~/.gemini/settings.json) — لاحظ httpUrl:
{
"mcpServers": {
"algovesta": {
"httpUrl": "https://api.algovesta.com/u/avmcp_<your-key>/mcp"
}
}
}
Claude Code:
claude mcp add --transport http algovesta https://api.algovesta.com/u/avmcp_<your-key>/mcp
النقل والبروتوكول
| النقل | Streamable HTTP، عديم الحالة، استجابات JSON. تتم مصادقة كل طلب بشكل مستقل. |
| اسم الخادم | AlgoVesta |
| نقطة نهاية الرابط السري | https://api.algovesta.com/u/<key>/mcp |
| نقطة نهاية OAuth | https://api.algovesta.com/mcp |
| تغييرات قائمة الأدوات | tools.listChanged = true. يقوم العملاء بتحديث قائمة الأدوات عند إعادة الاتصال، لذا تظهر الأدوات والمعاملات الجديدة دون الحاجة إلى إزالة الموصل وإعادة إضافته. |
| تدفق الأحداث | أحداث مُرسَلة من الخادم (SSE) على /mcp/events و /u/<key>/events، معزولة لكل مستأجر، مع Last-Event-ID إعادة الاتصال. |
| مخطط قابل للقراءة آليًا | /mcp/tools.json — مخطط JSON Schema الكامل لجميع الأدوات الـ20، تمامًا كما يستلمه العميل. |
المصادقة والنطاقات
توجد طريقتان للاتصال، وكلتاهما تنتهيان إلى نفس سياق المستأجر. لا تقبل الأدوات أبدًا معرّف مستخدم كمعامل — إذ تُقرأ الهوية فقط من الاتصال المُصادق عليه، وهذا ما يجعل الوصول عبر الحسابات مستحيلًا هيكليًا وليس مجرد ممنوع.
الرابط السري
مفتاح على الشكل avmcp_<32-byte urlsafe random>، مضمّن في مسار الرابط (URL). يُخزَّن كتجزئة (hash) من نوع Argon2id بالإضافة إلى تجزئة بحث SHA-256؛ ولا يوجد النص الصريح إلا لحظة الإنشاء ولا يمكن استرجاعه بعد ذلك أبدًا. يحمل كل مفتاح نطاقه الخاص، وتسميته الخاصة، وحالة إلغائه الخاصة، بحيث يمكنك تشغيل مفتاح تجريبي في Cursor ومفتاح حقيقي في Claude، وإلغاء أي منهما بشكل مستقل.
OAuth 2.1
للعملاء الذين يفضّلون تدفّق تفويض نظاميًا. أنواع المنح (grants) المدعومة هي authorization_code و refresh_token، مع رموز تحديث (refresh tokens) دوّارة. PKCE مع S256 إلزامي — يُرفض أي طلب بدونه. التسجيل الديناميكي للعملاء متاح، لذا يقوم معظم العملاء بتهيئة أنفسهم تلقائيًا. مستندات الاكتشاف (Discovery):
GET https://api.algovesta.com/.well-known/oauth-authorization-server
GET https://api.algovesta.com/.well-known/oauth-protected-resource
POST https://api.algovesta.com/mcp/oauth/register
GET https://api.algovesta.com/mcp/oauth/authorize
POST https://api.algovesta.com/mcp/oauth/token
النطاقات الثلاثة
| النطاق | ما يمكنه فعله | كيف تحصل عليه |
|---|---|---|
read | المحفظة، الأسعار، الأوامر المعلّقة، المحاكاة، معاينات السياسات، التحقق من الإيصالات، إعادة تشغيل القنوات. لا يمكن وضع أي أمر. | يُنشأ مباشرة. |
paper | كل ما هو في read، بالإضافة إلى الأوامر المُنفَّذة عبر محرك التداول التجريبي برصيد افتراضي قدره 5,000$. الافتراضي للمفاتيح الجديدة. | يُنشأ مباشرة. |
live | كل ما سبق، بالإضافة إلى أوامر حقيقية على منصاتك المرتبطة وحسابات MetaTrader 5. | يتطلب عاملًا ثانيًا. رمز مصادقة صالح (TOTP)، أو رمز تأكيد يُرسل إلى بريدك الإلكتروني المسجل ويكون صالحًا لمدة 10 دقائق. يُفرض على مستوى الخادم، دون أي استثناءات. |
النطاقات مُرتَّبة، لذا فإن أداة تتطلب paper ترفض مفتاح read بنطاق insufficient_scope. لذا فإن الحد الفاصل بين الأموال المحاكاة والحقيقية هو خاصية للمفتاح نفسه، وليس لأمر نصي (prompt) أو إعداد أو تقدير النموذج’.
مرجع الأدوات — جميع الأدوات الـ20
هذه هي الأدوات الدقيقة التي يراها مساعدك. أدوات القراءة آمنة الاستدعاء دون سؤالك أولًا؛ أما أدوات الكتابة الست فتُثير طلب تأكيد في العملاء الذين يدعمون ذلك، وثلاث منها — place_order وclose_position وcancel_order — موسومة إضافيًا على أنها “مدمِّرة” (destructive) في توصيفاتها.
| الأداة | النطاق | النوع | الغرض |
|---|---|---|---|
get_portfolio_context | read | قراءة فقط | كل حساب مرتبط في استدعاء واحد |
get_market_price | read | قراءة فقط | السعر الحي مع الإبلاغ عن مدى حداثته |
simulate_order | read | قراءة فقط | تشغيل تجريبي (dry-run) يتضمن قرار السياسة |
place_order | تجريبي / حقيقي | مدمِّرة | يفتح مركزًا |
close_position | تجريبي / حقيقي | مدمِّرة | يُغلق كليًا أو جزئيًا |
modify_position | تجريبي / حقيقي | write | يحرّك وقف الخسارة وجني الأرباح |
list_open_orders | read | قراءة فقط | أوامر الحد (limit) المعلّقة |
cancel_order | تجريبي / حقيقي | مدمِّرة | يُلغي أمرًا معلّقًا |
compile_policy | read | قراءة فقط | يحوّل قواعد بلغة عادية إلى معاينة سياسة |
verify_receipt | read | قراءة فقط | يتحقق من التوقيع وسلسلة التجزئة |
replay_channel | read | قراءة فقط | يختبر أداء قناة Telegram تاريخيًا (back-test) مقابل قواعدك |
get_trade_history | read | قراءة فقط | الصفقات المغلقة والأداء عبر العملات الرقمية وMT5 والحساب التجريبي |
compare_venues | read | قراءة فقط | يُصنّف المنصات المتصلة حسب السعر والسبريد المُقاسين فعليًا |
list_strategies | read | قراءة فقط | استراتيجيات TradingView؛ لا يُعاد رابط webhook أبدًا |
create_strategy | تجريبي / حقيقي | write | استراتيجية جديدة، مع إبقاء تنفيذ الأموال الحقيقية معطّلاً دائمًا |
update_strategy | تجريبي / حقيقي | write | إعدادات الاستراتيجية؛ auto_trade يُرفض |
backtest_my_signals | read | read-only | يعيد تشغيل إشاراتك السابقة بإعدادات مختلفة (مهمة في الطابور) |
simulate_policy | read | read-only | يطبّق سياسة مخاطر على الصفقات التي أغلقتها فعلياً (مهمة في الطابور) |
import_tradingview_backtest | read | read-only | يعيد حساب تصدير TradingView برسوم وانزلاق حقيقيين (مهمة في الطابور) |
get_job_status | read | read-only | تقدّم ونتيجة مهمة في الطابور |
get_portfolio_context
لا تأخذ أي معاملات. تُعيد عرضًا موحّدًا لكل حساب على المنصات، وكل حساب MetaTrader 5، والحساب التجريبي التابع للمفتاح المُصادق عليه — ولا شيء غير ذلك. هذا هو الاستدعاء الذي يجعل سؤال “كيف أدائي؟” سؤالًا واحدًا بدلًا من ستة عشر سؤالًا.
هناك حقلان أكثر أهمية من البقية. بالنسبة لحسابات العملات الرقمية، balance و equity يصفان محفظة العقود الآجلة فقط؛ يُبلَّغ عن أموال السوق الفوري (spot) بشكل منفصل في spot_balance، لذا فإن مساعدًا يقرأ فقط balance قد يستنتج خطأً أنك لا تملك شيئًا. أما بالنسبة لحسابات MetaTrader 5، positions_source فتكون إما live_ea، بمعنى أن قائمة المراكز تم التحقق منها مقابل المنصة الطرفية (terminal)، أو unavailable، بمعنى أنه تعذّر الوصول إلى المنصة الطرفية. وفي حالة unavailable ، فإن قائمة مراكز فارغة لا تعني “لا توجد مراكز مفتوحة” — بل تعني أن الأمر غير معروف، ويوجّه وصف الأداة النموذج إلى قول ذلك بدلًا من طمأنتك زورًا.
get_market_price
المعاملات: venue, symbol. يُعيد {ok, venue, symbol, last, bid, ask, ts, source, age_sec}. تأتي الأسعار من ذاكرة تخزين مؤقت مشتركة تُحدَّث كل ثانية تقريبًا؛ وعند عدم توفر القيمة، يُجري الخادم استدعاء REST حي واحدًا إلى المنصة. إذا كانت القيمة أقدم من 10 ثوانٍ أو تعذّر جلبها إطلاقًا، يُذكر ذلك صراحة — ولا يُقدَّم سعر قديم أبدًا على أنه سعر حي. إذا لم يكن الرمز موجودًا في أي منصة مرتبطة، فقد يُعاد سعر DEX استرشادي مصحوبًا بتحذير واضح بأنه لا يمكنك تداوله في المنصات المرتبطة بك.
simulate_order
مطلوب: venue, symbol, side, order_type, idempotency_key. لا يُرسل أي أمر. يُعيد التنفيذ المتوقع، وتأثير الهامش، وقرار السياسة، بالإضافة إلى أسعار وقف الخسارة وجني الأرباح المطلقة التي اشتقّها الخادم. هذه عملية قراءة، لذا فإن مساعدًا حسن السلوك يستدعيها دون طلب إذن، ويعرض عليك ملخصًا واحدًا، ويطلب تأكيدًا واحدًا بالضبط قبل وضع أي أمر.
place_order
مطلوب: venue, symbol, side, order_type, idempotency_key. اختياري: account, market, size_usd, margin_usd, risk_pct, lots, leverage, sl, tp, sl_pct, tp_pct, take_profits, entry_price.
إن idempotency_key ليس مجرد زخرفة. فإذا وصل المفتاح نفسه مرتين لنفس المستخدم، تُعاد الاستجابة المخزّنة و لا يُفتح أي أمر ثانٍ — وهذا ما يحميك عندما يعيد العميل المحاولة بعد انتهاء المهلة، أو يفقد الهاتف الإشارة أثناء التأكيد، أو يستدعي النموذج أداة مرتين.
تحديد الحجم صريح عن قصد. بالنسبة للعملات الرقمية، تُمرّر حقلًا واحدًا بالضبط من بين ثلاثة حقول، ولكل منها معنى مختلف:
| الحقل | المعنى | مثال برافعة 5x |
|---|---|---|
size_usd | قيمة المركز (الاسمية) | size_usd=100 → مركز بقيمة 100$، منها 20$ من أموالك |
margin_usd | الضمان من جيبك الخاص | margin_usd=20 → مركز بقيمة 100$ |
risk_pct | نسبة الرصيد المتاح المُستخدَمة كهامش. هذا ليس تحديد حجم بناءً على مسافة وقف الخسارة؛ فمسافة وقف الخسارة لا تدخل في الحساب. | risk_pct=1 على رصيد 2,000$ → هامش 20$ → مركز بقيمة 100$ |
بالنسبة للفوركس وMetaTrader 5، يُعطى الحجم بوحدة lots بدلًا من ذلك، و leverage لا تُرسل إطلاقًا — فالمنتج غير مُرفَّع (بدون رافعة) ويأتي تحديد الحجم من حجم اللوت. يُستخدم حجم اللوت الذي حددته بالضبط ولا يُقرَّب أبدًا إلى قيمة مناسبة؛ وإذا خرج عن حدود الوسيط’، يُرفض الأمر ويُبلَّغ بالنطاق المسموح به.
هامش تفاوت حجم الأمر. لا تقبل المنصات إلا زيادات معينة من اللوت، لذا تتم مطابقة المبلغ المطلوب مع أقرب خطوة صالحة. إذا بقي الانحراف ضمن 20% يمضي الأمر قدمًا ويُبلَّغ بالانحراف الدقيق؛ وإذا تجاوز 20% فإن الأمر لا يُفتح، وتُخبَر، بالأرقام، بالمبالغ القريبة التي كانت ستنجح. اختير هذا الحد بإعادة تشغيل كل أمر حقيقي وُضع عبر دالة تحديد الحجم، وليس باختياره بالحدس.
الحقول المحذوفة تعود إلى إعداداتك المحفوظة. إذا لم تحدد وقف خسارة أو جني أرباح أو رافعة مالية، يُوجَّه المساعد إلى ترك تلك الحقول فارغة، ويقوم الخادم بملئها من التفضيلات المحفوظة في لوحتك — وهي نفس القيم التي تستخدمها اللوحة اليدوية وبوت Telegram. تُبلِّغ الاستجابة عن الحقول التي جاءت من الإعدادات المحفوظة في prefs_used. يوجد هذا بسبب فشل تم قياسه: فعندما كانت تلك الحقول إلزامية، كان على النموذج اختلاق قيم، وقامت خمسة من أصل خمسة أوامر بتجاوز إعدادات العميل’ الخاصة.
close_position
مطلوب: venue, symbol, side, idempotency_key. اختياري: fraction (من 0 إلى 1]، account, ticket. تعمل مع العملات الرقمية ومع MetaTrader 5. الإغلاق يُقلّل المخاطر، لذا لا يحجبه جدار السياسات أبدًا — مفتاح الإيقاف الطارئ (kill switch) وحده يفعل ذلك. عشرة استدعاءات بنفس مفتاح idempotency تُنفّذ إغلاقًا واحدًا بالضبط. إذا لم يوجد مركز مطابق فستحصل على POSITION_NOT_FOUND مع المراكز التي تكون مفتوحة على تلك المنصة، بحيث يستطيع المساعد تصحيح نفسه بدلًا من التخمين.
لا يوجد إغلاق جزئي في MetaTrader 5 — فالخبير الآلي (Expert Advisor) يُغلق المركز بالكامل — لذا استخدم fraction=1 هناك. عندما تكون عدة مراكز MT5 مفتوحة على نفس الرمز، ticket يصبح إلزاميًا، وطالما أن الهدف غامض لا يُغلق شيء.
modify_position
مطلوب: venue, symbol, side, idempotency_key، بالإضافة إلى واحد على الأقل من new_sl / new_tp. لا يمكن إزالة وقف الخسارة — قاعدة إلزامية وقف الخسارة سارية هنا أيضًا. يتم التحقق من الترتيب: الصفقة الشرائية (long) تحتاج new_sl < mark < new_tp، والصفقة البيعية (short) العكس. إرسال جانب واحد فقط يُبقي الجانب الآخر على قيمته الحالية بدلًا من حذفه. وكما في الإغلاق، فإن تذكرة MT5 الغامضة تعني عدم تعديل أي شيء.
list_open_orders
اختياري: venue. يسرد أوامر الحد (limit) المعلّقة مع order_ref، والمنصة، والرمز، والجانب، وسعر الدخول، والحجم، ووقت الإنشاء.
هناك ملاحظة تستحق المعرفة قبل أن تطلب من مساعد مراجعة أوامرك المفتوحة: الأوامر المعلقة التي تتبعها هذه الأداة موجودة في دفتر أوامر تجريبي (paper). الأوامر التي يتم وضعها في منصة تداول حقيقية عبر MCP تُرسل كأوامر سوق، لذلك يتم تنفيذها فورا بدلا من أن تبقى معلقة، والقائمة الفارغة في حساب حقيقي تعني أنه لا يوجد شيء معلق وليس أن شيئا قد اختفى.
cancel_order
مطلوب: venue, order_ref, idempotency_key. إذا لم يكن المرجع مملوكًا لك، فإن الجواب هو NOT_FOUND — ولن يُقدَّم أبدًا أي تلميح بوجود أمر يخص شخصًا آخر’. وهو، كالإغلاق، يُقلّل المخاطر ولا يحجبه جدار السياسات.
compile_policy
مطلوب: natural_text. تكتب قاعدة بلغة عادية — “لا تخاطر أبدًا بأكثر من 2% في صفقة واحدة، ولا رافعة مالية تتجاوز 10، فقط BTC وETH” — فتُترجم إلى سياسة JSON، تُعاد كـ معاينة. الترجمة (compiling) لا تُفعّل أي شيء أبدًا. التفعيل خطوة منفصلة ومتعمَّدة من اللوحة أو عبر POST /api/mcp/policies/{policy_id}/activate، مما يعني أن النموذج لا يستطيع تخفيف قواعدك بمجرد الحديث عنها.
verify_receipt
مطلوب: receipt_id. يُعيد signature_valid و chain_valid؛ ولا يُعتبر الإجراء موثَّقًا إلا عندما تكون كلتاهما صحيحتين. الإيصالات موقّعة بـed25519 ومترابطة بسلسلة تجزئة (hash chain) لكل مستخدم، لذا فإن تعديل إيصال سابق يكسر كل إيصال لاحق و chain_valid يصبح خاطئًا (false). يُقدَّم المفتاح العام على /mcp/receipts/pubkey، بحيث يمكنك التحقق بشكل مستقل دون الحاجة إلى الثقة بهذه النقطة النهائية. الإيصالات القديمة من حقبة HMAC تُعيد legacy=true.
replay_channel
مطلوب: اختياري: مطلوب: لا معاملات. يُعيد استراتيجيات TradingView الخاصة بك مع إعداداتها، و اختياري: مطلوب: channel_ref. اختياري: days (حتى 90، والافتراضي 30)، policy_override. يجيب عن سؤال “ماذا لو كنت قد اتبعت قناة Telegram هذه خلال آخر X يوم بموجب قواعدي؟” عبر إعادة تشغيل إشاراتها السابقة بأسلوب تجريبي (paper)، مع مرور كل إشارة عبر جدار السياسات بحيث لا تُفتح أبدًا الإشارات المرفوضة. يصل التقدّم على شكل أحداث replay_progress . تُخزَّن النتائج مؤقتًا لمدة 24 ساعة، وتقتصر الأداة على 5 عمليات إعادة تشغيل في الساعة. المخرجات: {trades:[...], summary:{total_pnl, win_rate, max_drawdown,
.get_trade_history
venue, symbol, days (1–365، والافتراضي 30)، limit (1–200، والافتراضي 50)، market (crypto / forex / paper). يُعيد الصفقات المغلقة من المصادر الثلاثة جميعًا في قائمة واحدة، الأحدث أولًا، بالإضافة إلى summary. الملخّص متحفّظ عمدًا: يُحسَب avg_rr فقط من الصفقات التي تكون فيها نقطة الدخول ووقف الخسارة والخروج معروفة جميعًا، ويُبلِّغ rr_sample عن عددها؛ يكون total_pnl مساويًا لـ null عند اختلاط عملات عدة حسابات، مع تقديم pnl_by_currency بدلًا من ذلك؛ العمولة غير مسجَّلة في أي مكان، لذا يبقى fee عند null وتكون أرباح/خسائر العملات الرقمية إجمالية (قبل الرسوم). إذا تعذّرت قراءة أحد المصادر، يذكره incomplete_sources باسمه بدلًا من إعادة قائمة قصيرة وكأنها كاملة.compare_venues
symbol. اختياري: market (الافتراضي futures، أو spot)، side. يُعيد، لكل منصة عملات رقمية متصلة، السعر الحي — وعلى المنصات التي تنشر bid/ask — السبريد بنقاط الأساس، إضافة إلى فارق السعر بين المنصات. لا يختار الأداة منصة: أمرك لا يزال يحدّد واحدة بنفسه. رسوم التداول وعمق دفتر الأوامر والانزلاق السعري مُدرَجة تحت basis.not_measured ولا تُقدَّر تخمينًا أبدًا، والمنصة التي لم تنشر bid/ask تظهر ضمن not_comparable_on_spread بدلًا من أن تُصنَّف وكأن سبريدها صفر. لذا فإن cheapest_measured تعني “أدنى سبريد تم قياسه”، لا “الأرخص إجمالًا”.list_strategies
plan_limit، و can_create_more. يُبلَّغ عن auto_trade لكل استراتيجية بحيث يمكن للمساعد إخبارك بأيّها مُفعَّلة بأموال حقيقية. يُحذَف رابط webhook ورابط العرض التجريبي وسرّ HMAC من الاستجابة — ولا يُكشَف سوى webhook_url_configured و has_hmac_secret، لأن الرابط نفسه يُعدّ بيانات اعتماد.create_strategy
name. مطلوب: idempotency_key. ينشئ استراتيجية TradingView مع إبقاء auto_trade معطّلًا؛ هذا الحقل غير قابل للكتابة عبر MCP، لذا لا يمكن للاستراتيجية المُنشأة حديثًا وضع أوامر حقيقية حتى تُفعّلها بنفسك من اللوحة. يخضع لحصة الاستراتيجيات ضمن باقتك — وعند تجاوز الحد يُعيد خطأ مُرمَّزًا لحد الباقة بدلًا من عدم فعل أي شيء بصمت.update_strategy
strategy_id، changes، idempotency_key. يُغيّر الرافعة المالية (محصورة بين 1–20)، ونسبة المخاطرة (0.1–50)، ونسب وقف الخسارة وجني الأرباح، وإعدادات التتبّع (trailing) ونقطة التعادل (break-even)، والرموز المسموح بها، والحساب المستهدف، وما إذا كانت الاستراتيجية تقبل الإشارات. يُرفَض auto_trade و status و ip_allowlist ويُعادان ضمن refused_fields؛ الحذف مُتاح فقط من اللوحة. تفعيل reverse_enabled يُعيد warning، لأنه من تلك اللحظة تفتح إشارة الشراء (BUY) مركز بيع (SHORT).
backtest_my_signals
اختياري: days (1–90)، source، symbols، margin_usd، leverage، sl_pct، tp_pct، max_hold_minutes، taker_fee_bps، partial_tp. يعيد تشغيل الإشارات التي تلقّيتها فعلاً على شموع تاريخية حقيقية بمدة دقيقة من الشبكة الرئيسية مرتين: مرة بوقف الخسارة وجني الأرباح والرافعة الأصلية لكل إشارة، ومرة بإعداداتك أنت. يعيد job_ref فوراً، وتُجلب النتيجة عبر get_job_status. كل نتيجة تحمل coverage (كم إشارة أمكن محاكاتها ولماذا تعذّر الباقي) وassumptions (الرسوم، الانزلاق السعري، جني الأرباح الجزئي، وما لا يُنمذَج). الإشارات بلا وقف خسارة، أو التي يقع وقفها في الجهة الخاطئة من الدخول، أو التي لا تتوفر لها بيانات سعرية تاريخية تُحصى وتُتجاوز، ولا تُخمَّن أبداً.
simulate_policy
اختياري: policy_text (بلغة عادية)، rules (مُجمَّعة مسبقاً)، days (1–365). يطبّق سياسة مخاطر على الصفقات التي أغلقتها فعلياً ويبيّن أيّها كان سيُرفض وبأي قاعدة، مع فرق الربح والخسارة. يعيد job_ref. يُذكر حدّان في كل نتيجة: القواعد التي تعتمد على حالة الحساب لحظة الأمر (عدد الصفقات المفتوحة، الخسارة اليومية، الرصيد) تُقيَّم بأصفار لأن تلك الحالة لا يمكن إعادة بنائها من الصفقات المغلقة — لذا تُحسب أقلّ مما هي، لا أكثر؛ والربح والخسارة يأتي من نتائجك المحققة المسجّلة، ويُعرض لكل عملة على حدة ولا يُجمع عبر العملات.
import_tradingview_backtest
مطلوب: csv_text. اختياري: taker_fee_bps، slippage_bps، leverage. يأخذ ملف CSV الذي تصدّره من Strategy Tester في TradingView (List of Trades) ويعيد حسابه بتكاليف حقيقية: رسوم التيكر والانزلاق السعري المقاس على الدخول والخروج معاً. لا يُنفَّذ Pine Script ولا يُفسَّر أبداً — يُعاد حساب قائمة صفقاتك المصدَّرة فقط — وتبقى الأسعار كما أوردها TradingView. الصفوف التي لا تحتوي عمود الكمية لا يمكن تحميلها رسوماً، فتبقى متفائلة ويُذكر عددها. يعيد job_ref.
get_job_status
اختياري: job_ref. مع مرجع يعيد حالة تلك المهمة، وعند انتهائها نتيجتها؛ وبدون وسيط يسرد مهامك الأخيرة. قيمة status إحدى: PENDING، RUNNING (مع نسبة في progress)، DONE، FAILED (أُجدولت محاولة أخرى)، DEAD أو CANCELLED. تعمل المهام واحدة تلو الأخرى، لذا يخبرك queue_position بعدد المهام التي تسبقك. المرجع الذي لا يخصّك يتلقّى نفس ردّ “غير موجود” الذي يتلقّاه مرجع غير موجود، فلا يمكن تعداد المراجع.
النتائج لا تبقى إلى الأبد، ويستحق معرفة هذه الحدود قبل البناء عليها. تحتفظ فقط آخر 20 مهمة منتهية بنتيجتها الكاملة؛ أما الأقدم فتُختزل إلى ملخصها وتعود مع result_pruned: true، أي أن الصفوف التفصيلية قد اختفت ويجب إعادة تشغيل المهمة لتوليدها من جديد. كل شيء يُحذف بعد 30 يومًا. تُكتب عمليات تشغيل الاختبار الخلفي والسياسة أيضًا في سجل الاختبار الخلفي لحسابك، وتحمل النتيجة run_id الذي خُزّنت تحته.
جدار السياسات
هذا هو الجزء الذي يجعل تسليم الأدوات لنموذج لغوي أمرًا يمكن الدفاع عنه. تُترجم قواعدك مرة واحدة إلى JSON، ويُتحقق من صحتها مقابل مخطط ثابت، ثم تُقيَّم على مستوى الخادم وبشكل حتمي على كل أمر. لا يُقيّم النموذج هذه القواعد أبدًا، ولا يرى طريقة للالتفاف عليها، ولا يمكن إقناعه بتخفيفها — لا من قِبلك في لحظة نفاد صبر، ولا عبر أمر نصي مُحقَن من خلال صفحة ويب أو رسالة Telegram صادف أن قرأها. أي انتهاك يُقابَل برفض صارم مع تسجيل في سجل التدقيق.
| القاعدة | النوع | المعنى |
|---|---|---|
max_risk_per_trade_pct | رقم، 0–100 | سقف حصة الصفقة الواحدة’ من الحساب |
max_order_size_usd | رقم > 0 | سقف مطلق على قيمة الأمر |
max_daily_loss_usd | رقم > 0 | أوقف التداول لبقية اليوم بعد تجاوز هذه الخسارة |
max_open_positions | عدد صحيح | حد التزامن |
leverage_cap | رقم، 1–1000 | سقف الرافعة المالية الخاص بك |
venue_scope | مصفوفة | قصر الذكاء الاصطناعي على منصات محددة بالاسم |
symbol_whitelist | مصفوفة | لا يجوز تداول سوى هذه الرموز |
symbol_blacklist | مصفوفة | لا تُتداول هذه الرموز أبدًا |
allowed_sides | مصفوفة | شراء فقط، أو بيع فقط، أو كلاهما |
notes | نص (string) | ملاحظتك الخاصة |
السياسة المُترجمة التي تفشل في التحقق من صحة المخطط لا يمكن تفعيلها إطلاقًا. لا توجد سياسة صالحة جزئيًا.
نموذج السلامة
| تجريبي (paper) افتراضيًا | يبدأ كل مفتاح جديد بنطاق paper برصيد افتراضي قدره 5,000$. الوصول إلى الأموال الحقيقية هو إجراء صريح ومنفصل. |
| وقف الخسارة إلزامي | إذا لم يوجد لا وقف خسارة صريح ولا قيمة افتراضية محفوظة، يُرفض الأمر. كما لا يمكن إزالته لاحقًا أيضًا. |
| Idempotency | تتطلب كل أداة كتابة مفتاحًا يُولّده العميل من 8 أحرف على الأقل. تُعيد التكرارات الاستجابة المخزّنة بدلًا من التنفيذ مرتين. |
| مفتاح الإيقاف الطارئ (Kill switch) | POST /api/mcp/freeze يوقف كل شيء دفعة واحدة؛ وتُعيد كل أداة عندها user_frozen. /unfreeze يعكس ذلك. |
| الإلغاء لكل مفتاح على حدة | ألغِ عميلًا واحدًا دون المساس بالآخرين. تُسقَط تدفقات الأحداث المفتوحة خلال ثوانٍ. |
| إيصالات موقّعة | توقيع ed25519 مع سلسلة تجزئة لكل مستخدم على كل إجراء، قابلة للتحقق مقابل مفتاح عام. |
| سجل التدقيق | يُسجَّل كل استدعاء مع اسم الأداة والمعاملات والنتيجة وزمن الاستجابة، وقابل للقراءة على GET /api/mcp/audit وفي اللوحة. |
| عزل المستأجرين | لا يمكن للأدوات قبول معرّف مستخدم؛ إذ تأتي الهوية فقط من الاتصال المُصادق عليه. |
| مفاتيح للتداول فقط | تُنشأ مفاتيح API الخاصة بمنصتك دون إذن بالسحب، وتُخزَّن مشفّرة بـAES-256. تخرج الأوامر من عناوين IP ثابتة خاصة بتداول AlgoVesta تُدرجها ضمن القائمة البيضاء لدى المنصة. |
بشأن الرافعة المالية، وبصراحة: لا تفرض AlgoVesta سقفًا للرافعة المالية على حسابك — بل منصتك هي من تفعل ذلك، ويمكنك تحديد سقفك الخاص عبر قاعدة leverage_cap السياسة. الفوركس عبر MetaTrader 5 غير مُرفَّع في هذا المسار ويُحدَّد حجمه باللوت. أي شخص يخبرك أن منصة ما “تحدد الرافعة عند 20x” هنا فهو يصف شيئًا غير موجود.
الأخطاء
| الرمز | HTTP | متى يحدث |
|---|---|---|
unauthorized | 401 | مفتاح مفقود أو غير صالح أو مُلغى |
insufficient_scope | 401 | تحتاج الأداة إلى نطاق أعلى مما يحمله المفتاح |
forbidden | 403 | غير مسموح به لهذا الحساب |
user_frozen | 403 | مفتاح الإيقاف الطارئ نشط |
policy_violation | 403 | رفضت قاعدة الأمر؛ وتسرد الاستجابة أي قاعدة |
idempotency_conflict | 409 | أُعيد استخدام المفتاح نفسه بمعاملات مختلفة |
validation_failed | 422 | معاملات مشوّهة أو متناقضة |
rate_limited | 429 | عدد استدعاءات كبير جدًا؛ retry_after مُدرَج |
تصل حالات الرفض على مستوى النطاق كنتائج مُهيكَلة بدلًا من أخطاء نقل، بحيث يمكن للمساعد التصرف بناءً عليها: VENUE_NOT_CONNECTED, ACCOUNT_REQUIRED, ACCOUNT_AMBIGUOUS, ACCOUNT_NOT_FOUND, POSITION_NOT_FOUND, MISSING_FIELDS, INVALID_SIDE, SL_REMOVAL_FORBIDDEN. لا تُسرّب رسائل الخطأ أبدًا أي تفاصيل داخلية، ولا تكشف أبدًا عن أي شيء متعلق بحساب آخر.
حدود المعدل (Rate limits)
| نطاق الحد | الحد |
|---|---|
| كل استدعاءات الأدوات، لكل مفتاح | 60 في الدقيقة |
place_order | 10 في الدقيقة |
replay_channel | 5 في الساعة (تُخزَّن النتائج مؤقتًا 24 ساعة) |
| بريد تأكيد نطاق الحساب الحقيقي | 1 في الدقيقة |
الأحداث الحية
يتوفر تدفق أحداث مُرسَلة من الخادم (SSE) معزول لكل مستأجر على /mcp/events (OAuth) و /u/<key>/events (الرابط السري)، مع Last-Event-ID إعادة الاتصال، بحيث يستأنف الاتصال المنقطع بدلًا من إعادة البدء. أنواع الأحداث: fill, policy_rejected, position_closed, sl_hit, tp_hit، و replay_progress أثناء إعادة تشغيل قناة.
المنصات — 16 منصة وMetaTrader 5
يصل اتصال واحد إليها جميعًا. لا تصبح المنصة متاحة للذكاء الاصطناعي إلا بعد ربطها في AlgoVesta؛ وطلب منصة لم تربطها يُعيد VENUE_NOT_CONNECTED بدلًا من التخمين.
| المنصة | venue القيمة |
الأسواق | هل تحتاج عبارة مرور (passphrase) |
|---|---|---|---|
| Binance | binance | فوري، عقود آجلة | لا |
| Bybit | bybit | فوري، عقود آجلة | لا |
| OKX | okx | فوري، عقود آجلة | نعم |
| KuCoin | kucoin | فوري، عقود آجلة | نعم |
| Gate.io | gateio | فوري، عقود آجلة | لا |
| Bitget | bitget | فوري، عقود آجلة | نعم |
| Kraken | kraken | فوري، عقود آجلة | لا |
| Coinbase | coinbase | فوري | لا |
| BingX | bingx | فوري، عقود آجلة | لا |
| Hyperliquid | hyperliquid | عقود آجلة | لا |
| Backpack | backpack | فوري، عقود آجلة | لا |
| HTX | htx | فوري، عقود آجلة | لا |
| BloFin | blofin | فوري، عقود آجلة | نعم |
| Phemex | phemex | فوري، عقود آجلة | لا |
| WOO X | woo | فوري، عقود آجلة | نعم (معرّف التطبيق) |
| CoinEx | coinex | فوري، عقود آجلة | لا |
| MetaTrader 5 (فوركس، معادن، مؤشرات) | mt5 | لوتات، مسار غير مُرفَّع | بيانات دخول الوسيط |
| محرك التداول التجريبي | paper | 5,000$ افتراضي | — |
تم التحقق من ست من هذه المنصات — Binance وBybit وOKX وGate.io وKuCoin وBitget — من طرف إلى طرف بأموال حقيقية في كل من العقود الآجلة والسوق الفوري، مع تأكيد وجود وقف الخسارة وجني الأرباح فعليًا على المنصة نفسها ومطابقتهما تمامًا للقيم المسجَّلة. لكل منصة خصوصياتها، والاختلافات مقصودة وليست ثغرات: لا تقبل Bybit وBitget وجود ساق ثانية لجني الأرباح في السوق الفوري، ويُوجَّه السوق الفوري في OKX عبر واجهة API الخام لمنع تحوّل حساب نقدي إلى حساب هامش دون علم المستخدم، وتفرض Binance في السوق الفوري حدًا أدنى للقيمة الاسمية قبل الشراء، وتُوضع أوامر الشراء بسعر السوق في KuCoin بوضع التكلفة (cost mode).
يُفصَل السوق الفوري عن العقود الآجلة دائمًا. الرمز نفسه في السوقين يمثّل صفًا منفصلًا، وتغذية سعر منفصلة، ومفتاحًا منفصلًا — لا يختلط أحدهما بالآخر أبدًا.
MetaTrader 5 دون أي تثبيت
لست بحاجة إلى تثبيت أي شيء للفوركس. لا يوجد VPS لاستئجاره، ولا منصة MetaTrader طرفية (terminal) يجب إبقاؤها تعمل على جهازك الخاص، ولا خبير آلي (Expert Advisor) لإرفاقه، ولا حساب وسيط خارجي (bridge) لشرائه. تُشغّل AlgoVesta منصات MetaTrader 5 الطرفية على خوادمها المُدارة الخاصة وتُبقيها متصلة بوسيطك على مدار الساعة. تُدخل بيانات اعتماد حسابك مرة واحدة، ويستطيع مساعد الذكاء الاصطناعي الخاص بك تداول ذلك الحساب من حينها. تُتحقق بيانات المراكز المُعادة إلى المساعد مقابل المنصة الطرفية، وعندما يتعذّر التحقق منها، تقول الأداة ذلك صراحة بدلًا من الإيحاء بأن الحساب فارغ.
خارطة الطريق — الأسهم العالمية
تداول الأسهم العالمية عبر Interactive Brokers (IBKR) مخطَّط له، ويستهدف 170 سهمًا عالميًا يمكن الوصول إليها من نفس اتصال MCP الخاص بالعملات الرقمية والفوركس. هذا بند في خارطة الطريق و غير مُفعَّل حاليًا؛ ولا شيء في هذه الصفحة سوى هذه الفقرة يصفه، ولا يمكن لأي أداة حالية تداول الأسهم. وعند إطلاقه سيظهر كقيم venue إضافية ضمن الأدوات نفسها، وجدار السياسات نفسه، والإيصالات نفسها.
زمن الاستجابة المقاس
هذه قياسات فعلية، وليست أرقامًا تسويقية.
| المرحلة | القيمة المقاسة |
|---|---|
| استقبال الطلب وتحليله | 17–67 مللي ثانية (الوسيط 38 مللي ثانية) |
| من طرف إلى طرف على MetaTrader 5 | نحو ثانية واحدة (849 مللي ثانية مقاسة؛ 702 مللي ثانية للإغلاق) |
| من طرف إلى طرف على منصة عملات رقمية | نحو 3 ثوانٍ (2,785 مللي ثانية مقاسة) |
| محرك التداول التجريبي | الوسيط 318 مللي ثانية — بدون رحلة ذهاب وإياب إلى المنصة |
الوقت الذي يُقضى داخل عميل الذكاء الاصطناعي الخاص بك — تفكير النموذج، وتأكيدك — غير مُدرَج، وعادة ما يكون هو المسيطر. هذا الخادم ليس منصة تنفيذ منخفضة الكمون (latency)، ولا يُسوَّق على أنه كذلك.
نقاط نهاية REST في اللوحة
كل ما لا يستطيع الذكاء الاصطناعي فعله، وما لا ينبغي له فعله بنفسه، يعيش خلف جلسة تسجيل الدخول العادية الخاصة بك.
POST /api/mcp/keys create a key (live requires 2FA)
GET /api/mcp/keys list keys
DELETE /api/mcp/keys/{key_id} revoke a key
POST /api/mcp/live-code send the live-scope confirmation code
POST /api/mcp/freeze | /api/mcp/unfreeze kill switch
GET /api/mcp/status connection status
GET /api/mcp/policies list policies
POST /api/mcp/policies/compile compile without activating
POST /api/mcp/policies/{id}/activate activate
POST /api/mcp/policies/{id}/deactivate deactivate
GET /api/mcp/audit audit log
GET /api/mcp/receipts receipts
GET /api/mcp/receipts/{receipt_id}/verify verify one receipt
GET /api/mcp/pubkey receipt public key
GET /api/mcp/paper | POST /api/mcp/paper/reset
ما تحتاج إلى امتلاكه
اتصال MCP نفسه جزء من المنتج ولا يُباع بشكل منفصل. ما يحدّك عمليًا هو ما يُفترض أن يصل إليه الذكاء الاصطناعي: التداول التجريبي يحتاج فقط إلى حساب، بينما يحتاج التداول الحقيقي إلى خطة مدفوعة نشطة والحسابات المرتبطة التي تسمح بها تلك الخطة — ويتطلب التداول الحقيقي بأموال حقيقية عبر MetaTrader 5 بالإضافة إلى ذلك موافقتك الصريحة على ذلك الحساب تحديدًا. حدود الخطط على عدد مفاتيح المنصات وحسابات MetaTrader مُدرَجة في صفحة الأسعار. يمكنك تجربة كل شيء على الرصيد التجريبي البالغ 5,000$ قبل أن يكون لأي من ذلك أهمية.
الأسئلة الشائعة
live ، ولا يُصدَر هذا النطاق إلا بعد عامل ثانٍ. وإلى ذلك الحين، يعمل المساعد نفسه مقابل رصيد تجريبي قدره 5,000$ بنفس الأدوات تمامًا، بحيث يمكنك التدرّب على سير العمل بأكمله قبل أن يصبح أي مال حقيقي قابلاً للوصول.get_portfolio_context تُعيدها جميعًا في استدعاء واحد. وعندما تملك أكثر من حساب واحد في نفس السوق، يصبح معامل account إلزاميًا، ويُرفض الطلب الغامض بدلًا من إرساله إلى حساب افتراضي.POST /api/mcp/freeze. عندها تُعيد كل أداة user_frozen إلى أن تُلغي التجميد. ولقطع اتصال عميل واحد فقط بدلًا من ذلك، ألغِ ذلك المفتاح تحديدًا — وستستمر البقية في العمل.verify_receipt ، أو بشكل مستقل مقابل المفتاح العام على /mcp/receipts/pubkey. يؤدي تعديل إيصال قديم إلى كسر السلسلة لكل إيصال يليه، وهذا بالضبط ما يجعل أي تلاعب قابلًا للاكتشاف.اربط مساعد ذكاء اصطناعي بحساباتك
ابدأ على الرصيد التجريبي البالغ 5,000$. بلا بطاقة، ولا شيء لتثبيته، ويبقى الحد الفاصل مع الحساب الحقيقي مغلقًا إلى أن تفتحه أنت عمدًا.
أنشئ حسابًا مجانيًا اطّلع على النظرة العامةذو صلة: MCP لمساعدي الذكاء الاصطناعي · خادم MCP للتداول: Claude وChatGPT إلى 16 منصة + MT5 · المنصات المدعومة · فوركس MetaTrader 5 · أتمتة TradingView · ما هو خادم تداول MCP · الأمان · الأسعار.
التداول ينطوي على مخاطر. الأتمتة لا تُزيلها، ومساعد الذكاء الاصطناعي ليس نصيحة استثمارية. ابدأ بالتداول التجريبي.