Files
Auto-Trader/README_ar.md
T
Haozhe Wu c33133f4fd release: 0.1.13 — expose quantlib_call over MCP, repair two unreachable modules
Prepares the 0.1.13 release and fixes the defects found while verifying its
claims. The pieces interlock — the documented counts are the code's surface —
so they land together rather than as commits that fail their own tests.

Code:
- attribution and impact carried no __all__, and quantlib_call dispatches on
  __all__ alone, so the tool listed ZERO functions for both while the package
  docstring advertised them. Both now export; exposed callables 184 -> 195.
- Six read-only analytics tools reach MCP for the first time (64 -> 70):
  quantlib_call, cashflow_performance, orderbook_depth, sentiment,
  technical_indicators, get_fundamentals. They use the existing mirrored path,
  which refuses any class whose is_readonly is not True, so order-placing tools
  remain structurally unreachable over MCP.

Tests that measured a proxy instead of the truth:
- The manifest tool count was derived from @mcp.tool decorators, which ignores
  every mirrored tool. Four institutional-research tools were live over MCP and
  absent from the published SKILL.md, and the contract test asserted that
  absence was correct. Both now measure mcp.list_tools().
- test_every_allowlisted_module_actually_imports only asserted ok is True, which
  can never catch an empty listing. A new guard fails when any allowlisted
  module exposes no callables; removing an __all__ names exactly the two
  offenders.
- The README count tests only proved the five files agreed with each other and
  with a pinned constant, so a uniform error was invisible — that is how the
  broker count sat at 12 after eToro shipped as the 13th. The pin is now
  anchored to the profile registry, every connector must appear in the table,
  and the quantlib export count joins the verified badges.

Docs, corrected against measurement rather than the previous text:
- merged PRs since 0.1.12: 42 -> 162 (42 counted merge commits only; squash
  merges leave none)
- auto-discovered agent tools in the project tree: 68 -> 94
- broker connectors: 12 -> 13, with eToro added to the table in all five READMEs
- quantlib: 249 across 17 modules -> 265 across 19, now exactly the allowlist
- SKILL.md: skills 88 -> 89, MCP tools 60 -> 70, python ">=3.11" -> ">=3.11,<3.14"
  to match pyproject
- zh/ja/ko/ar gain the eToro connector section and the
  CONTENT_FILTER_WARNING_THRESHOLD row that only English carried
- v0.1.13 news entry and contributor credits across all five READMEs

Full suite 10147 passed / 54 skipped / 0 failed (baseline on a clean tree was
10140 / 54 / 0; the +7 are the new guards). CI grep gates pass.
2026-08-10 19:53:19 +08:00

263 KiB
Raw Blame History

English | 中文 | 日本語 | 한국어 | العربية

شعار Vibe-Trading

Vibe-Trading: وكيل التداول الشخصي الخاص بك

أمر واحد يمنح وكيلك قدرات تداول شاملة

HKUDS%2FVibe-Trading | Trendshift

Python FastAPI React PyPI License
Feishu WeChat Discord

الموقع  ·  الوثائق  ·  الأخبار  ·  الميزات  ·  حساب الظل  ·  العرض التوضيحي  ·  البدء السريع  ·  أمثلة  ·  API / MCP  ·  خارطة الطريق  ·  المساهمة

pip install vibe-trading-ai


📰 الأخبار

⚠️ تحذير أمني: حساب X باسم VibeTrading_HKU، ومشروع Virtuals رقم 101845، وعقد التوكن 0x640BDBF77b6447E8b7DB7894cED84BD1c40571f4 كلّها غير رسمية ولا تتبع Vibe-Trading. لم نُطلق أو نؤيد مطلقًا أي توكن أو عملة ميم. لا تشترِ هذا التوكن، ولا تربط محفظتك، ولا توقّع أي شيء. التفاصيل.

  • 2026-08-10 🚀 صدر الإصدار v0.1.13 (ملاحظات الإصدار، pip install -U vibe-trading-ai): 408 التزامات و162 طلب دمج منذ 0.1.12 — وهو أكبر إصدار حتى الآن. البطل إصلاح لا ميزة: بوابة الهوية لم تعد ترفض إجابات تملك أدلتها بالفعل. كان السؤال السليم الصياغة يقضي دقائق في استدعاءات أدوات حقيقية ثم يعود بـ*«يتعذّر التأكد بأمان من هوية الأداة أو من دليل السعر»*. الأسباب: التعامل مع .SS و.SH كأداتين مختلفتين، فصار كل رمز في شنغهاي ملتبساً بشكل دائم؛ واستعلام جانبي فاشل كان بإمكانه تخفيض هوية مقفلة أصلاً؛ وتسجيل رد Yahoo بـ HTTP 400 على كل استعلام صيني/ياباني/كوري بوصفه فشلاً في مصدر البيانات بدل «غير مُدرج هنا»؛ وقائمة سماح مثبّتة لكل أداة حجبت 11 من 17 صيغة وسيطة موثّقة؛ ورفض الإجابات الصينية لأنها كتبت 雅虎 أو 元 بدل اسم المُحمِّل بالحروف اللاتينية؛ وفاصل الآلاف الذي شطر ¥1,309.22 فقُورن 1 بالنطاق المرصود. كما لم تعد الأسئلة المفاهيمية وتقارير المقارنة تصل إلى طريق مسدود. وما زال أي سعر خارج دليل OHLC المسجَّل مرفوضاً. الجديد: src/quantlib — 249 دالة مختبَرة عبر 17 وحدة (خيارات، سندات، ائتمان، اقتصاد قياسي، VaR/CVaR/EVT، تفكيك الأداء، دراسات الأحداث، purged CV) يمكن بلوغها من CLI وWeb UI وREST API وMCP عبر quantlib_call للقراءة فقط، فصارت الـ skills تستورد الرياضيات المالية بدل حملها داخل markdown؛ ومحرك تقييم (run_dcf / run_comps / ثلاث قوائم مترابطة) قاعدته الوحيدة أن المدخل الناقص يجعل النموذج غير قابل للتشغيل بدل ملئه ضمنياً؛ وعمود فقري للكيانات والتدفقات النقدية غير المنتظمة (XIRR / MOIC / DPI / TVPI، وTWR / Modified Dietz عبر cashflow_performance) مُبقى عمداً موازياً لمحركات الأشرطة؛ وحوكمة في كل تشغيل — manifest يجزّئ الموجّه والـ skills وسجل الأدوات وإصدارات الحزم، مع سجل تدقيق مسلسل بالتجزئة ومُثبَّت بـ fsync يُضبَط فيه حتى التعديل الذي يعيد حساب تجزئته عند القيد التالي؛ وأربع أدوات بيانات للقراءة فقط على مصادر عامة مجانية (SEC 13F بفروق المراكز ربعاً بربع، واختراق محتويات ETF حيث يُحَل صندوق يتتبع CSI300 إلى 342 مركزاً تغطي 98.66% من صافي الأصول بدل أكبر عشرة في التقرير الربعي، وأسواق التنبؤ كاحتمال ضمني موسوم، وarXiv/OpenAlex بادعاءات مثبّتة بالمصدر). يضاف إلى ذلك ستة أوامر بحث مؤسسي (/comps /dcf /attrib /memo /earnings /screen)، وعدسات المستثمرين كـ skill مستقلة، وخمسة playbooks بحثية جاهزة للجدولة، وغلاف Electron لسطح المكتب بتغليف Windows مثبَّت بالمجاميع الاختبارية وsafeStorage، وeToro كموصّل الوساطة الثالث عشر، وكوريا (KRX) كمحرك الاختبار الرجعي التاسع، وجسر OpenBB Workspace، ودعم الأسهم الكندية من طرف إلى طرف، إضافة إلى sentiment وtechnical_indicators وoptions_payoff وorderbook_depth وModelScope وvibe-trading update. الصحّة: صارت فترات تقارير SEC تُفهرَس بمجالها (start, end) — إذ كان الطلب السنوي يعيد ربعاً واحداً، أي بخس بمقدار 4.2 ضعف؛ وأسعار الأسهم الصينية من tushare صارت معدَّلة لإجراءات الشركات، بعدما كان العائد الخام عبر تاريخ توزيع الحقوق ينحرف حتى 47 نقطة مئوية؛ ولم يعد bar_returns يسجّل توقّف التداول كحركة 0%؛ ويغطي التسنين كل مصادر البيانات الـ24؛ وسُدَّت ثغرة في الصندوق الرملي كان الكود المولَّد يستطيع عبرها استيراد طبقة الوساطة أو بلوغ socket/subprocess عبر ارتباط مُعاد التسمية؛ وتُرفض الاختبارات الرجعية المركّبة متعددة العملات بدل جمعها في منحنى ملكية واحد. شكراً لـ @santhreal و@shadowinlife و@Robin1987China و@he-yufeng و@QCYTSN و@Shizoqua و@honginp و@cgycorey و@wiliao و@ngoanpv و@x-lambda و@ofeksh-tr و@00EVA و@zwrong و@yrk111222 و@su322 و@hhj123123 و@dineeshd و@sambazhu و@ddy4633 و@tyj147454413-cmd و@y85998607 و@JungHoonGhae و@shugaoye و@TSENGCHIENFENG و@darkknight4563 و@MuggleJinx و@klmtseng و@ebujinovch و@g0rdonL و@AmirF194 و@Echoandelementwebsites و@yagnikpipaliya و@dvirarad و@1anter.
  • 2026-08-09 🪟 حزم Windows آمنة وأسواق كندا وModelScope وAlpha Zoo عبر MCP: أصبح تغليف سطح مكتب Windows يبني بيئة Python 3.12 مضمّنة ومثبّتة بالـ checksum ومساري مراجعة/توقيع x64 NSIS، مع Electron safeStorage للاعتمادات المدرجة في قائمة السماح. يستطيع renderer ضبط الأسرار أو مسحها ولا يستطيع قراءتها؛ وتُرحّل الإعدادات النصية مرة واحدة؛ ولا تصل القيم المفكوكة إلا إلى backend المملوك؛ ويفشل كل من build المراجعة غير الموقّع والـ build الموقّع بصورة مغلقة إذا كانت حالة التوقيع خاطئة. لم يُنشر أي installer artifact من هذا PR (#1015). تعمل الأسهم الكندية الآن من البداية إلى النهاية: تُصنّف رموز .TO/.V بعملة CAD، وتمر عبر fallback ‏Yahoo → yfinance → local، وتُنفّذ وفق قواعد GlobalEquity الخاصة بكندا، وتقارن بـ XIC.TO، وترفض تجميع العملات المختلطة. ويمكن لاختبارات USD-M التاريخية الصارمة اختيار position_adjustment=rebalance مع إبقاء الضمان والتمويل والرسوم والأرباح والخسائر المحققة وسلوك التصفية ودليل التنفيذ غير القابل للتغيير متسقة خلال الزيادة والتخفيض (#1024، #1019، يغلق #952). انضم ModelScope إلى providers المضمنة عبر endpoint الاستدلال المستضاف الرسمي المتوافق مع OpenAI، مع Qwen/Qwen3.5-27B افتراضيًا (#1011). يميّز الأمر الجديد vibe-trading update تثبيت wheel عن editable/source checkout، ويثبت الإصدار الدقيق الذي تحقّق منه، ثم يتحقق من metadata في process جديدة من دون downgrade (#1020). وأصبحت alpha_zoo وalpha_bench المحدودة متاحتين عبر MCP (64 أداة)، مع حدود للمدة وعدد النتائج ومسار الإخراج وإنشاء آمن للتقارير (#979). كما حدّثت عمليات lock الموثقة لـ Python/frontend مجموعات dependencies وpostcss وakshare (#1021، #1023، #1026، #1027). شكرًا @QCYTSN، @wiliao، @honginp، @yrk111222، @zwrong، و@cgycorey.
  • 2026-08-08 🧱 غلاف سطح المكتب وeToro وإعادة الموازنة الذرّية وتعزيز الموثوقية: يتولى مضيف Electron المصدري دورة حياة الخلفية الحالية — منفذ loopback عشوائي، وسر لكل تشغيل، واسترداد بدء التشغيل بخمس لغات، وتنظيف العمليات التابعة — وينضم eToro بملفات demo/real مفصولة على مستوى المسار؛ وتبقى الإجراءات الحية التي تزيد المخاطر خلف بوابة التفويض والتدقيق، بينما تتطلب أسطح قدرات API المصادقة وتُطبّق CSP (#923، #989، #961). تضيف الاختبارات الرجعية إعادة موازنة ذرّية اختيارية في الاتجاه نفسه مع أدلة تنفيذ غير قابلة للتغيير؛ ويفصل Shadow الأسواق حسب عملة التسوية بلا تجميع FX مختلق ويلتزم بجذر التشغيل المضبوط؛ وتستخدم المؤشرات تاريخًا متصلًا من دون أخذ عينات متباعدة، وصارت حدود السحب عند الملكية السالبة وتصفية الحسابات المعسرة الخالية صحيحة (#951، #997، #1017، #1005، #958، #959). يحصل OpenAI Codex OAuth على مخزن اعتماد مستقل ومتزامن وتعافٍ واحد من 401؛ ويشمل تعطيل proxy العملاء المتزامنين وغير المتزامنين؛ وتحافظ تشغيلات sandbox على جذرها القياسي؛ ويعزل البحث المجدول السجلات التالفة ويصحح تحقق timezone للفواصل؛ وتعيد طلبات 4h المكتوبة بأحرف صغيرة شموع أربع ساعات حقيقية (#1014، #995، #1012، #1003، #1004، #1013). تحتفظ ردود QQ بمعرّف الرسالة الأصلية، وتبقى model slugs الطويلة مقروءة، ويتوقف الوكيل عندما تكفي الأدلة (#1008، #1006، #1010). شكرًا @QCYTSN، @Shizoqua، @ngoanpv، @hhj123123، @su322، @Robin1987China، @shadowinlife، @dineeshd، @honginp، @santhreal، @00EVA، @x-lambda، @ofeksh-tr.
أخبار سابقة
  • 2026-08-07 🛡️ رفض كاذب أقل، وسدّ ثغرة في الصندوق الرملي، وQVeris على MCP: لم تعد بوابة الإسناد ترفض إجابات سليمة الصياغة بسبب أرقام لم تكن أسعارًا أصلًا — درجات الثقة، وقيم المؤشرات، ونوافذ المتوسطات المتحركة، والتواريخ بلا سنة مثل 8/5، والنطاقات المئوية، ومستويات التحفيز الخاصة بخطة التداول نفسها (الإغلاق ≥ 6.45 شرط وليس سعرًا مقتبسًا). في المقابل، ما زال أي سعر خارج أدلة OHLC المسجّلة مرفوضًا، وصار جدول الأسعار المؤرَّخ 08-05 يطابق أدلته بدل أن تعود كل خلية بلا إسناد (#1001، #983). الصندوق الرملي: لم يعد بإمكان كود الاستراتيجية المولَّد استيراد طبقة الوسيط، ولا الوصول إلى socket/subprocess/os.system/ctypes عبر ربط مُعاد التسمية — وكلاهما كان مقبولًا سابقًا — بينما يبقى src.quantlib قابلًا للاستيراد. QVeris: انضمت أدوات discovery/inspect/execute إلى سطح MCP (62 أداة)، مع قراءة تقدير التكلفة من السوق بدل الوثوق بما يعلنه المستدعي (#976، closes #964، شكرًا @shadowinlife). إضافة إلى إصلاح مسار التراجع لبيانات سوق هونغ كونغ مع مصدر Tencent جديد، وتوجيه عملات yfinance المشفّرة إلى محرك الكريبتو، وكتابة واسترجاع مدخلات الذاكرة بلاحقة .md، وتسامح وسائط list/dict في MCP مع العملاء الذين يرسلون سلاسل JSON، وإظهار مخرجات Portfolio Studio في تفاصيل التشغيل (#1000، #970، #984، #993، #980، #982، #966، #973، شكرًا @he-yufeng، @ngoanpv، @sambazhu).

  • 2026-08-06 🧮 طبقة رياضيات مالية مُختبَرة + محرك تقييم + تدفقات نقدية غير منتظمة + حوكمة موصولة فعلًا: يستبدل src/quantlib الصيغ التي كانت تعيش كنصوص markdown داخل المهارات بتطبيق مُختبَر واحد لكل منها — الخيارات والسندات والائتمان والاقتصاد القياسي وVaR/CVaR/EVT وإسناد الأداء ودراسات الأحداث وضبط الاختبارات المتعددة والتحقق المتقاطع المنقّى — نحو 250 دالة يمكن الوصول إليها كلها من CLI وWeb UI وREST API وMCP عبر أداة القراءة فقط الجديدة quantlib_call. ويرفض محرك التقييم (run_dcf / run_comps / القوائم الثلاث المترابطة) التشغيل عند غياب مدخل بدل ملئه بقيمة افتراضية صامتة، وتقبل البنية الجديدة للكيانات والتدفقات النقدية صافي قيمة الأصول ونداءات رأس المال والكوبونات (cashflow_performance يوفّر XIRR/MOIC/DPI/TVPI وTWR/Modified Dietz، وorderbook_depth يحسب كلفة الأثر في دفتر أوامر العملات المشفرة). ويكتب كل تشغيل الآن بيان تجزئات، وسجل التدقيق مسلسل بالتجزئات فيُكشف أي عبث، وأعيد فحص جميع الإعدادات المسبقة الثلاثين للسرب مقابل ما تستطيع أدواتها حسابه فعلًا — فما لا يمكن حسابه يُصرَّح به بدل اختلاق أرقامه.

  • 2026-08-05 🔭 حيازات المؤسسات، وتفكيك محافظ ETF، وأسواق التنبؤ، والأوراق البحثية: أربع أدوات للقراءة فقط تعتمد كلها على مصادر عامة مجانية — حيازات SEC 13F مع فروق المراكز ربعاً بربع؛ ومكوّنات صناديق ETF عبر الأسواق (صندوق يتتبع CSI-300 يعود بـ 342 مركزاً تغطي 98.7% من صافي الأصول بدل العشرة الأوائل الفصلية)؛ وعقود الأحداث معروضة كاحتمال ضمني موسوم بوحدته؛ وبحث arXiv/OpenAlex الذي يعلّم ما لا يذكره المصدر بدل استنتاجه. وإلى جانبها: خمسة قوالب بحث مجدولة، وستة أوامر بحث مؤسسي (/comps /dcf /attrib /memo /earnings /screen)، وinvestor lenses كمهارة مستقلة، ونواة وكيل تُرجع كل رقم إلى الأداة التي أنتجته.

  • 2026-08-04 🔧 إصلاحات صحّة البيانات: الأساسيات وأسعار الأسهم الصينية والنتائج المفرطة الطول: صارت فترات التقارير في SEC تُعرَّف بمدى (start, end)؛ فالنموذج 10-Q يودع الربع الحقيقي والإطار التراكمي منذ بداية السنة تحت التاريخ نفسه والربع المالي نفسه، ولذلك كان period="annual" يُعيد ربعًا واحدًا لسهم AAPL في السنوات المالية 2018–2020 (تقليل بمقدار 4.2 ضعف)، وكان كل موضع للربع الرابع في السلسلة الربعية يحمل رقم السنة الكاملة؛ كما لم يعد get_fundamentals("AAPL.US") يُرجع ok:true مع لوحة فارغة تمامًا. وتُعدَّل الآن أسعار الأسهم الصينية من Tushare لأحداث الشركات في كل من مقعد اختبار العوامل والاختبارات الرجعية — إذ كان العائد الخام بين إغلاقين عبر يوم توزيع الحقوق يخطئ بما يصل إلى 47 نقطة مئوية (300750.SZ، 2023-04-26) — ويقنّع مقعد CSI300 كل تاريخ بمكونات المؤشر في حينه. وترفض الاختبارات الرجعية المركّبة عبر الأسواق مجموعة رموز مختلطة العملات بدل جمع CNY وUSD وKRW في منحنى ملكية واحد؛ وتُقيَّم أرجل الخيارات بالتقلب الذي فُتحت عليه، مما أزال ربحًا وهميًا في اليوم صفر يبلغ +93% من العلاوة؛ وتُقسَّم النتائج المفرطة الطول إلى صفحات بسجلات كاملة مع إظهار العدد الإجمالي بدل قطعها في منتصف JSON؛ ويُبلّغ calc_metrics عن خطأ التتبع وبيتا المرجع.

  • 2026-08-03 ⏰ بحث مجدول واعٍ بالمنطقة الزمنية + فكّ انسداد فرز الأسهم: صارت المهام المجدولة تقبل مفتاح timezone اختياريًا بمعيار IANA، ويُقيَّم cron على ساعة الحائط لتلك المنطقة، فيبقى الإيقاع صحيحًا عبر تحولات التوقيت الصيفي — تُتخطّى اللحظة المفقودة عند التقديم، وتُنفَّذ اللحظة المكرَّرة عند التأخير مرة واحدة فقط — كما تقبل حقول cron قوائم الفواصل والمدَيات (1,3-5)، وتحتفظ المهام بلا منطقة زمنية بدلالات UTC، وأضيفت إلى واجهة الويب صفحة Scheduled بخمس لغات بعد أن لم يكن للجدولة أي واجهة أمامية (#954، closes #953، شكرًا @ngoanpv). ولم يعد طلب الفرز ينتهي إلى طريق مسدود: تُعدّ القائمة القصيرة متعددة المرشحين إجابةً لا عمليةَ تحليل متوقفة، وتنسحب بمجرد قفل مرشح بعينه، وتوقّف التحقق من الأسعار عن قراءة أرقام رمز السهم والتواريخ المحلية وأعداد الأسهم وتكلفة المركز كأسعار معلنة — مع استمرار رفض أي سعر خارج أدلة OHLC المسجّلة (closes #955). كذلك حصلت ذاكرة الوكيل على مطابقة دقيقة لمرساة الفهرس وحدٍّ مُحترَم لعدد النتائج (#956، #957، شكرًا @santhreal).

  • 2026-08-02 🧠 اكتشاف حي للنماذج، وهوية تشغيل صادقة، وتحديث اعتماديات مُتحقَّق منه: تستطيع Settings الآن اكتشاف نماذج كل provider مُعَدّ عند الطلب وعرضها برموز تحذير مستقرة وواجهة بخمس لغات، بينما تسجّل كل إجابة وتستعيد هوية provider/model/reasoning غير القابلة للتبدّل التي عالجت الطلب فعلًا، وتُمسح بأمان عند تبديل الجلسات (#924، شكرًا @QCYTSN). كما حُدّثت تسع اعتماديات Python مقفلة بالتجزئات مع jsdom وpostcss، ونجحت اختبارات الاستيراد بالإصدارات الدقيقة و330 اختبارًا مركّزًا وبناء الإنتاج و373 اختبارًا للواجهة وكامل CI على main وDependency Graph (#949، #948)؛ وبقي MCP 2.0 الكاسر غير مدمج حتى تكتمل هجرة القفل وبيئة التشغيل (#950).

  • 2026-08-01 🧮 تحليلات استراتيجيات الخيارات + معنويات السوق + أبحاث USD-M قابلة للتدقيق: يحسب سير عمل جديد لعوائد الخيارات تحليليًا القيم القصوى للربح والخسارة عند الاستحقاق، ونقاط التعادل الدقيقة — بما فيها فترات متصلة يكون فيها الربح والخسارة صفرًا — وعمولة الدخول المتوافقة مع المحرك، وسيناريوهات السعر الفوري × التقلب الضمني، عبر Agent وMCP (#946، أُعيد تنفيذه بسجل نظيف انطلاقًا من #883، شكرًا @he-yufeng). تسجّل أداة sentiment للقراءة فقط درجات أي نص محليًا، وتجلب مؤشر الخوف والطمع للعملات المشفرة من دون مفتاح API (#939، شكرًا @Robin1987China). تحفظ اختبارات USD-M الرجعية الصارمة أحداث التنفيذ والتمويل والمخاطر والتصفية بالترتيب مع ملخص لدقة المحاكاة، وترفض الفواصل الزمنية غير المدعومة في نمط 100× الصارم (#936، شكرًا @honginp). وتضمن تحسينات الاعتمادية أيضًا حلّ الرمز والسوق قبل استدعاء بيانات السوق، ومراجعة الأسعار النهائية في ضوء أدلة OHLC المسجلة، وإعادة محاولة الأبحاث المجدولة بعد الأعطال العابرة، وتسلسل نتائج MCP المتداخلة بصورة سليمة.

  • 2026-07-31 🔧 دورة تصفية USD-M + أداة مؤشرات فنية + نقل مجلدات الحالة إلى جذر المستخدم: نمط perpetual_strict الاختياري يسوّي رسوم التمويل التاريخية قبل التنفيذ وينفّذ خروقات هامش العزل/المتقاطع كتصفية فعلية (#903، شكرًا @honginp). أداة technical_indicators للقراءة فقط تحسب RSI/MACD/Bollinger/SMA/EMA عبر المُحمِّلات الحالية (#921، مرجع #920، شكرًا @Robin1987China). الجلسات ومخرجات التشغيل وتشغيلات السرب والمرفوعات صارت تحت ~/.vibe-trading (قابلة للنقل عبر VIBE_TRADING_HOME) مع ترحيل تلقائي لمرة واحدة (#925، يغلق #904، شكرًا @MuggleJinx). إضافةً إلى عشر إصلاحات صحّة — تصنيف .SS من Yahoo كأسهم صينية، والرموز المجرّدة/المسبوقة، وأزواج العملات المشفرة بالشرطة المائلة، وحواجز nan/inf (#919، #926–#935، شكرًا @santhreal).

  • 2026-07-30 🎨 واجهة ويب مُعاد بناؤها + سوق كوريا (KRX) + جسر OpenBB Workspace: هبطت إعادة تصميم الواجهة وفق «البساطة الموجَّهة» — لا وميض في الإطار الأول، وكائن نشاط دائم واحد لكل دور (همس استدلال حي وأثر أدوات يُستعاد بعد إعادة التحميل)، وعناوين جلسات يكتبها النموذج، وتطابق كامل عبر اللغات الخمس. وتصبح أسهم كوريا (KRX: KOSPI/KOSDAQ) محرك الاختبار الرجعي التاسع — نطاق ±30% يُحكم عليه لحظة التنفيذ، وشراء فقط، وضريبة تداول 0.20% لعام 2026، ومُحمِّل pykrx اختياري (#693، شكرًا @JungHoonGhae) — مع جسر OpenBB Workspace (#817، شكرًا @shugaoye) وأداة لقطة أسهم تايوان للقراءة فقط (#848، شكرًا @TSENGCHIENFENG). الصحّة: تُحكم النطاقات السعرية اليومية لحظة التنفيذ لا من إغلاق شمعة القرار؛ وتُشغّل الجلسة محاولة واحدة في كل وقت (HTTP 409) مع اعتبار إيقاف المستخدم حالة نهائية مستقلة (#676، شكرًا @tyj147454413-cmd). يضاف إلى ذلك متانة سجلات التتبع (#662)، وتنظيف الأسرار من نتائج الأدوات (#675)، وفشل مغلق للوسائط المشوّهة (#913/#911، شكرًا @santhreal)، وreasoning_effort لـ OpenAI المباشر (#755، شكرًا @1anter)، وحواجز عددية في الأشعة السينية للمخاطر وكثافة الحواف ومحرك الخيارات (#909/#908/#907).

  • 2026-07-29 🔧 عوائد آمنة عبر فجوات التداول + نمذجة مخاطر التصفية + أشعة سينية للمخاطر في كل تشغيل: لم يعد bar_returns يمحو الحركة الحقيقية عبر تعليق تداول أطول من نافذة التعبئة الأمامية — كانت حركة شمعة الاستئناف تُسجَّل صفرًا بصمت فيُبخَس التقلب ويُضخَّم شارب — ولم يعد السعر السابق inf يُقرأ كخسارة −100% نظيفة (#895، شكرًا @darkknight4563). التحويل السنوي يغطي الآن جميع مصادر البيانات الـ 24 في كل الفواصل الزمنية مع اختبار تغطية يُفشل CI عند غياب الإدخالات (#891، يغلق #884، شكرًا @Robin1987China). تكتسب أبحاث العقود الدائمة USD-M تقييم تصفية الهامش المعزول والمتقاطع الحتمي (#889، شكرًا @honginp)، وكل اختبار رجعي للمحفظة يُصدر الآن مخرجات الأشعة السينية للمخاطر (risk_xray.json/.md) (#900، شكرًا @he-yufeng). تحمّل واجهة connector في CLI الآن ~/.vibe-trading/.env فتعود بيانات اعتماد الوسطاء المصدرها البيئة إلى العمل (#902، يغلق #901، شكرًا @MuggleJinx). إضافةً إلى الحفاظ على المسافة البادئة عند تقسيم رسائل القنوات وتحليل frontmatter عند نهاية الملف (#867/#861، شكرًا @santhreal).

  • 2026-07-28 🔧 إتاحة أحدث نماذج Claude + عوائد آمنة الإشارة: أصبحت نماذج Claude التي أوقفت حقل temperature (‏opus-4-7 و‏opus-5 و‏sonnet-5) تعمل الآن — إذ يزيل المُهيّئ الحقل عند رفض الواجهة له ويعيد المحاولة مرة واحدة ثم يتذكّر النموذج، فلا حاجة إلى ترقيع مع كل إصدار (#890، يغلق #856، شكرًا @yagnikpipaliya). صار الأمر غير التفاعلي vibe-trading run يحقن معرّف جلسة من المضيف: كانت أدوات أهداف البحث تفشل في كل استدعاء بينما يُبلَّغ عن نجاح التشغيل (#885). وأصبحت عوائد الشراء والاحتفاظ آمنة الإشارة — لم يعد سعر إغلاق سابق قريب من الصفر يُفجّر المؤشر المركب، ولم يعد إغلاق يساوي صفرًا ينتج inf/nan (#872، شكرًا @darkknight4563). وانتقلت الواجهة الأمامية إلى Node 22 + React Router 8، ما أزال تنبيهًا أمنيًا عالي الخطورة.

  • 2026-07-27 🔧 سلامة مصفوفة الارتباط + إصلاح تصدير vn.py 4.0 + حزمة إصلاحات الترميز: لم تعد مصفوفة الارتباط المتدحرجة تملأ أسعار الإغلاق المفقودة بالقيمة السابقة — كانت جلسة التوقف تُحتسب كعائد صفري مُفتعل ويُقارَن بالحركة الفعلية للأصل النظير، ما يشوّه المصفوفة (#873، شكرًا @ddy4633). وأُصلحت مهارة تصدير vn.py لتوافق بنية vn.py 4.x بعد اختفاء vnpy.app.cta_strategy من المصدر، فصارت القوالب تستورد من vnpy_ctastrategy (#869، شكرًا @y85998607). إضافةً إلى ست إصلاحات: فك ترميز UTF-16 BOM في قارئ المستندات وملفات CSV لسجل التداول، وإزالة رموز العملات قبل التحويل الرقمي، والتعرف على الرموز بصيغة BTCUSDT كعملات مشفّرة، وتصحيح الحساب السنوي للفواصل 1h/1d بالأحرف الصغيرة، والحفاظ على محارف CJK في أسماء مجلدات المهارات (#862، #863، #864، #865، #866، #868، شكرًا @santhreal).

  • 2026-07-26 🔒 إصلاح قفل الاعتماديات + شفافية مكونات المؤشر: عاد تثبيت Docker المقيّد بالتجزئات للعمل، مع فحص جديد للقفل في CI (#858، يغلق #847). ويكشف alpha bench الآن مصادر CSI300/SP500 وأعداد المكونات وحالات الرجوع المخفّضة وانحياز البقاء (#859، يغلق #845). كما حُدّثت Actions وخمس اعتماديات للواجهة الأمامية (#850–#852).

  • 2026-07-25 🔧 واقعية العقود الدائمة + إصلاح تعطل MCP + حزمة تصحيحات: حصلت عقود USD-M الدائمة على عقود حالة الهامش (#798، شكرًا @honginp)، وأصبح المحرك يستهلك معدلات التمويل التاريخية فعليًا بدلًا من جلبها وتجاهلها (#819، شكرًا @g0rdonL). لم تعد نتائج dataclass في MCP تتعطل بسبب Circular reference detected خاطئ (#849، شكرًا @Echoandelementwebsites)، ويمرر alpha bench في CLI/HTML كتلة _meta للإفصاح عن انحياز البقاء (#841، يغلق #797، شكرًا @AmirF194). إضافة إلى 12 إصلاحًا للصحة عبر اليوميات والموصلات والقنوات (#799–#810، شكرًا @santhreal)، وعرض تسمية حساب حقيقية في عرض الأرصدة في CLI (#843، يغلق #846، شكرًا @Robin1987China).

  • 2026-07-24 🔀 الطبقة الثانية من الذاكرة وقيود مُحسِّن قابلة للتركيب + جولة معالجة الفترات: حصلت الذاكرة الدائمة على تنظيم هيكلي من الطبقة الثانية (Tier 2) (#815، شكرًا @shadowinlife)، وأصبحت مُحسِّنات الاختبار الرجعي تقبل قيود أوزان قابلة للتركيب (#818، شكرًا @he-yufeng). التصحيح: أصبح مدقّق الأعمدة اليومية قادرًا على تفعيل الأسعار غير الموجبة اختياريًا — يفتح عند أعمدة الأسعار السالبة مع استمرار رفض الصفر (#816، يغلق #571، شكرًا @darkknight4563). بالإضافة إلى جولة تطبيع فترات عبر 19 طلب دمج في المحمّلات: قبول الأسماء المستعارة بالأحرف الصغيرة 1h/4h/1d/1w في كل مكان، والفترات غير المدعومة تفشل الآن بسرعة بدل إرجاع أعمدة يومية بصمت، ويُحوَّل 4H في Yahoo إلى 1h، ويقبل MT5 الفترتين 1W/1M (#812–#838، شكرًا @santhreal)، مع إصلاح تواريخ Excel التسلسلية من Eastmoney في سجل التداول (#811، شكرًا @santhreal)، وإصلاح مرساة التنقل في README (#840، شكرًا @dvirarad).

  • 2026-07-23 🔧 جولة موثوقية + كشف بوابة alpha-bench الصارمة + دورة حياة اختيارية للذاكرة: دفعة من 22 طلب دمج من المساهمين. جولة موثوقية واسعة تُصلح معالجة الأطر الزمنية من طرف إلى طرف — yfinance 1M←شهري (لا دقيقة)، وCCXT 1W/1M، وakshare/india-broker يرفضان الفواصل غير المدعومة بدل إرجاع يومي بصمت، وموصّلات Tiger/Alpaca/OKX/Shoonya/Longbridge تُبقي 1H/4H شموعاً بالساعة — إضافة إلى تطبيع تواريخ Excel في سجل التداول (عدد عشري YYYYMMDD من eastmoney، وتواريخ تسلسلية من Futu/Tonghuashun)، وJSON منتهي القيم في report_audit، والتحقق من holding_days الفارغة، وأعمدة حواف جداول markdown في Feishu/CLI (#778–#794، شكرًا @santhreal). أصبح MT5 trading_history يحوّل قيم numpy العددية إلى أنواع Python أصلية فلا يفشل تسلسل JSON على int64 (#776، يغلق #774، شكرًا @shadowinlife)، والبيانات الأساسية PIT تزيل تكرار الصفوف المُعاد ذكرها وتمنع تراجع اللقطة إلى فترة مالية أقدم عند إعلان تصحيح متأخر (#772، يغلق #771، شكرًا @klmtseng). جديد: alpha bench --strict يربط أخيرًا بوابة الضبط الصارم بالتحكم العشوائي على نفس الكون + OOS التي شُحنت دون منفذ منذ 0.1.9 (#796، يغلق #773، شكرًا @he-yufeng)، ودورة حياة اختيارية للذاكرة (تسجيل الجودة، تلاشي إبنغهاوس، جمع مهملات بالأرشفة فقط — كلها معطّلة افتراضيًا) (#733، يغلق #732، شكرًا @shadowinlife)، ومنتجات ملاحظات إعادة التوازن في الاختبار الخلفي + مقاييس معدل الدوران (#795، شكرًا @he-yufeng).

  • 2026-07-22 🚀 صدر الإصدار v0.1.12 (ملاحظات الإصدار، pip install -U vibe-trading-ai): يضيف الجدول الزمني لنظام الارتباط (correlation regime) نقطة نهاية GET /correlation/regime + شريطاً اختيارياً في تبويب Correlation — تُمرَّر كثافة الحواف عبر آلة حالة تباطؤ (hysteresis) سببية تُعلّم فترات اندماج السوق (FUSED)، وهو سياق مخاطر وصفي لا إشارة تداول (#756، يغلق #719، شكرًا @ebujinovch). وأصبح حلّ نقاط نهاية المزوّد يتراجع الآن إلى عنوان URL الأساسي القانوني لكل مزوّد ويتعامل بسلاسة مع نقاط النهاية غير SSE، ما يصلح مزوّد zai الأصلي على glm-5.1 (#758). بالإضافة إلى جولة موثوقية بـ JSON صارم / أرقام منتهية عبر المقاييس والعوامل والأنماط والجلسات والسجل (#761–#770، شكرًا @santhreal)، وفصل شريحة صيانة Binance الذي يُبقي اختبارات -PERP الرجعية بلا بيانات اعتماد (#757، شكرًا @honginp). يجمع ~90 إصلاحاً منذ 0.1.11.

  • 2026-07-21 🔧 اكتمال محمّل البيانات + جولة إصلاحات للموثوقية: أصبحت نتائج بيانات السوق الجزئية تُكمل الرموز المفقودة عبر سلسلة fallback وتفشل بأمان بدلًا من تقليص نطاق الاختبار الخلفي بصمت (#689، يُغلق #681، شكرًا @xkam7ar)، وتستخدم شموع OKX نقطة النهاية history-candles مع إعادة المحاولة عند حد المعدل لعمليات التعبئة التاريخية العميقة (#644، شكرًا @tyj147454413-cmd). بالإضافة إلى جولة إصلاحات: يقبل حارس شبكة MCP مضيفي IPv6 / المختلفين في حالة الأحرف (#750، شكرًا @Robin1987China)، ويتخطى محلّلو سجل التداول صفوف الرموز الفارغة/NaN (#749، شكرًا @Robin1987China)، ويتخطى Shadow Account بوابة ساعة الدخول المستخرجة على الشموع اليومية (#748، شكرًا @Robin1987China)، وأصبحت نقاط نهاية MiniMax الإقليمية قابلة للاختيار (#731، شكرًا @octo-patch).

  • 2026-07-20 🔀 مزوّدو النماذج وMetaTrader 5 ومراجعة للموثوقية: انضم مزوّد Anthropic Messages API الأصلي (إضافة اختيارية [anthropic]، #695، شكرًا @jelech) وSiliconFlow (#565، شكرًا @UNHNQ) وiFlytek Spark (#537، شكرًا @FenjuFu) إلى قائمة المزوّدين، ووصل موصّل وسيط MetaTrader 5 (Exness) ومصدر بيانات mt5 للفوركس/المعادن (موصّلات الوسطاء → 12، #481، شكرًا @StaniellG). بالإضافة إلى محرّك llm-vision OCR المستقل عن المزوّد (#548، شكرًا @shadowinlife)، وتحويل محاذاة الإشارات إلى متجهات بسرعة 80× (#698، شكرًا @shadowinlife)، وبيانات تمويل/شرائح USD-M التاريخية من Binance (#716، شكرًا @honginp)، وذاكرة تخزين مؤقتة لاكتشاف MCP في swarm (#704)، ودمج للموثوقية يُغلق 13 مشكلة في SSE/الجلسات/CLI/swarm/المجدول (#584، شكرًا @xkam7ar). تصحيحات الدقّة: أصبح الإغلاق الجزئي للخيارات يحترم الكمية المطلوبة بدلًا من تصفية العقدة بالكامل (#577)، وتوحيد حلّ بيانات اعتماد المزوّد (#563)، ومعالجة الإلغاء أثناء الانتظار (#641)، وسباق DOM أثناء البث في الواجهة (#717، شكرًا @Marnie0415)، وعارضات CLI للموصّلات (#726، شكرًا @nareshkps).

  • 2026-07-19 🔧 مقالات أخبار حقيقية للأسهم الأمريكية/هونغ كونغ + إصلاح MCP factor-analysis + مراجعة للمتانة: تُعيد أداة أخبار الأسهم الآن مقالات Yahoo Finance حقيقية (title/url/source/published/snippet) لرموز الأسهم الأمريكية وهونغ كونغ بدلًا من مطابقات الأدوات ذات الصلة، مع بقاء التوجيه عبر العميل المجمّد المحدود بمعدّل عناوين IP (#730، شكرًا @yxhuang). وأصبحت أداة MCP factor_analysis متوائمة مع عقد CSV الحقيقي للأداة المسجّلة، فلم تعُد الاستدعاءات تفشل بـ KeyError قبل التشغيل (#715، تغلق #635، شكرًا @Robin1987China). إضافةً إلى مراجعة للمتانة: تفرض سلسلة Kimi K بأكملها (k2/k3/…/for-coding) الآن temperature=1 تلقائيًا كما يتطلب API (#701، شكرًا @sambazhu)، وتفشل split_message ونطاقات صفحات PDF ومرشّحات تواريخ سجل التداول فورًا عند المدخلات المنحلّة أو المعكوسة بدلًا من التعليق أو إرجاع نتيجة فارغة بصمت (#727–#729، شكرًا @santhreal).

  • 2026-07-18 🔧 احتياطي عملات Binance المشفّرة + إصلاحات التنفيذ المتوازي والصحّة: انضمّ loader لـ Binance إلى سلسلة الاحتياط (fallback) لبيانات العملات المشفّرة التاريخية (#643، شكرًا @tyj147454413-cmd)، وانتقل موصّل IBKR إلى تجمّع اتصالات محلي للخيط (thread-local) مع عروض أسعار لقطية، بما يصلح التعليق أثناء تشغيل الوكلاء المتوازي (#636، شكرًا @MikeCer). إضافةً إلى مراجعة للصحّة: يرفض factor analysis قيم n_groups غير الموجبة، وتفشل النطاقات الزمنية المعكوسة ونوافذ الكشف غير الموجبة فورًا، ويُعالَج DatetimeIndex غير المسمّى في correlation matrix بشكل صحيح، وتُقبَل أسماء أعمدة nav/value البديلة في equity.csv، ولم تعُد أكواد الأسهم الصينية (A-share) الفارغة تُحوَّل قسرًا إلى 000000.SZ (#709–#714، شكرًا @santhreal). ينضمّ عامل استقرار إعادة ربط الارتباط (correlation-rewiring) إلى academic zoo (#705، شكرًا @ebujinovch)، وأُضيف fundamental zoo إلى القائمة البيضاء لـ factor analysis (#707، شكرًا @sambazhu)، وأصبحت حالة التشغيل المُخزَّنة مضمونة عبر fsync (#645، شكرًا @tyj147454413-cmd)، ويثبّت dev extra سلسلة أدوات Black/Ruff الموثّقة (#634، شكرًا @xkam7ar).

  • 2026-07-17 🧩 مهارة correlation-regime + مراجعة واسعة لصحة الاختبار الرجعي / البيانات / أمان التداول الحي: مهارة كشف correlation-regime جديدة (المهارات المضمّنة → 88، #557، شكرًا @ebujinovch)، وبطاقة اتصال وقت التشغيل لـ Longbridge (#569، شكرًا @fanfpy)، وإعدادات swarm مُعرّفة من المستخدم تُحمّل من ~/.vibe-trading (#570، شكرًا @darkknight4563). إضافةً إلى تحصين يشمل الحزمة بأكملها: إصلاحات لتلف البيانات الصامت في loaders الخاصة بـ Futu / Tencent / CCXT / mootdx، وضوابط لمنع تحيّز الاستشراف المسبق ولفرض strict-OOS في factor bench وShadow Account، وأمان التداول الحي (حدود انكشاف موقَّعة، وحدود أوامر يومية ذرّية، واعتمادات mandate بموافقة مسبقة، وحالة حية fail-closed)، وتحسينات على journal / ميزانية QVeris / swarm / بوابة CI (#552، شكرًا @xor-xe؛ ومعظم أعمال الصحّة من إنجاز @xkam7ar).

  • 2026-07-16 🔧 إصلاح قفل الاعتماديات + إصلاح حفظ الإعدادات على Windows: أُعيد توليد قفل التشغيل المُتحقق منه بالتجزئة بحيث يعود pip install --require-hashes في Docker إلى الحل بنجاح، بإصلاح التثبيتات غير المتوافقة لـ caio/pydantic-core/websockets (#564، يغلق #558، شكرًا @tianrking). لم يعد حفظ إعدادات Agent LLM من واجهة الويب يعيد HTTP 500 على Windows — أصبح تحصين os.fchmod الخاص بأنظمة POSIX محروسًا حسب المنصة مع اختبار انحدار للمنصات التي لا تدعم fchmod (#561، شكرًا @CRui5in).

  • 2026-07-15 🧮 صحة الاختبار الرجعي + اكتمال نواة Portfolio Studio: جمعت دفعة من 10 طلبات سحب (PR) إصلاحات تجعل إعادة الموازنة سببية وغير متأثرة بترتيب الرموز، وتحتسب تكاليف الإغلاق النهائي والدوران من الصفقات المنفذة، وتفرض حدود الانكشاف، وتحافظ على مخرجات تحقق رقمية منتهية وصارمة (#530/#531/#532/#540). تعيد الرسوم التاريخية استخدام مصدر البيانات الفعلي للتشغيل، ولا تُسقط استعلامات السوق المتكررة بصمت، ويُحدَّث cache الإعدادات بعد تحميل .env (#535/#544/#554). أُغلقت Portfolio Studio #456 ومشكلة الإعداد #541، وكذلك إصلاحا provider #528/#529. شكرًا @YZY0108 و@santhreal و@Robin1987China و@xkam7ar و@Marnie0415 و@marichu99.

  • 2026-07-14 🌉 بيانات Longbridge السوقية + نقل MCP الحديث + موثوقية المزوّدين: انضم Longbridge إلى طبقة fallback للبيانات التاريخية مع بيانات اعتماد مفعّلة بالمفاتيح، وتقسيم نوافذ التاريخ، وفحوص صارمة للاكتمال، واعتماد SDK اختياري. وحصلت أربع أدوات لتدفقات السوق الصينية على fallback موثّق عبر Tushare، ولم تعد القيمة النهائية السالبة لصافي الأصول تعطّل مقاييس الاختبار الرجعي. يدعم MCP server الآن Streamable HTTP، وتستعيد write_file وسائط path البديلة أو المفقودة بأمان، وترفض تحديثات hypothesis الحقول غير المدعومة، وأصبحت طلبات Correlation خاضعة للمصادقة. وأصبح NVIDIA NIM مزوّدًا من الدرجة الأولى في Web Settings ومساري CLI onboarding، مع User-Agent متوافق يتضمن رقم الإصدار لمعالجة خطأ 403 المُبلّغ عنه. كما تكتب Web Settings الآن إلى المسار القياسي ~/.vibe-trading/.env، وتنقل الإعدادات القديمة، وتعرض أخطاء الصلاحيات بوضوح، ما يصلح خطأ 500 عند حفظ DeepSeek (#534، يغلق #516/#524؛ #528/#529). شكرًا لكل من @fanfpy و@asahikiko و@santhreal و@sTunnaSu و@abhishekjaisinghani و@huangcheng و@ShiroKSH و@Meru143 و@DIEGOD79 و@not-knope على الكود والتقارير والتشخيص.

  • 2026-07-13 🔒 تحصين أمني: إغلاق جميع نتائج التدقيق الخارجي العشرة + دفعة مساهمين: تمّت معالجة جميع النتائج العشر من التدقيق الأمني الخارجي بتاريخ 2026-07-10 (issue #476، نقاش #468) على main — إعادة بناء Docker متعددة المراحل بصور أساسية مثبّتة عبر digest، وصندوق رملي للباكتيست مُحصّن بـ AST يمنع الشبكة/subprocess/eval/os.environ/فتح الملفات غير الآمن (حتى داخل أجسام الدوال المتداخلة)، وتذاكر مصادقة SSE قصيرة العمر وأحادية الاستخدام، وتحصين Compose (نظام ملفات جذري للقراءة فقط، إسقاط الصلاحيات، حدود الموارد)، ومصادقة + تحديد معدّل على /correlation، ورؤوس أمان، واعتماديات مثبّتة بالتجزئة، وغيرها. كما دُمج: وضع TAP الاختياري لعزل مفتاح Alpaca (#377، شكراً @0xZKnw)، وإظهار معدل دوران المحفظة المُحقَّق ضمن مقاييس الباكتيست (#478، شكراً @Robin1987China)، وعامل أكاديمي Frazzini-Pedersen للمراهنة ضد بيتا (Alpha Zoo → 461، #480، شكراً @YogeshModi24)، وإصلاح تحيّز الاستشراف المسبق عبر جميع محسّنات المحفظة الخمسة (#487، شكراً @YZY0108)، وإصلاحان لإعدادات preflight/provider (#479/#484، يغلقان #477/#482، شكراً @ananaymital/@Bortlesboat).

  • 2026-07-12 🧪 مدير تطوير الاستراتيجيات + دفعة إصلاحات المساهمين: مهارة strategy-dev-manager الجديدة (رقم 87) تحوّل الأوراق الأكاديمية وتقارير الوسطاء إلى عوامل/استراتيجيات مسجلة مع مخزن artifacts دائم ومراقبة تلقائية لاضمحلال IC/Sharpe — تقود أدوات sdm_register / sdm_status / sdm_decay_scan دورة الحياة active → monitoring → decayed → disabled فوق ~/.vibe-trading/ (#457، يغلق #455، شكراً @shadowinlife). كما دُمج: يقبل تبويب Correlation رموزاً مجردة (AAPL,SPY) ويمشي سلسلة loader fallback كاملة (#472، يغلق #471، شكراً @yxhuang)، ويحترم local loader الفاصل الزمني المطلوب عبر إعادة تجميع OHLCV (#467، شكراً @Shizoqua)، ووصل تاريخ عقود Binance USD-M الدائمة مع توجيه صريح BTC-USDT-PERP وفصل سعر التنفيذ عن سعر العلامة كأول شريحة من #462 (#470، شكراً @honginp)، وتعمل استيرادات FastMCP transport عبر كلا تخطيطي الوحدات (#469، شكراً @roberttidball)، وأصبح Requesty متاحاً كمزوّد بوابة LLM متوافقة مع OpenAI (#474، شكراً @Thibaultjaigu).

  • 2026-07-11 🚀 صدر الإصدار v0.1.11 (pip install -U vibe-trading-ai): يجمع ثلاثة أسابيع من العمل منذ 0.1.10 — اختبار رجعي من الدرجة الأولى للأسهم الهندية (NSE/BSE)، وطبقة العوامل الأساسية الآمنة زمنياً (PIT-safe) (Alpha Zoo → 460)، وبيئة تشغيل قنوات IM بـ16 محوّلاً، والأبحاث المجدولة من طرف إلى طرف، وبيانات QVeris المدفوعة الاختيارية، ودفعة مساهمي اليوم: محسّن يراعي الدوران (#466، شكراً @Robin1987China)، وأداة رؤية analyze_image + إقران NapCat DM + إصلاح قراءة وسائط IM (#464/#463/#465، شكراً @fei-moss)، وتسلسل Longbridge Decimal (#459، شكراً @fanfpy)، وحُرّاس عدّ المانيفست المحزوم (#461، شكراً @asahikiko). التفاصيل الكاملة: CHANGELOG · ملاحظات الإصدار.

  • 2026-07-10 🇮🇳 دعم الأسهم الهندية (NSE/BSE) + مركزية متغيرات البيئة: محرك مخصص IndiaEquityEngine — تسوية T+1، ونطاقات حدود السعر، وحزمة تكاليف STT/الدمغة/البورصة/SEBI/GST قابلة للتهيئة — مع توجيه رموز .NS/.BO، وجسر بيانات Shoonya/Dhan للقراءة فقط (اختياري)، وانضمام 255 عاملاً من alpha101/qlib158 إلى الكون الجديد equity_in (#305، شكرًا @muku314115). تتدفق متغيرات البيئة الآن عبر مخطط Pydantic واحد EnvConfig مع بوابة CI تعتمد على AST لمنع انتشار os.getenv مستقبلاً (#440، يغلق #438، شكرًا @shadowinlife). أيضًا: مربع تأكيد ثانٍ قبل اعتماد تفويض تداول حقيقي مع توحيد رسائل الأخطاء (#453، شكرًا @wison1717-maker)، واختبارات مسارات scheduled-research (#452، شكرًا @Robin1987China)، ولم تعد نماذج GLM التفكيرية تفقد تدفق الاستدلال على مزود zhipu (#458).

  • 2026-07-09 🧯 إزالة عائق بدء Docker + دفعة مساهمين لـ provider/CLI: لم يعد بدء Docker/server ينهار عندما يمرّ FastAPI route iteration على عنصر included-router-like لا يملك path (#450، شكراً @Penn-Live). كما دُمجت دفعة quick-win من إصلاحات المساهمين: توحّدت تواقيع fetch() في loaders الخاصة بـ OKX / Tushare / yfinance مع البروتوكول (#437، شكراً @shadowinlife)، ويحفظ CLI resume prompt أول رسالة يكتبها المستخدم (#448، يغلق #447، شكراً @morluto)، وتحوّل default في Codex OAuth إلى openai-codex/gpt-5.4 (#446، شكراً @morluto)، وأصبح Kimi for Coding مزوداً مستقلاً (#435، شكراً @yxhuang)، ووُصلت opencode provider mappings (#444، شكراً @imsankz)، كما صُححت code fences في مراجع Tushare من pyhton إلى python (#449، شكراً @flash1234pku). شمل التحقق focused server/CLI/provider/loader tests وDocker build و/health smoke.

  • 2026-07-08 💎 طبقة العوامل الأساسية (المرحلة 1) + بيانات QVeris المدفوعة الاختيارية + يوم صيانة: بيانات SEC المالية الآمنة زمنياً (PIT-safe) تتدفق الآن مباشرة إلى panels العوامل اليومية —— أعمدة fund:*، وتثبيت على تاريخ filed (مع حماية من إعادة البيانات وإطارات YTD)، و4 عوامل جودة/قيمة جديدة (يضم zoo الآن 460 alphas). اكتسب توجيه البيانات مساراً مدفوعاً اختيارياً: تبقى المصادر المجانية الـ18 هي الافتراضية، بينما يفتح QVeris أكثر من 63 مزوداً عبر Settings → QVeris أو vibe-trading data mode paid (انظر قسم QVeris أدناه). أيضاً: اكتملت وحدات api_server (من 1,103 إلى 371 سطراً، #424 يغلق #331، شكراً @shadowinlife)، ولم يعد validation.json في الاختبار الخلفي يتطلب وجود دليل artifacts مسبقاً (#429، شكراً @isaveall)، وأصبحت أخطاء --swarm-run أوضح (#428، شكراً @isaveall)، وقمنا بالتراجع عن governance stack الذي عطّل محادثات الجلسات (#433، شكراً @yxhuang على التشخيص الدقيق).

  • 2026-07-07 ✅ دفعة PR للمساهمين: دُمجت أعمال المساهمين المنتظرة: إعداد IM channel timeout (#413، شكراً @SyntaxSawdust)، وAlpha Library social previews ودليل المبتدئين (#396، #393، شكراً @kadaliao)، وvalue-investing skills / tools / committee presets (#407، شكراً @sambazhu)، ومعالجة حقول order sizing ذات القيمة الصفرية في trading_place_order (#417، شكراً @irfanallana-oss)، وtimezone-aware UTC timestamps عبر session/API paths (#397، شكراً @mustafakamal88).

  • 2026-07-06 🧭 تقوية preflight وشرائح API وCN search fallback: لم يعد provider preflight يتبع redirect (#404، يغلق #402، شكراً @SyntaxSawdust)، وانتقلت بقية API routes إلى focused modules (#387، supersedes #383-#386، شكراً @shadowinlife). يشمل CN web-search fallback الآن Alibaba Cloud IQS (#408، شكراً @sambazhu). وأضافت cleanup من الصيانة اختبارات no-network fallback وتنظيف EOF whitespace (fbac74f)؛ وأصبح main CI أخضر (run 28780619018).

  • 2026-07-05 ✅ إغلاق دفعة PR للمساهمين ونجاح Windows baseline: دُمجت اليوم أربعة PR غير draft اختيرت للمراجعة. لم تعد عمليات A-share mootdx batch pull تبتلع KeyboardInterrupt / SystemExit عبر bare except، ويمكن الآن إيقاف السحب الطويل بـ Ctrl+C بشكل صحيح (#399، يغلق #398، شكراً @shadowinlife). دُمجت أيضاً Settings route slice وحدود التبعيات المصححة عبر PR الأصلية مع حفظ credit للمساهمين (#382، #390، شكراً @shadowinlife و@aeonframework). أصبحت Windows baseline compatibility تعزل loader caches، وتجعل OAuth cache assertions واعية بالمنصة، وتتخطى اختبار fork-only mock واحداً على Windows، وتتجاوز proxy في MCP loopback fixtures (#401، شكراً @Elfsa-Miranda). Validation: 4701 passed, 47 skipped.

  • 2026-07-04 🧩 شرائح API routes، ودليل صيني للمبتدئين، وحدود تبعيات أكثر أماناً: انتقلت IM channel وSettings routes من api_server.py إلى src/api/channels_routes.py / src/api/settings_routes.py متابعةً لمسار #331 الضيق للتقسيم المعياري (#379، #382، شكراً @shadowinlife). أضيف إلى Wiki دليل صيني للمبتدئين غير المتخصصين في المالية (#393، شكراً @kadaliao)، وتحدّثت حدود Pillow / LangChain / LangGraph إلى مسار patched قابل للتثبيت (#390، شكراً @aeonframework).

  • 2026-07-04 🧹 تنظيف طوابع UTC الزمنية لمسارات الجلسات وAPI: تم إحكام إصلاح الطوابع الزمنية #395 بحيث تُصدر طوابع session وgoal وchannel وAPI قيم UTC واعية بالمنطقة الزمنية بصيغة ISO صريحة.

  • 2026-07-03 🛡️ Robinhood MCP refresh + API modularization + SSRF guard: يستخدم Robinhood Agentic Trading الآن أسماء MCP الحالية عبر generic reads وlive-runner plumbing وdefault read-only seeds واختبارات mandate-gate، كما يحترم interactive startup ترتيب البحث نفسه عن .env الذي يستخدمه provider loader (~/.vibe-trading/.env → agent/.env → $CWD/.env) (#391، يغلق #381 و#380). انتقلت System routes (/health و/correlation و/system/shutdown و/skills و/api) إلى src/api/system_routes.py كـ narrow API modularization slice تالية (#378، شكراً @shadowinlife). ترفض channel media SSRF defenses الآن أهداف CGNAT/mesh/non-global وQQ media redirect-to-internal قبل fetch (#389، شكراً @hobostay).

  • 2026-07-02 ⚡ Factor acceleration + safer runtime boundaries: تستخدم مسارات rolling factor الساخنة الآن fast paths عبر bottleneck/NumPy، وتتجنب موازاة alpha bench تمرير panel payload ضخم لكل worker مراراً، وأضيفت regression coverage لحسابات base equity (#376، يغلق #339، والعمل الأصلي من #342 بواسطة @shadowinlife). نُقلت Upload وShadow report routes من api_server.py الضخم كأول slice ضيق من API modularization، مع إبقاء #331 مفتوحاً (#375، مبني على #358، شكراً @shadowinlife). ترث عمليات generated backtest الفرعية الآن بيئة allowlist فقط بدلاً من parent secrets surface الكامل (#374، يغلق #332)، وحصلت IM channels على /new session reset وأوامر pairing غير حساسة لحالة الأحرف (#372، يغلق #371، شكراً @shadowinlife).

  • 2026-07-01 🧹 Security polish + tracker cleanup: شُدِّدت defaults الخاصة بـ API/Docker/frontend dev، واستقرت Settings channel وzh-CN edges، وأُزيلت frontend dependency/CSP alerts، ونُظِّفت عناصر WhatsApp + paper-trading القديمة من tracker (#338، #351، #349، #365، #367، #350، #335، #283).

  • 2026-06-30 💬 بيئة تشغيل قنوات IM لتسليم الأبحاث: يستطيع Vibe-Trading الآن وصل بيئة تشغيل جلسة agent نفسها بـ 16 محوّلاً مدمجاً للرسائل — WebSocket وTelegram وSlack وDiscord وMatrix وWhatsApp وSignal وQQ/NapCat وWeChat/WeCom وFeishu/Lark وDingTalk وTeams وemail وMochat. تغطي CLI (vibe-trading channels status/start/stop/login/pairing) وREST (/channels/status و/channels/start و/channels/stop و/channels/pairing/command) ولوحة Web UI Settings الحالة وتلميحات الاسترداد والبدء/الإيقاف وsender pairing؛ وتبقى المحولات المعتمدة على SDK خلف extras مثل vibe-trading-ai[telegram] أو vibe-trading-ai[channels] (#341).

  • 2026-06-29 🛡️ Live advisory safety + Trading 212 read-only connector + Windows/Gemini fixes: live order guards now have an opt-in, broker-agnostic PreTradeAdvisoryInterface that records advisory reviews without bypassing the mandate gate, kill switch, or audit trail (#328, closes #317, thanks @shadowinlife). Trading 212 joins the connector layer with read-only account, positions, orders, history, and instrument-metadata support; place_order / cancel_order still hard-refuse until a structural paper/live boundary exists (#321, closes #309, thanks @mvanhorn). Windows startup avoids the pandas 3.0 Timestamp crash via the <3.0.0 constraint (#329, closes #324, thanks @hannibal-lee); Gemini thought_signature dict-history replay was verified/fixed on main (#318); .US financial statements now route to SEC EDGAR instead of Eastmoney (#325); and the Alpha Library landing page got cache/date/selector/noscript/DNS-prefetch hardening while heavier CSP and social-card follow-ups stay tracked (#323).

  • 2026-06-28 🧰 أوامر setup/dev عبر المنصات + تقوية runtime وأدوات الملفات: يتعامل vibe-trading setup وvibe-trading dev الآن مع بناء TypeScript على Windows، وتشغيل backend من cwd الصحيح، واستخدام منفذ Vite 5899، وإغلاق العمليات الفرعية بنظافة عند الخروج (#292، شكراً @digger-yu). كما أصبح polling لحالة Runtime يتدهور بأمان بدل الانهيار (#322)، وتُنظَّف مفاتيح cache الخاصة بـ MCP OAuth (#313)، وشُدِّدت defaults الخاصة بـ OpenAI والتحقق من Robinhood agent.json (#319، #320، شكراً @mvanhorn)، وحصلت أدوات الملفات على read/write roots منفصلة واختبارات sandbox أوسع (#299، شكراً @skloxo).

  • 2026-06-27 🧯 مرونة content-filter + تنظيف عقد features في Shadow Account: أصبحت تشغيلات event-driven وswarm تتجاوز إصابات content-moderation الفردية من LLM، وتعرض تحذيراً في run cards عندما ترتفع معدلات الفلترة، وتتعرف على أسباب Gemini safety finish بدلاً من إيقاف التحليل كاملاً (#308، يغلق #307، شكراً @shadowinlife). كما تشترك مراحل استخراج Shadow Account وتوليد الكود في عقد PRICE_FEATURES واحد وتحافظ على حدود العوائد بأربع منازل عشرية، ما يمنع drift بين القاعدة والكود وفقدان دقة prior_5d_return (#316، شكراً @Robin1987China).

  • 2026-06-26 🎯 دخول مشروط لـ Shadow Account + توجيه tushare لـ ETF/المؤشرات/هونغ كونغ: أصبحت قواعد Shadow Account المستخرجة تحمل نطاقات RSI / العائد السابق، فيدخل SignalEngine المُولَّد بناءً على شروط حقيقية (RSI ضمن النطاق، والعائد السابق ضمن النطاق) بدلاً من تكرار وتيرة الاحتفاظ بشكل أعمى (#314، متابعة لـ #302، شكراً @Robin1987China). كما يوجّه loader الخاص بـ tushare صناديق ETF/LOF إلى fund_daily()، والمؤشرات إلى index_daily()، وأسهم هونغ كونغ إلى hk_daily() بدلاً من استدعاء daily() الذي يعيد فراغاً بصمت لغير الأسهم، مع تحذيرات لكل رمز عن النتائج الفارغة والجلب الجزئي (#315، يغلق #310، شكراً @shadowinlife).

  • 2026-06-25 🧪 JSON صارم للتحقق + سياق agent أهدأ: أصبح مسار التحقق المستقل للاختبار الخلفي يطبّع قيم NaN / Infinity المتداخلة قبل كتابة artifacts/validation.json أو stdout في CLI، فلا تتعطل parsers الصارمة أمام payload التحقق (#306، شكراً @gyx09212214-prog). كما صار prompt الخاص بالـ agent يستنتج عدد مصادر البيانات الحالي من loader registry، ولا تعمل _microcompact() إلا عند وجود ضغط tokens حقيقي، فلا تُمسح نتائج الأدوات القديمة مبكرًا في التشغيلات القصيرة (#296، يغلق #282، شكراً @MarkfuGod).

  • 2026-06-24 🎯 سياق سعري لـ Shadow Account + واجهة صينية تفاعلية + إصلاح auth على LAN: أصبح استخراج قواعد Shadow Account يرى سياق الدخول الآمن point-in-time — entry_rsi14 وprior_5d_return عبر loader registry عند buy_dt — مع تدهور graceful عند عدم توفر الشبكة أو البيانات (#302، متابعة لـ #295، شكراً @Robin1987China). كما انتقلت اللوحات الرئيسية في Web UI إلى ترجمات English / zh-CN تفاعلية عبر charts وchat وAlpha Library وCorrelation وRun Detail (#301، شكراً @skloxo). وبعد تحصين CSRF، عادت deployments البعيدة same-origin التي تضبط API_AUTH_KEY إلى دعم POST / upload، بينما تبقى origins المتقاطعة غير المطابقة محظورة (#304، شكراً @Hinotoi-agent).

  • 2026-06-23 🛡️ تحصين CSRF لواجهة API المحلية: لم يعد بإمكان صفحة ويب خبيثة إرسال طلبات cross-site غير آمنة (POST/PUT/DELETE) إلى واجهة loopback — فـ CORS يمنع قراءة الاستجابة لكنه لا يمنع الأثر الجانبي، لذا أصبحت ثقة dev-mode الخاصة بـ loopback تطبّق حارس cross-site الحالي على الطرق غير الآمنة قبل منحها الثقة. الطرق الآمنة ورفع الملفات عبر CLI المحلي / غير المتصفح غير متأثرة (#293، شكراً @Hinotoi-agent).

  • 2026-06-22 🔧 إصلاح OAuth لتفويض التداول الحي + إصلاح عنوان Alpha Zoo: يُبقي connector authorize الآن مصافحة OAuth مفتوحة طوال تسجيل دخول الوسيط الذي قد يستغرق دقائق (قابل للضبط عبر VIBE_LIVE_AUTHORIZE_TIMEOUT_SECONDS)، ولم يَعُد يُشغِّل خادم callback منافسًا عند إعادة المحاولة، فأصبح الرمز يُحفَظ فعلاً (#281، يغلق #259، شكراً @Robin1987China). ولم تَعُد صفحة Alpha Zoo تعرض عدد الـ alpha مرتين (#287، يغلق #286، شكراً @digger-yu). كما حصلت الأبحاث المجدولة على وثائق استخدام شاملة (#288).

  • 2026-06-21 ⏰ مُنفِّذ الأبحاث المجدولة + مكتبة التقارير + إسناد ما بعد الاختبار الخلفي: تعمل الأبحاث المجدولة الآن من طرف إلى طرف — مُنفِّذ خلفي مُعطَّل افتراضيًا (VIBE_TRADING_ENABLE_SCHEDULER) يُشغِّل المهام المستحقة وفق interval/cron عبر بيئة تشغيل الجلسة (#278، شكراً @mvanhorn، يغلق #254). وتَسرُد صفحة مكتبة التشغيل /reports الجديدة عمليات التشغيل ذات التقارير وتبحث فيها وتُرشِّحها، مع روابط إلى Run Detail + Compare (#224، شكراً @LemonCANDY42). وبعد كل اختبار خلفي يُجري الوكيل الآن إسنادًا متعدّد الطبقات — الرابحون/الخاسرون على مستوى الصفقة، وانحدار بيتا، وتحليل أنظمة السوق (regime)، واختبار مونت كارلو للتباديل — مشروطًا بتوفّر البيانات والتوجيه (#280، شكراً @shadowinlife).

  • 2026-06-20 🔬 اكتمال حلقة Research Autopilot (المرحلة 3) + حارس سلامة OHLC على حدود المُحمِّل + 4 عوامل ألفا أكاديمية: أصبح Research Autopilot ينفّذ الفرضية → محرّك الإشارة → الاختبار الخلفي من طرف إلى طرف — حيث يكتب scaffold_signal_engine محرّكًا مطابقًا لعقد runner، ويعيد link_autopilot_backtest مقاييس التشغيل تلقائيًا إلى الفرضية (68 أداة) (#267). ويُسقط فحص سلامة OHLC البنيوي الأشرطة المعيبة (high < low، الأسعار غير الموجبة، وعدم إحاطة high/low بـ open/close) مركزيًا عند حدود المُحمِّل، بما يحمي كل مصادر البيانات (#274، شكراً @Shizoqua). كما تتوسّع عائلة عوامل ألفا الأكاديمية من 6 إلى 10 — انعكاس Jegadeesh، وقمة 52 أسبوعًا لـ George-Hwang، وانعدام سيولة Amihud، والتواء Harvey-Siddique (456 عاملًا) (#277، شكراً @Robin1987China).

  • 2026-06-19 🚀 v0.1.10 — طبقة بيانات عالمية: تنمو مصادر بيانات السوق من 10 إلى 18 (مجانية Eastmoney / Sina / Stooq / Yahoo + محكومة بمفتاح Finnhub / Alpha Vantage / Tiingo / FMP، مع fallback مرتّب حسب خطر حظر الـ IP)، إضافةً إلى 18 أداة بيانات للقراءة فقط (تدفق الأموال، لوحة التنين والنمر، التدفق الشمالي، التداول بالهامش، الصفقات الكتلية، SEC EDGAR + XBRL، القوائم المالية، سلاسل الخيارات، فرز كامل السوق…) عبر الأسهم الصينية / الأمريكية / هونغ كونغ، وكلّها مكشوفة عبر MCP. تتضمّن هذه الإصدارة أيضًا كل تحديثات ما بعد 0.1.9 —— 10 موصّلات وسطاء، وalpha compare، وإصلاح موثوقية المزوّدين، وذاكرة تخزين بيانات اختيارية. pip install -U vibe-trading-ai

  • 2026-06-18 🔬 المرحلة الأولى من Research Autopilot + محمّل Data Bridge محلي، إضافةً إلى تنبيه أمني بشأن Discord: تربط أداتا run_research_autopilot وgenerate_backtest_config الجديدتان مسار Hypothesis → Research Goal → backtest من طرف إلى طرف (الآن 50 أداة)، ويقرأ محمّل local الجديد بيانات OHLCV مباشرةً من ملفاتك CSV / Parquet / DuckDB (#260، #252، شكراً @Robin1987China)، إضافةً إلى تحليل استدعاءات أدوات DeepSeek DSML ودفعة لتقوية احتواء المعرّفات. ⚠️ تنبيه أمني: دعوة المجتمع القديمة على Discord تشير الآن إلى خادم لا نتحكم به (تصيّد بانتحال "تحقّق" محفظة Collab.Land) — أُزيلت بالكامل، وخادم HKUDS (discord.gg/6TdQnT5xcF) هو Discord الرسمي الوحيد. لن نطلب منك أبداً ربط محفظة.

  • 2026-06-17 🧩 توافق التثبيت + إصلاحات مزوّدي Opus/Kimi: لم يعد التثبيت الأساسي pip install vibe-trading-ai يجلب سلسلة الاعتماد الاختيارية pyharmonics / ta؛ أصبح كشف الأنماط التوافقية خلف extra باسم vibe-trading-ai[harmonic] مع بقاء detector المضمّن متاحاً (#250، يغلق #249). ولم يعد Agent loop يرسل رسائل assistant-prefill handoff التي يرفضها Opus 4.8+، كما يمكن لـ Kimi/Moonshot تجاوز User-Agent عبر MOONSHOT_USER_AGENT (#248، يغلق #246 و#204)؛ وتغطي اختبارات المتابعة مساري background-result وauto-compact handoff مباشرة (#251).

  • 2026-06-16 🛡️ تعزيز الأمان/API + alias لـ GLM/Zhipu: تتطلب كتابات Settings المصادقة عند تفعيلها (#245)؛ وتتطلب أدوات shell-capable في جلسات API تفعيلًا صريحًا عبر VIBE_TRADING_ENABLE_SHELL_TOOLS=1 (#243)؛ ويتطلب local shutdown المصادقة عند ضبط API key (#241)؛ وتُرفض Host التي تبدو كـ loopback لكنها غير موثوقة بدل معاملتها كمحلية (#242). كما صُقلت تفاصيل التشغيل: يتزامن Web chat مع المحاولات المكتملة (#236)، وتُصدر run cards صيغة strict JSON للمقاييس غير المنتهية (#238)، وتتراجع قيم RSSHUB_TIMEOUT_S / RSSHUB_FETCH_BUDGET_S المشوهة بأمان (#240)، وثُبّت fallback إعادة المحاولة في ddgs باختبار انحدار (#239). وأصبح GLM/Zhipu alias من الدرجة الأولى مع استنتاج اسم النموذج (#247، يغلق #237).

  • 2026-06-15 🧭 متانة بحث الويب + إصلاحات استمرارية التشغيل في واجهة الويب: لم يعد web_search يفشل عند تقييد مزوّد بحث واحد——إذ يستعلم الآن عدة محركات مجانية بلا مفاتيح بالترتيب (DuckDuckGo، Google، Bing، Brave، Mojeek، Yahoo) مع إعادة محاولة/تراجع، ويعامل "لا نتائج" كإجابة فارغة لا كخطأ، ويعيد رسالة قابلة للتنفيذ بدل ❌ مجرّدة عندما تُقيَّد كل المحركات (يمكن تجاوز قائمة المحركات عبر VIBE_TRADING_SEARCH_BACKENDS) (#232، يغلق #231، شكراً @Ethan-sun01). وفي واجهة الويب، لم يعد تبديل الصفحات أثناء التشغيل يُجمِّده——إذ تعيد المحادثة الاشتراك في البث الحي وتعيد تشغيل التقدّم الفائت عند العودة (#234)——وأصبح زر الإيقاف يسري أثناء البث وبين الأدوات لا عند حدود التكرار فقط (#235)، ما يغلق شِقَّي #229 (شكراً @kalkinj). كما أصبح محمّل baostock يقبل الرموز الأصلية sh.601398 / sz.000001 إلى جانب صيغة tushare 601398.SH (#230، شكراً @bhlt).

  • 2026-06-14 📊 استهلاك التوكنات لكل تشغيل + تحميل رسوم Run Detail عند الطلب: أصبح كل تشغيل agent يحفظ استهلاك التوكنات المُبلَّغ من المزوّد كملف llm_usage.json على مستوى التشغيل——المزوّد/النموذج، والإجماليات التراكمية، والعدّ لكل تكرار——ويُعرَض إضافيًا على /runs/{id}، بحيث تبقى تكلفة التوكنات قابلة للتدقيق بعد انتهاء التشغيل واختفاء البث الحي (قيم المزوّد فقط؛ بلا التقاط prompt/محتوى ولا تقدير سعر) (#223، شكراً @LemonCANDY42). كما لم تعد صفحة Run Detail تُحمّل شموع كل الرموز مقدمًا: تبقى استجابة /runs/{id} الافتراضية دون تغيير، لكن الواجهة الآن تعرض ملخّص التشغيل أولًا ثم تُحمّل رسم كل رمز عند الطلب عبر وضعَي ?chart_payload=summary / ?chart_symbol= الاختياريين، مع حالة تحميل لكل رمز وزر "تحميل الكل مع شريط تقدّم" (#225، شكراً @LemonCANDY42). ويُختتم ذلك بإصلاحين في الـ loader: لم تعد حدود end الحصرية في yfinance تُسقِط آخر يوم تداول في النطاق المطلوب——إذ يمرّر الاستدعاء الآن end + يوم واحد بينما تحتفظ مفاتيح الكاش بالنطاق الأصلي (#226، شكراً @gyx09212214-prog)——وأصبحت القيمة المُشوَّهة لـ CCXT_TIMEOUT_MS / OKX_TIMEOUT_S تُصدر تحذيرًا وتعود إلى قيمتها الافتراضية بدل أن ترفع استثناءً عند الـ import وتعطّل الإقلاع (#227، شكراً @gyx09212214-prog).

  • 2026-06-13 ↩️ استئناف جلسة سابقة بالمعرّف من سطر الأوامر: أصبحت واجهة CLI التفاعلية تطبع session-id عند الخروج، مع تلميح قابل للنسخ vibe-trading resume <session-id>——فلم يعد العثور على trace لتشغيل منتهٍ يتطلّب تخمين أي مجلد تحت agent/sessions/ هو الأحدث زمنياً. الأمر الفرعي الجديد vibe-trading resume <session-id> يعيد فتح تلك الجلسة بالذات ويعيد تشغيل أحدث أدوارها في الـ loop؛ والمعرّف غير الموجود يفشل فوراً بدل بدء جلسة فارغة بصمت (#218، شكراً @zwrong).

  • 2026-06-12 🩺 إصلاح شامل لموثوقية المزوّدين——تعليق DeepSeek، الوصول إلى Kimi، حيوية البث: مجموعة من البلاغات——تشغيلات DeepSeek عالقة عند "Agent is working…" (#208، شكرًا @XYWOX)، رسالة reached max iterations تخفي استجابات نموذج فارغة (#203، شكرًا @mojianliang)، واجهة لا تتعافى بعد التوقف (#195، شكرًا @mafia23)، وKimi يرفض العميل (#204، شكرًا @liao497)——تشترك في جذر واحد: كل مزوّد متوافق مع OpenAI كان يمر عبر طبقة واحدة تطبّق خصوصيات DeepSeek/Kimi/Gemini عالميًا وتبتلع أخطاء البث بصمت. أصبح السلوك الخاص بكل مزوّد الآن في طبقة قدرات صريحة——التقاط/إعادة إرسال reasoning، وتوقيعات Gemini الفكرية، وUser-Agent الخاص بـ Kimi، وجسم reasoning في OpenRouter، كلٌّ مقيّد بمزوّده ولا يلوّث غيره. تُظهر تدفقات reasoning مؤشر "Reasoning…" حيًّا بدل الصمت؛ ويرفع فشلُ البث خطأ provider_stream_error سياقيًا مع إعادة محاولة واحدة للانقطاعات العابرة (أخطاء 4xx الحتمية تفشل فورًا) بدل التراجع الصامت إلى استدعاء غير متدفق بطيء؛ وتُشخَّص الاستجابة الفارغة كـ empty_model_response بدل "max iterations"؛ ولم تعد نبضات SSE تكسر إعادة التشغيل عند إعادة الاتصال؛ وتنتهي مهلة الأداة القارئة العالقة بدل الاختباء خلف النبضات للأبد. الأمر الجديد vibe-trading provider doctor يطبع لقطة مموَّهة للمزوّد/النموذج/الحزم/الوكيل لتشخيص التعليق البيئي بأمر واحد. يمكن لمستخدمي DeepSeek تفعيل المحوّل الأصلي الرسمي عبر pip install "vibe-trading-ai[deepseek]"، ويُطبَّق متطلب temperature=1 لنماذج kimi-k2.x تلقائيًا——مسار Kimi مُتحقَّق منه نهايةً إلى نهاية مقابل الـ API الحقيقي (استدعاء أدوات + إعادة إرسال reasoning متعدد الأدوار الصارم على kimi-k2.6).

  • 2026-06-11 🐝 أصبح عمّال swarm يجلبون بيانات السوق عبر طبقة الـ loader: كشف تشغيل للجنة الاستثمار على NVDA سلسلة من الثغرات——كان العمّال يكتبون سكربتات yfinance مرتجلة، ويثقون بشمعة أخيرة معطوبة (حجم تداول موجود لكن OHLC فارغة)، وتسرّب NaN إلى JSON غير صارم، وأعاد prompt المتابعة الفاقد للسياق التوجيه إلى preset خاطئ (#198، شكراً @BillDin على التشخيص الممتاز والإصلاحين). أصبح لدى عمّال swarm الآن أداة get_market_data محلية مدعومة بنفس سجلّ الـ loaders المُطبَّع الذي يستخدمه MCP——JSON صارم، والأعداد غير المنتهية تُسلسَل كـ null——موصولة بـكل preset لبيانات السوق (21 عاملاً عبر 13 preset) مع سياسة prompt توجّه أعمال OHLCV نحو الأداة أولاً (#199)؛ ويقبل run_swarm معامل preset_name صريحاً ويرفض مقاطع المتابعة الغامضة بدلاً من السقوط بصمت إلى equity_research_team (#200). وصار التأريض أذكى أيضاً: رمز سهم أمريكي مجرّد مثل NVDA في prompt السرب يُرقّى إلى NVDA.US (بحماية كلمات استبعاد)، فيبدأ العمّال من أسعار مرجعية مُسبقة الجلب. وتنضم الأداة إلى سجلّ الـ agent الرئيسي أيضاً——48 أداة الآن. إضافة إلى ذلك: بيانات Docker تبقى الآن بعد التحديثات——الذاكرة الدائمة وفهرس بحث الجلسات والمهارات التي أنشأها المستخدم وحسابات الظل وإعدادات الوسيط كلها في وحدات تخزين مسماة، فلم يعد docker compose up --build يمسحها (#197، شكراً @FlyerJ).

  • 2026-06-10 🐳 يصل Docker إلى Ollama على المضيف مباشرة دون إعداد: داخل الحاوية يشير localhost إلى الحاوية نفسها، لذا كان OLLAMA_BASE_URL=http://localhost:11434 الافتراضي يُفشِل الفحص المسبق للـ LLM في كل تركيبة Docker + Ollama. أصبح docker-compose.yml يشير افتراضياً إلى http://host.docker.internal:11434 (يمكن التجاوز بتصدير OLLAMA_BASE_URL) ويضيف تحويل host-gateway في extra_hosts بحيث يعمل الملف نفسه على Linux كما على Docker Desktop (#196، شكراً @ShahNewazKhan).

  • 2026-06-09 🔑 رسالة خطأ أوضح عند فتح واجهة الويب من جهاز آخر: عند الوصول إلى المحادثة من عميل غير loopback (جهاز آخر، أو مضيف جهاز افتراضي، أو هاتف على شبكتك المحلية) دون ضبط API_AUTH_KEY، كانت كل النقاط الحساسة——إرسال رسالة، قائمة الجلسات، حالة live——تُعيد 403، لكن المحادثة كانت تعرض فقط رسالة عامة «Failed to send message, please retry.». أصبح مسار الإرسال الآن يُظهر السبب الحقيقي——«Remote API access requires an API key. Add it in Settings, or run the backend on localhost for local-only use.»——كما يوضّح إعداد واجهة الويب في README الفرق بين localhost والشبكة المحلية والحلول الثلاثة (التصفّح عبر localhost على نفس الجهاز؛ ضبط API_AUTH_KEY وإدخاله مرة في Settings؛ أو VIBE_TRADING_TRUST_DOCKER_LOOPBACK=1 لبوابة مضيف Docker Desktop) (#191، شكراً @mafia23).

  • 2026-06-08 🔧 إصلاح استدعاء الأدوات متعدد الأدوار في Gemini 3.x: يكتمل بهذا إصلاح نماذج التفكير Gemini 3.x. غطّى تبادل 6/05 (#176) السجلّ في الذاكرة فقط، لكن حلقة الـ agent الفعلية تعيد تشغيل السجل على هيئة dict بصيغة OpenAI حيث كانت LangChain تُسقِط thought_signature لكل استدعاء أداة قبل بناء الطلب——فظلّت استدعاءات الأدوات متعددة الأدوار تفشل بـ missing thought_signature (خطأ 400). أصبح يُعاد إرفاقه الآن عند نقطة الاختناق الوحيدة _convert_input التي يمر بها كل من invoke وstream (بما في ذلك الاستدعاءات المتوازية، حيث يُوقّع الأول فقط من بين N) (#184، شكراً @ngoanpv).

  • 2026-06-07 🐝 حالة swarm حيّة في مسار المحادثة: عندما يُطلق الـ agent سربًا متعدد الوكلاء (لجنة الاستثمار، مكتب الكَمّ، لجنة المخاطر، …)، تعرض المحادثة الآن بطاقة حالة مضمّنة تبث حالة كل worker——انتظار / تشغيل / اكتمال / فشل / محظور / إعادة محاولة——في الوقت الفعلي، بنفس وضوح كل وكيل الذي توفّره لوحة swarm المستقلة. تُجسّر أحداث وقت التشغيل إلى تدفّق SSE للجلسة دون تغيير واجهة /swarm/runs القائمة، وتُستعاد البطاقة المنتهية من نتيجة run_swarm النهائية عند إعادة الاتصال أو إعادة تشغيل السجل (#188، شكراً @BillDin). وصار توجيه الـ preset أدقّ: إذ يتقدّم الـ preset المُسمّى صراحةً (مثل investment_committee، بشرطة سفلية أو بدونها) على ترتيب الكلمات المفتاحية، ولم تعد الكلمة IV للمشتقات تُطابِق خطأً داخل كلمات عادية مثل «given» (#189، شكراً @BillDin).

  • 2026-06-06 ⚖️ مقارنة Alpha — عبر CLI وWeb UI وREST وagent: يقارن alpha compare الجديد قائمة مختارة يدويًا من عوامل Alpha Zoo بعضها ببعض على نفس universe والفترة، ثم يرتّبها حسب متوسط/انحراف IC وIR ونسبة IC>0 أو عدد العينات — مع إظهار فجوة كل عامل عن المتصدّر. وخلافًا لـ bench لكامل الـ zoo، فإنه يقيّم العوامل التي تسمّيها فقط (مرشّح المجموعة الجزئية الجديد run_bench(only=…))، فمقارنة ثلاثة عوامل لم تعد تُشغّل كل الـ 191 في الـ zoo. نواة مشتركة واحدة تشغّل كل الواجهات: vibe-trading alpha compare <id1> <id2> … --sort ir (CLI)، وعرض Compare في واجهة Alpha Zoo على الويب (حدّد العوامل في الكتالوج → مقارنة بنقرة واحدة مع جدول ترتيب متدفّق)، وPOST /alpha/compare + SSE (REST)، وأداة alpha_compare للـ agent للقراءة فقط (47 أداة الآن).

  • 2026-06-05 🇮🇳 connectors لـ Dhan + Shoonya (الهند) — 10 وسطاء إجمالاً: تضيف طبقة التداول التي تعتمد أولاً على connectors وسيطين هنديين هما Dhan وShoonya (أسهم NSE/BSE + المشتقات F&O)، ليصبح الإجمالي عشرة وسطاء. كلاهما paper + قراءة فقط — كما هي حال Longbridge، لا تكشف واجهتاهما عن مميِّز زمن تشغيل بين paper وlive، لذا يرفض place_order / cancel_order أي إعداد غير paper من السطر الأول (القاعدة: أي وسيط بلا حارس بنيوي paper/live يُقيَّد إلى paper + قراءة فقط) (#181، يغلق #174). كما تُصلح هذه الدورة نماذج التفكير Gemini 2.5 / 3.x: صار thoughtSignature لكل استدعاء أداة يُعاد تمريره عبر المسار المتوافق مع OpenAI، فلم تعد استدعاءات الدوال متعددة الأدوار تفشل بـ INVALID_ARGUMENT (#176، يغلق #170، شكراً @mvanhorn و@jliu6789). وأُضيفت docstrings صينية إلى جميع عوامل Alpha Zoo البالغة 452 (#180، شكراً @LeeCQiang)، وانضمت إلى CI حزمة اختبارات للواجهة الأمامية (197 اختبار vitest) إضافة إلى اختبارات أمان للواجهة الخلفية تغطي المصادقة / اجتياز المسارات / CORS (#175، شكراً @sambazhu).

  • 2026-06-04 🗃️ تخزين مؤقت محلي اختياري لجميع مصادر البيانات السبعة: مفتاح جديد VIBE_TRADING_DATA_CACHE يتيح لكل loader للاختبار الخلفي——tushare وokx وccxt وakshare وmootdx وyfinance وfutu——تخزين الأشرطة التاريخية المستقرة مؤقتاً ضمن ~/.vibe-trading/cache (المجلد الرئيسي للمستخدم، ولا يُكتب أبداً داخل المستودع)، بحيث تتخطى عمليات الاختبار الخلفي المتكررة والطويلة المدى / عبر الأسواق الشبكة وتتجنب حدود معدّل المزوّد. معطّل افتراضياً. تتخطى محمّلات الدُّفعات والاتصال (yfinance، futu) التنزيل المجمّع / اتصال FutuOpenD بالكامل عند إصابة المخزن المؤقت كلياً، ولا يخزّن حارس القِدَم أبداً نطاقاً ينتهي اليوم (شريطه الأخير ما زال قيد التكوين)، وتعود الإطارات المخزّنة مطابِقة بايتاً ببايت لما يُجلب حديثاً (#177، شكراً @mvanhorn). كما وصل دليل مساهمين جديد للـ PRs المدعومة بالذكاء الاصطناعي / الأتمتة، يوضّح الفحوص المحلية الآمنة والأسطح عالية الخطورة لـ broker/MCP/بيانات الاعتماد (#173).

  • 2026-06-03 🧹 فرز المجتمع + ربط التتبع: تحمل الآن إدخالات تتبع استدعاء الأدوات call_id الأصلي، بحيث يمكن مطابقة tool_result مع tool_call المقابل عند إعادة تشغيل تتبع التشغيل — وتبقى معاينات الوسائط مقتطعة للحفاظ على صغر حجم ملفات التتبع (#168، شكراً @zwrong). لم تعد تعليقات الكود المصدري تشير إلى مسار وثائق داخلي لا يستطيع المساهمون الخارجيون العثور عليه (#166، شكراً @jaleelpersonal). كما تم توضيح أن تحذير محلّل تبعيات langchain-community أثناء التثبيت هو مجرد إشعار غير ضار عن حزمة متبقية وليس فشلاً (#167)، وتم تنظيم معالجة ذهاب وإياب thoughtSignature لاستدعاءات الدوال في Gemini 2.5/3.0 كمهمة help wanted مع خطة إصلاح كاملة (#170، شكراً @jliu6789).

  • 2026-06-02 🔌 ستة connectors وسطاء جديدة (Tiger / Longbridge / Alpaca / OKX / Binance / Futu): تكتسب طبقة التداول التي تعتمد أولاً على connectors ناقلاً مباشراً عبر SDK إلى جانب IBKR (محلي) وRobinhood (MCP). يكشف كل connector عن حساب / مراكز / أوامر / quote / تاريخ للقراءة فقط، بالإضافة إلى وضع أوامر على حساب PAPER — اختبر استراتيجياتك عبر حسابات paper الخاصة بهؤلاء الوسطاء. كما يدعم خمسة منها (Tiger وAlpaca وOKX وBinance وFutu) وضع أوامر محدوداً ومحكوماً بـ mandate خلف نفس نموذج السلامة المطبّق على Robinhood: mandate يلتزم به المستخدم (نطاق الرموز / حجم الأمر / التعرّض / الرافعة / الحد اليومي)، وkill switch على مستوى الملفات، وبوّابة استباقية قبل التداول تُغلَق عند الفشل، وسجل تدقيق كامل. أما Longbridge فهو للقراءة فقط + paper حصراً (لا تكشف واجهته عن مميِّز زمن تشغيل بين paper وlive). كل تمييز بين paper وlive هو حارس بنيوي خاص بكل وسيط. أدوات جديدة trading_place_order / trading_cancel_order؛ وأُضيفت فئتا الأصول HK وأسهم A إلى universe الخاص بـ mandate. تجريبي / الاستخدام على مسؤوليتك.

  • 2026-06-01 🚀 إصدار v0.1.9 (pip install -U vibe-trading-ai): يجمع كل ما استُجد منذ 0.1.8. ملفات وسطاء تعتمد أولاً على connectors (IBKR محلي للقراءة فقط من TWS / IB Gateway + Robinhood Agentic Trading خلف OAuth وmandate مُلتزم وorder guard وسجل تدقيق وhalt فوري). زمن تشغيل Research Goal عبر CLI / REST / MCP / Web. تحديث swarm — reconcile حيّ + إبقاء MCP حياً، وأدوات MCP لعمّال swarm يضبطها المشغّل، وتحكم عشوائي صارم في alpha-bench، وretry_run جديد لإعادة تشغيل runs الفاشلة/القديمة (الآن 36 أداة MCP). إعادة هيكلة حزمة agent/cli/ مع واجهة طرفية محدّثة، ومحمّل mootdx لأسهم A بدون توكن، وجولة متانة عبر backtest / agent loop / sessions. أصبح --version يطابق دائماً الحزمة المثبّتة، مصلحاً انحراف 0.1.8 (#156).

  • 2026-05-31 🔌 بنية وسطاء تعتمد أولاً على connectors (IBKR + Robinhood): يبدأ الوصول إلى التداول الآن من connector profile قابل للاختيار، لا من مداخل منفصلة للوسيط أو live. أوامر vibe-trading connector list/use/check/account/positions/orders/quote/history وأدوات MCP trading_* تشترك في نفس profile المحدد، حيث تكون paper/live مجرد خاصية ضمن connector. يمكن استخدام IBKR فوراً عبر profile محلي للقراءة فقط من TWS / IB Gateway، بينما يُزرع مسار MCP الرسمي البعيد لـ IBKR كتحقق OAuth بنطاق mcp.read إلى أن تتوفر أسماء أدوات قراءة مستقرة. يظل Robinhood Agentic Trading هو connector MCP حيّاً ومحدوداً خلف OAuth وmandate مُلتزم وorder guard وسجل تدقيق وhalt فوري.

  • 2026-05-30 🧰 جولة متانة — backtest وagent loop وsession: تمرّ الآن signal engines المولّدة بواسطة LLM بتحقق مسبق من الواجهة قبل الإنشاء، فتلتقط مبكراً الأخطاء الشائعة مثل self-import الدائري، وغياب generate()، ووسائط __init__ بلا قيم افتراضية، ونوع الإرجاع الخاطئ، وتُرجِع أخطاء JSON قابلة للتنفيذ بدل traceback خام (#149)؛ ومتابعةٌ لاحقة توجّه أخطاء تحقق AST على مستوى المصدر عبر نفس مغلّف JSON النظيف. لم يعد agent loop يستنزف الخمسين تكراراً ليصل إلى حالة failed بلا أي مخرجات — فهو يحاكي أسلوب swarm worker المُجرَّب: يحقن wrap-up nudge عند 80% من ميزانية التكرار ويُسقط تعريفات الأدوات في التكرار الأخير لفرض إجابة نصية (#148)، مع حارس يجعله يُطلَق في المنتصف فقط كي لا يزيح سياق research-goal. كتابة رسائل الجلسة تجري الآن flush + fsync بعد كل append حتى تنجو ردود الـ AI الباهظة من تعطّل أثناء الكتابة، ويتخطّى مسار القراءة أسطر JSONL التالفة (مع تسجيل أول 200 حرف للاسترداد) بدل إعطاء 500 لنقطة /messages كاملة (#147). كما أصلح محرّر الإدخال في الويب معالجة Enter مع IME بحيث لا يؤدي Enter لتأكيد التركيب إلى إرسال في منتصف الكلمة (#146).

  • 2026-05-29 🔐 دعم Robinhood Agentic Trading (اختياري، استقلالية محدودة): أُضيف دعم Robinhood Agentic Trading (MCP عن بُعد، OAuth). مُعطَّل وللقراءة فقط افتراضياً؛ ويتداول الوكيل تلقائياً فقط ضمن mandate يلتزم به المستخدم (الرموز / حجم الأمر / التعرّض / الرافعة / الحد اليومي)، مع kill switch فوري على مستوى الملفات، وتصفية استباقية للمراكز، وانتهاء صلاحية تلقائي لـ mandate، وسجل تدقيق كامل، و runner مستقل دائم. لا حفظ للأموال ولا تشغيل لمنصة تداول — الوسيط يحتفظ بالأموال وينفّذ، ونحن ننقل النية فقط. تجريبي / الاستخدام على مسؤوليتك.

  • 2026-05-28 🧪 سلامة Swarm + بوّابة alpha صارمة + MCP لعمّال swarm: يحجب Swarm DAG الآن المهام المتفرعة عندما تفشل المهمة الأعلى (#145). دالة run_bench_strict() الجديدة تضيف فوق بوّابة IC تحكماً عشوائياً بنفس universe + قسمة train/test OOS لاصطياد العوامل التي تتبع beta السوق فقط (#143، شكراً @Soli22de). يستطيع عمّال Swarm الآن استدعاء أدوات من خوادم MCP خارجية يضبطها المشغل، مع تثبيت حدود الثقة باختبارات مخصصة (#142، شكراً @shadowinlife).

  • 2026-05-27 📊 مصدر بيانات A-share عبر mootdx + تحسين الإخراج: محمّل mootdx الجديد يتحدث بروتوكول 通达信 TCP الأصلي لبيانات OHLCV لأسهم A (بدون مصادقة، بدون قيود معدل لكل IP، يومي + intraday مع pagination تراجع بـ 25 صفحة)، ويُدرج بين tushare وakshare في سلسلة fallback (#107). محمّل CCXT يقرأ الآن HTTP_PROXY/HTTPS_PROXY/ALL_PROXY ليعمل جلب بيانات Binance/OKX العامة من الشبكات المقيدة (#126، شكراً @ruok808). عرض الإجابة النهائية أزال أيضاً فواصل --- الأفقية القبيحة بعرض كامل على CLI وWeb: يحث system prompt الآن agent على استخدام جداول markdown وعناوين ##، يجرّد CLI renderer أسطر HR المستقلة كدفاع متعمق، ويخفي chat bubble أي <hr> ينفذ عبر (#139، شكراً @sdwxm188).

  • 2026-05-26 ✅ إغلاق دورة حياة Research Goal: أصبح Goal mode يعمل كمنفّذ مهام حقيقي: إنشاء goal من Web UI ينشئ الجلسة أو يربطها ويرسل kickoff turn فوراً؛ يمكن متابعة active goals وتعديلها وإلغاؤها وإكمالها عبر Web/API/CLI/MCP؛ ويتقدم agent loop من لقطة goal الحالية (criteria وevidence وclaims وopen items) بدلاً من الاعتماد على prompt الأصلي فقط. عندما تكون criteria covered لكن goal لا يزال active، ينتقل النظام إلى audit/status update بدلاً من التوقف الصامت، مع تغطية انحدارية عبر backend وCLI وMCP وfrontend events.

  • 2026-05-25 🧼 واجهة Chat أنظف + سير composer: أصبحت واجهة Web UI تترك التركيز للمدخل التالي: انتقلت أوضاع upload وswarm وresearch-goal إلى قائمة + في composer بدلاً من لوحات عائمة تقاطع المحادثة. يظهر السياق النشط فوق حقل الإدخال كشرائح compact، ولا تتوسع تفاصيل goal إلا inline عند النقر على الشريحة. أزيلت طبقة i18n المخصصة القديمة لصالح نصوص إنجليزية مباشرة، وتظهر بطاقة Full Report فقط للتشغيلات ذات تقرير فعلي، كما أصبح تشغيل التطوير المحلي وتقارير الحالة أكثر ثباتاً لاختبارات browser smoke.

  • 2026-05-24 🎯 Research Goal runtime: أضيفت طبقة Research Goal مرتبطة بالجلسة عبر backend وCLI وAPI/MCP وSSE وWeb UI. تحفظ الأهداف claims وacceptance criteria وevidence rows وbudgets وcompletion policy؛ تستطيع agent tools إنشاء الأهداف وإضافة evidence؛ أصبح /goal مدخل CLI؛ تعرض REST/MCP لقطات goal وكتابات evidence؛ وتحافظ SSE على حداثة حالة chat clients. أغلقت إصلاحات audit اللاحقة مسارات verified evidence، ومنعت live-trading risk tiers عبر agent tools، وربطت goals المنشأة من CLI بالمنعطفات اللاحقة، ونظفت goal ledger عند حذف الجلسة، ووصلت replay-all، وأصلحت race في frontend snapshot بين الجلسات.

  • 2026-05-23 🖥️ تحديث CLI التفاعلي: تفتح واجهة الطرفية الآن ببانر Vibe-Trading أكبر، وفاصل prompt أوضح، وملخص للدورة السابقة، وتوقيت بعد التشغيل، ومسار نشاط بأسلوب Claude Code لعمل الوكيل الحي. تُعرض استدعاءات الأدوات، وجلب الويب/البيانات، وأفعال نمط shell، وإجابات Markdown، وجداول pipe كسجل أكثر قابلية للقراءة، بينما تحافظ تشغيلات pipe أو non-TTY على إخراج نصي مناسب للأتمتة. أصبحت لقطات CLI المولدة artifacts محلية بدلاً من ملفات docs ملتزم بها، مما يبقي المستودع أخف.

  • 2026-05-22 🧭 استعادة Swarm + إبقاء MCP حياً: أصبحت حالة Swarm تُصالح من ملفات المهام الحية عند كل قراءة، لذلك تستعيد عروض API/MCP/SSE/list التشغيلات التي تعطلت أو صارت stale بدلاً من عرض لقطة running للأبد. يرسل run_swarm نبضات MCP progress أثناء polling، مع إطار أول ثابت swarm_started run_id=<id> كي يستطيع العملاء استعادة المقبض بعد سقوط النقل؛ كما يصدر worker نبضات خلال LLM streaming وgrounding fetch وتنفيذ الأدوات. يستخدم stale-run reaper عتبات خاصة بكل run ويستنتج الحالة النهائية من حالات المهام. لم يعد SwarmTool يلغي team ما زال يعمل لمجرد انتهاء wait budget، ويمكن لعملاء MCP استدعاء reap_stale_runs() للتنظيف الصريح. حدّثت دفعة DX اليوم أيضاً النماذج الافتراضية للمزودين، وواءمت فحص CI syntax مع حزمة agent/cli/ الجديدة. تغطي 22 اختباراً انحدارياً جديداً hydration، واستعادة الحالات النهائية، وجمع التشغيلات stale، وإيقاع keepalive، وتحمل env parsing، وربط heartbeat؛ ومجموعة swarm/MCP الكاملة عند 169 passed و4 skipped.

  • 2026-05-21 🧱 إعادة هيكلة حزمة CLI: تقسيم agent/cli.py (3216 سطراً) إلى حزمة agent/cli/ — واجهة تفاعلية، موجّه slash، مكوّنات Rich، وطبقة _legacy.py تحافظ على كل الأوامر الفرعية وتعيد تصدير كل الرموز العامة فتبقى cli.cmd_* / cli._INIT_ENV_PATH / cli.Confirm كما هي. Middleware جديد في FastAPI يخدم قشرة SPA عند فتح /runs/{id} أو /correlation مباشرة من المتصفح، مع نفس التضييق في بروكسي Vite للتطوير. توحيد سلسلة الإصدار عبر cli/_version.py (إنهاء الانحراف بين --version والبانر)، استعادة python -m cli عبر __main__.py، وتضييق بوابة chat بحيث تصل chat --help / chat extra إلى argparse القديم بدلاً من ابتلاع REPL لها.

  • 2026-05-20 🔬 Hypothesis Registry CLI: استكمال جانب CLI لـ Hypothesis Registry الذي شُحن backend فقط في 2026-05-16. يُخرج vibe-trading hypothesis list جدول Rich أو JSON (مع فلتر --status و--limit)؛ يعرض show <id> لوحة تفاصيل تتضمن run cards المرتبطة؛ يقلب invalidate <id> --note "..." الحالة إلى rejected ويُبقي ملاحظات الإبطال السابقة عند حذف --note. متغير البيئة VIBE_TRADING_HYPOTHESES_PATH ما زال مدعوماً، مع إضافة --path لكل استدعاء. تغطي 22 اختباراً جديداً الربط، إخراج JSON، فلتر الحالة، الحد، أخطاء معرّف مفقود، وثبات الملاحظات.

  • 2026-05-19 ✨ تغذية راجعة حيّة للأدوات + إلغاء سلس: لم تعد الأدوات الطويلة (backtests، PDF كبيرة، عمّال swarm) تبدو متجمدة. كل استدعاء أداة يُصدر الآن نبضة قلب كل 3 ثوانٍ، بالإضافة إلى تقدّم مرحلي مهيكل — يُظهر run_backtest علامات الأطوار (validate / simulate / finalize)، ويُحدّث read_document عدّاد كل صفحة على PDF أو كل ورقة على Excel، ويُعلِم read_url بمرحلتي fetch / parse. تعرض لوحة Rich Live في CLI دوّاراً Unicode وشريط تقدّم ASCII وETA، وتُكدّس حتى 3 أدوات متوازية مفهرسة بالاسم. تضيف الواجهة الأمامية مكوّن ToolProgressIndicator جديد مع تجميع rAF، وARIA role="status" + <progress> أصلي مخفي لقارئات الشاشة، وSVG ProgressRing حتمي عندما يكون المجموع معروفاً. أول Ctrl+C أثناء تشغيل CLI يستدعي الآن agent.cancel() للخروج السلس (تكتمل الخطوة الحالية وتُغلق التتبعات بنظافة)، والثاني خلال ثانيتين يفرض الإنهاء. تم استخراج عناصر أساسية قابلة لإعادة الاستخدام: ProgressBar.tsx وlib/tools.ts (تعيين i18n لأسماء الأدوات المشترك).

  • 2026-05-18 🧹 تنظيف + إصلاح 3 أخطاء كامنة: لم يعد CompositeEngine يوجّه رموز العقود الآجلة الصينية بدون لاحقة (مثل RB2410) إلى GlobalFuturesEngine بشكل خاطئ — انتقل _is_china_futures إلى وحدة _market_hooks المشتركة مع تطبيع حالة جدول المنتجات + حارس لبورصة غير صينية، وأُضيفت 9 حالات اختبار انحدار. تحفظ فهارس FTS5 للجلسات الآن الطوابع الزمنية، فيمكن لبحث الجلسات الفرز بالتاريخ، ونفس التغيير أصلح مسار إعادة الإدراج الذي كان يستبدل started_at بساعة الحائط في كل مرة. أُضيف /alpha المفقود إلى بروكسي تطوير Vite، فتُحلّ صفحة AlphaZoo الآن على npm run dev. تم تقييد tests/test_e2e_harness_v2.py (مجموعة e2e بـ LLM حقيقي) خلف VIBE_TRADING_RUN_LIVE_E2E=1 كي لا تغيّر CI شكلها بناءً على وجود مفتاح البيئة. أُضيفت إلى ruff قاعدة per-file-ignores لمكتبة المعاملات (الضوضاء F401 من 3783 إلى 0)، وفُعِّلت noUnusedLocals / noUnusedParameters في tsconfig الواجهة كحواجز انحدار، وحُذف 76 سطراً من نموذج vw = vwap(...) غير المستخدم في ملفات gtja191. الصافي -918 سطراً.

  • 2026-05-17 🧬 Alpha Zoo v1 (0.1.8): 452 ألفا كمّي جاهز عبر 4 zoos — qlib158 (ميزات Alpha158 من Microsoft Qlib، إسناد Apache-2.0)، alpha101 (إعادة تنفيذ "101 Formulaic Alphas" من Kakushadze بناءً على ورقة arXiv:1601.00991)، gtja191 (تقرير بحث Guotai Junan 2014 لعوامل تداول قصيرة الأجل)، academic (Fama-French 5 + Carhart momentum كـ proxy قائم على الأسعار). سطر أوامر واحد للـ bench على أي universe: vibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025. تتضمن بوابة AST للنقاء، اختبار حماية lookahead، عزل الشبكة عبر pytest-socket، LICENSE.md لكل zoo، وسير عمل توقيع DCO لمساهمات المجتمع. تقديم Alpha Library تلقائياً على vibetrading.wiki/alpha-library/، مع منشور Research Lab Which of the 191 GTJA alphas still work in 2026?.

  • 2026-05-16 🧪 تحديث عمود البحث: أضيف backend Hypothesis Registry مع create_hypothesis وupdate_hypothesis وlink_backtest وsearch_hypotheses. تضيف قارئات المحتوى الخارجي الآن security_warnings تحذيرية فقط، وانتقل ماسح Shadow Account من calendar-phase stub القديم إلى تقييم حتمي لميزات OHLCV.

  • 2026-05-15 🪪 تعرض صفحة تفاصيل الـ run الآن بطاقة Trust Layer run card إلى جانب المقاييس والمخرجات، لتكمل الجانب الواجهي من عمل run_card.json الذي هبط في 2026-05-12. كما تم تعزيز PersistentMemory.add() على مسارات الطول والأسماء الفارغة أو التي تحتوي على فراغات فقط وبايتات التحكم C0/C1 ضمن فرز #108/#109/#110 (#112، شكراً @Teerapat-Vatpitak).

  • 2026-05-14 🌐 أصبح الويكي العام متاحاً على vibetrading.wiki مع أقسام docs وtutorials وResearch Lab وAlpha Library، ويُنشر عبر Cloudflare Pages. أصبحت الذاكرة الدائمة أيضاً قابلة للفحص من سطر الأوامر عبر vibe-trading memory list/show/search/forget (#102، شكراً @Teerapat-Vatpitak)، كما يدعم توليد الرموز وslugs للذاكرة الآن التايلاندية والعربية والعبرية والنص السيريلي (#104).

  • 2026-05-13 🧭 أصبحت تشغيلات السرب تؤسس عمل الوكلاء على بيانات سوق مجلوبة مسبقاً، مع تقارير محفوظة أنظف (#93، #84).

  • 2026-05-12 🧾 أصبحت الاختبارات الرجعية تنتج run_card.json وrun_card.md إلى جانب المخرجات لدعم تشغيلات بحثية قابلة لإعادة الإنتاج.

  • 2026-05-11 🧭 Memory slugs، ومحاسبة السرب، وفحص CLI المسبق: أصبحت الذاكرة الدائمة تحفظ أحرف CJK عند توليد slugs للملفات، مما يمنع اصطدامات أسماء صامتة لملاحظات الصينية/اليابانية/الكورية (#95، شكراً @voidborne-d). تفضل مجاميع تشغيل السرب الآن استخدام استهلاك الرموز المبلغ من المزود مع الإبقاء على التقدير الاحتياطي الحالي (#94، شكراً @Teerapat-Vatpitak)، كما حصلت واجهة تشغيل CLI على فحص بدء مبكر للمشكلات البيئية الشائعة (#96، شكراً @ykykj).

  • 2026-05-10 🧱 حواجز انحدار وبيانات تشغيل وصفية: أصبح استدعاء الذاكرة يتعامل مع الشرطات السفلية كحدود رموز، لذلك تطابق ذكريات snake_case مثل mcp_wiring_test استعلامات طبيعية مثل "mcp wiring" (#87، شكراً @hp083625). يملك خادم MCP الآن اختبار smoke عبر subprocess يغطي initialize → tools/list → tools/call لحماية مسار التعطل في أول استدعاء (#86)، كما وصلت تحسينات منخفضة المخاطر لاختبارات مسارات Windows، ومعالجة استثناءات API best-effort، والتحقق من allowed-root في run_dir للاختبار الرجعي، وبيانات provider/model في SwarmRun (#88، #90، #91، #92، شكراً @Teerapat-Vatpitak).

  • 2026-05-09 🛡️ تعزيز مسارات API واستقرار خادم MCP: تتحقق مسارات run/session في API الآن من معرفات المسار قبل البحث، وترفض المعاملات المشوهة التي تحتوي على أسطر جديدة مع تثبيت السلوك في مجموعة اختبارات auth/security (#80، شكراً @SJoon99). يسخن خادم MCP سجل الأدوات على الخيط الرئيسي قبل خدمة tools/call لتجنب تعطل أول استدعاء في اكتشاف الأدوات الكسول (#85، شكراً @Teerapat-Vatpitak). كما يحترم Vite dev proxy المتغير VITE_API_URL لأهداف الخلفية غير الافتراضية (#82، شكراً @voidborne-d).

  • 2026-05-08 🧾 حقول قوائم Tushare داخل المرشحات: تستطيع اختبارات أسهم A اليومية الآن طلب حقول قوائم مالية آمنة زمنياً عبر fundamental_fields، بحيث يمكن لمحركات الإشارات الفرز على أعمدة مثل income_total_revenue وincome_n_income وbalancesheet_total_hldr_eqy_exc_min_int وfina_indicator_roe بعد تواريخ الإعلان/الإفصاح (#76، شكراً @mrbob-git). ويجعل التعزيز اللاحق طلب حقول القوائم الصريح يفشل سريعاً إذا تعذر تشغيل إثراء Tushare، بدلاً من الرجوع بصمت إلى أشرطة الأسعار الخام (#77).

  • 2026-05-07 📈 أساسيات Tushare وفرز المجتمع: أضيف عقد TushareFundamentalProvider بنمط point-in-time لتدفقات البحث الأساسي، مع تغطية انحدار لمسار متغير البيئة TUSHARE_TOKEN في المشروع (#74). كما أوضح فرز المجتمع أن Vibe-Trading يركز حالياً على لغة واجهة واحدة لتسريع التكرار، ويتجنب تبعيات بحث زائدة ما دام web_search المدعوم من DuckDuckGo مضمناً، ويتعامل مع النشر المستضاف غير الرسمي كمكان غير موثوق لمفاتيح API أو رموز مصادر البيانات.

  • 2026-05-06 🚀 إصدار v0.1.7 (Release notes، pip install -U vibe-trading-ai): نُشر تعزيز حدود الأمان على PyPI وClawHub، ويغطي افتراضات أكثر أماناً للـ API/القراءة/الرفع/الملفات/URL/الكود المولد/أدوات shell/Docker مع إبقاء تدفقات CLI/Web UI المحلية سهلة. تشمل الدورة أيضاً Web UI Settings، وخريطة ارتباط حرارية، وOpenAI Codex OAuth، ومرشح A-share pre-ST، وتحسين CLI التفاعلي، وفحص swarm presets، وتحليل التوزيعات، وصقل سير التطوير، ورفع حدود أمان تبعيات بناء الواجهة. شكراً لمساهمي 0.1.7 وlemi9090 (S2W) على التحقق الأمني المنسق.

  • 2026-05-05 🛡️ متابعة حدود الأمان: استكمال تعزيز الأمان حول CORS origins الصريحة، ومؤشرات بيانات الاعتماد في Settings، وقراءة عناوين الويب، وتوليد كود Shadow Account، مع اختبارات انحدار لكل مسار. تبقى تدفقات CLI/Web UI على localhost كما هي؛ وعلى عمليات النشر البعيدة استخدام API_AUTH_KEY وorigins موثوقة صريحة.

  • 2026-05-04 🖥️ تجربة CLI تفاعلية وتنظيف CI: يعرض الوضع التفاعلي الآن شريط حالة سفلياً مباشراً يبين provider/model ومدة الجلسة وكمون آخر تشغيل وإحصاءات استدعاءات الأدوات، مع تصفح سجل الأوامر وتحرير المؤشر بمفاتيح الأسهم عبر prompt_toolkit (#69). يعود CLI إلى Rich prompts عند غياب prompt_toolkit أو TTY. كما وُئمت توقعات مسارات CI مع صندوق استيراد الملفات المعزز وحل /tmp عبر المنصات، فعاد main إلى الأخضر (bb67dc7).

  • 2026-05-03 🛡️ تصحيح تعزيز الأمان: يشدد مصادقة API الافتراضية للنشر غير المحلي، ويحمي قراءات run/session/swarm الحساسة، ويقيد حدود الرفع وقراءة الملفات المحلية، ويقيد أدوات shell بحسب نقطة الدخول، ويتحقق من تحميل الاستراتيجيات المولدة قبل الاستيراد، ويشغل صورة Docker كمستخدم غير root مع منفذ localhost فقط افتراضياً. تبقى تدفقات CLI وWeb UI المحلية سهلة؛ وعلى نشر API/Web البعيد ضبط API_AUTH_KEY.

  • 2026-05-02 🧭 تحليل التوزيعات وخارطة طريق أوضح: أضيفت مهارة dividend-analysis لأسهم الدخل، واستدامة التوزيعات، ونموها، وعائد المساهمين، وآليات ex-dividend، وفحص مصائد العائد، مع تثبيتها باختبارات انحدار للمهارات المضمنة. تركز خارطة الطريق العامة الآن على Research Autopilot وData Bridge وOptions Lab وPortfolio Studio وAlpha Zoo وResearch Delivery وTrust Layer ومشاركة Community.

  • 2026-05-01 🔥 خريطة ارتباط حرارية وOpenAI Codex OAuth ومرشح A-share pre-ST: لوحة/API ارتباط جديدة تحسب ارتباطات العوائد المتحركة وتعرض خريطة حرارية ECharts لتحليل المحافظ والرموز (#64). يدعم مزود OpenAI Codex الآن ChatGPT OAuth عبر vibe-trading provider login openai-codex مع بيانات Settings واختبارات انحدار للمحول (#65). أضيفت وعُززت مهارة ashare-pre-st-filter لفحص مخاطر ST/*ST في أسهم A، مع فلترة صلة عقوبات Sina حتى لا تضخم إشارات حسابات الأوراق المالية عدادات E2 (#63).

  • 2026-04-30 ⚙️ Web UI Settings وتعزيز validation CLI: صفحة Settings جديدة لمزود/نموذج LLM، وbase URL، وreasoning effort، وبيانات اعتماد مصادر البيانات، مدعومة بواجهات settings API محلية/محمية وببيانات مزودين قابلة للتكوين (#57). كما تعزز python -m backtest.validation <run_dir> حتى تفشل المدخلات الناقصة أو الفارغة أو المشوهة أو غير الموجودة أو غير الدليل برسائل واضحة قبل بدء التحقق (#60).

  • 2026-04-28 🚀 إصدار v0.1.6 (pip install -U vibe-trading-ai): إصلاح إرجاع vibe-trading --swarm-presets فارغاً بعد pip install / uv tool install (#55)، حيث أصبحت ملفات preset YAML مضمنة داخل حزمة src.swarm ومثبتة بستة اختبارات انحدار. كما أصبح محمل AKShare يوجه ETFs مثل 510300.SH والفوركس مثل USDCNH إلى النقاط الصحيحة مع fallback registry معزز. يجمع الإصدار كل ما بعد v0.1.5: لوحة مقارنة معيارية، بث /upload وحدود الحجم، محمل Futu (HK + A-share)، مهارة تصدير vnpy، تعزيز أمني، وتحميل واجهة كسول من 688KB إلى 262KB.

  • 2026-04-27 📊 لوحة مقارنة معيارية وأمان الرفع: مخرجات الاختبار الرجعي تتضمن الآن لوحة مقارنة معيارية (ticker / benchmark return / excess return / information ratio) مع حل عبر yfinance لـ SPY وCSI 300 وغيرها (#48). كما تبث /upload جسم الطلب في أجزاء 1 MB وتتوقف بعد MAX_UPLOAD_SIZE، مما يحد الذاكرة تحت العملاء الضخمين/المشوهين (#53)، ومثبتة بأربعة اختبارات انحدار.

  • 2026-04-22 🛡️ تعزيز وتكاملات جديدة: فرض احتواء المسارات في safe_path وصندوق أدوات journal/shadow، وإرسال .env.example / الاختبارات / ملفات Docker في sdist عبر MANIFEST.in، وتصغير الحزمة الأولية للواجهة من 688KB إلى 262KB عبر التحميل الكسول على مستوى المسارات. إضافة محمل Futu لأسهم HK وA-share (#47) ومهارة تصدير vnpy CtaTemplate (#46).

  • 2026-04-21 🛡️ مساحة العمل والوثائق: تطبيع run_dir النسبي إلى دليل التشغيل النشط (#43). أمثلة استخدام README (#45).

  • 2026-04-20 🔌 Reasoning وSwarm: الحفاظ على reasoning_content عبر جميع مسارات ChatOpenAI، لتعمل أفكار Kimi / DeepSeek / Qwen من البداية للنهاية (#39). بث Swarm وإيقاف Ctrl+C نظيف (#42).

  • 2026-04-19 📦 v0.1.5: النشر إلى PyPI وClawHub. رفع حد python-multipart لسد CVE، وربط 5 أدوات MCP جديدة (analyze_trade_journal + 4 أدوات shadow-account)، وإصلاح سجل pattern_recognition → pattern، ومطابقة تبعيات Docker، ومزامنة بيان SKILL (22 أداة MCP / 71 مهارة).

  • 2026-04-18 👥 Shadow Account: استخرج قواعد استراتيجيتك من سجل وسيط → اختبر الظل عبر الأسواق → تقرير HTML/PDF من 8 أقسام يوضح ما تتركه على الطاولة (خرق القواعد، الخروج المبكر، الإشارات الفائتة، الصفقات المضادة). 4 أدوات جديدة، ومهارة واحدة، و32 أداة إجمالاً. أمثلة Trade Journal + Shadow Account موجودة الآن في شاشة ترحيب Web UI.

  • 2026-04-17 📊 محلل سجل التداول وقارئ ملفات شامل: ارفع صادرات الوسطاء (同花顺/东财/富途/generic CSV) → ملف تداول تلقائي (أيام الاحتفاظ، معدل الربح، نسبة PnL، التراجع) + 4 تشخيصات سلوكية (disposition effect، الإفراط في التداول، مطاردة الزخم، anchoring). أصبح read_document يوجه PDF وWord وExcel وPowerPoint والصور (OCR) و40+ صيغة نصية خلف استدعاء موحد.

  • 2026-04-16 🧠 Agent Harness: ذاكرة دائمة عبر الجلسات، بحث جلسات FTS5، مهارات ذاتية التطور (CRUD كامل)، ضغط سياق بخمس طبقات، وتجميع أدوات القراءة/الكتابة. 27 أداة، و107 اختبارات جديدة.

  • 2026-04-15 🤖 Z.ai + MiniMax: مزود Z.ai (#35)، وإصلاح temperature في MiniMax وتحديث النموذج (#33). 13 مزوداً.

  • 2026-04-14 🔧 استقرار MCP: إصلاح خطأ Connection closed في أداة الاختبار الرجعي على نقل stdio (#32).

  • 2026-04-13 🌐 اختبار رجعي مركب عبر الأسواق: محرك CompositeEngine جديد يختبر محافظ مختلطة الأسواق (مثل أسهم A + crypto) بمجمع رأس مال مشترك وقواعد لكل سوق. كما أصلح fallback لمتغيرات قالب السرب ومهلة الواجهة.

  • 2026-04-12 🌍 تصدير متعدد المنصات: يصدر /pine الاستراتيجيات إلى TradingView (Pine Script v6)، وTDX (通达信/同花顺/东方财富)، وMetaTrader 5 (MQL5) بأمر واحد.

  • 2026-04-11 🛡️ الموثوقية وتجربة المطور: إعداد .env عبر vibe-trading init (#19)، وفحوصات مسبقة، وfallback لمصادر البيانات وقت التشغيل، ومحرك اختبار رجعي معزز. README متعدد اللغات (#21).

  • 2026-04-10 📦 v0.1.4: إصلاح Docker (#8)، وأداة MCP web_search، و12 مزود LLM، وتبعيات akshare/ccxt. النشر إلى PyPI وClawHub.

  • 2026-04-09 📊 الموجة الثانية للاختبار الرجعي: محركات ChinaFutures وGlobalFutures وForex وOptions v2. تحقق Monte Carlo وBootstrap CI وWalk-Forward.

  • 2026-04-08 🔧 اختبار رجعي متعدد الأسواق مع قواعد لكل سوق، وتصدير Pine Script v6، و5 مصادر بيانات مع fallback تلقائي.


✨ الميزات الرئيسية

وكيل تداول ذاتي التحسن

🔍 وكيل تداول ذاتي التحسن

• بحث سوقي باللغة الطبيعية
• مسودات استراتيجيات وتحليل ملفات/ويب
• تدفقات عمل مدعومة بالذاكرة
فرق تداول متعددة الوكلاء

🐝 فرق تداول متعددة الوكلاء

• فرق استثمار وكمّ وكريبتو ومخاطر
• تقدم مباشر وتقارير محفوظة
• وكلاء مؤسسون على بيانات سوق مجلوبة
بيانات واختبارات رجعية عبر الأسواق

📊 بيانات واختبارات رجعية عبر الأسواق

• أسهم A/HK/US وكندا والهند وكوريا، وكريبتو، وعقود آجلة، وفوركس
• fallback للبيانات واختبارات مركبة
• بيانات PIT، وتحقيق، وبطاقات تشغيل
Shadow Account

👥 Shadow Account

• تشخيص سلوكي لسجلات الوسطاء
• مقارنات Shadow Account قائمة على القواعد
• تقارير تدقيق وكود استراتيجية قابلان للتصدير

💡 ما هو Vibe-Trading؟

Vibe-Trading مساحة عمل بحثية مفتوحة المصدر تحول الأسئلة المالية إلى تحليل قابل للتشغيل. يربط المطالبات باللغة الطبيعية بمحملات بيانات السوق، وتوليد الاستراتيجيات، ومحركات الاختبار الرجعي، والتقارير، والتصدير، وذاكرة البحث الدائمة.

صُمم للبحث والمحاكاة والاختبار الرجعي — وعند اختيارك، يتيح أيضاً تداولاً مستقلاً عبر وسيط تُصرّح به بنفسك (مثل Robinhood Agentic Trading). لا يحتفظ بأي أموال، ولا يتداول أبداً خارج الحدود التي تضعها، ويمكنك إيقافه فوراً.


✨ ما الذي يمكنك فعله؟

المهمة الناتج
طرح سؤال تداول بحث سوقي باستخدام الأدوات والبيانات والمستندات وسياق جلسة قابل لإعادة الاستخدام.
اختبار فكرة استراتيجية رجعياً كود استراتيجية، ومقاييس، وسياق معياري، ومخرجات تحقق، وبطاقات تشغيل.
مراجعة صفقاتك الخاصة قراءة سجلات الوسطاء، وتشخيص السلوك، واستخراج القواعد، ومقارنات Shadow Account.
قراءة المستندات والرسوم البيانية تحليل ملفات PDF / DOCX / XLSX / PPTX / الصور عبر OCR قابل للتوصيل (read_document)، وقراءة لقطات الرسوم البيانية دلالياً بنموذج رؤية (analyze_image).
قراءة إفصاحات المؤسسات ومحافظ الصناديق حيازات SEC 13F مع فروق المراكز ربعاً بربع، ومكوّنات ETF عبر الأسواق، والاحتمال الضمني لعقود الأحداث، واستخراج العوامل من arXiv / OpenAlex — كلها للقراءة فقط ومن مصادر عامة مجانية.
تحسين الأبحاث المتكررة الذاكرة الدائمة والمهارات القابلة للتحرير تحول الروتينات المفيدة إلى تدفقات قابلة لإعادة الاستخدام.
تشغيل فرق محللين مراجعات بحث متعددة الوكلاء لتدفقات الاستثمار والكم والكريبتو والماكرو والمخاطر.
وصل الأبحاث بقنوات IM إدارة بيئة جلسة واحدة عبر WebSocket وTelegram وSlack وDiscord وMatrix وWhatsApp وSignal وQQ/NapCat وWeChat/WeCom وFeishu/Lark وDingTalk وTeams وemail وMochat من CLI وREST وWeb UI.
إنتاج مخرجات قابلة للاستخدام تقارير، وTradingView Pine Script، وTDX، وMetaTrader 5، وأدوات MCP، وجلسات بحث لاحقة.
bench ألفا zoo جاهزة تشغيل IC + IR + تصنيف alive/reversed/dead عبر 462 ألفا (Qlib 158 + Kakushadze 101 + GTJA 191 + academic + PIT-safe fundamental) بسطر أوامر واحد على universe الخاص بك.
رصد أنظمة الارتباط جدول زمني قائم على كثافة الحواف + التباطؤ (hysteresis) على واجهة /correlation يُظهر متى تندمج الأسواق في كتلة واحدة — سياق مخاطر وصفي، لا إشارة تداول.

⚡ مثال سريع

pip install vibe-trading-ai

# بحث بلغة طبيعية
vibe-trading run -p "Backtest a BTC-USDT 20/50 moving-average strategy for 2024, summarize return and drawdown, then export the report"

# bench لـ alpha zoo جاهز بسطر واحد
vibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025 --top 20
vibe-trading --upload trades_export.csv
vibe-trading run -p "Analyze my trading behavior, extract my shadow strategy, and compare it with my actual trades"

👥 حساب الظل

ينطلق Shadow Account من سجلات تداولك أنت، لا من قالب استراتيجية عام.

ارفع تصديراً من وسيطك، ودع الوكيل يلخص سلوكك، ثم قارن مسار التداول الحقيقي باستراتيجية ظل قائمة على قواعد.

الخطوة ناتج الوكيل
1. قراءة سجلك يقرأ صادرات الوسطاء من 同花顺 و东方财富 و富途 وصيغ CSV العامة.
2. بناء ملف سلوكك أيام الاحتفاظ، ومعدل الربح، ونسبة PnL، والتراجع، وdisposition effect، والإفراط في التداول، ومطاردة الزخم، وفحوصات anchoring.
3. استخراج قواعدك يحول أنماط الدخول/الخروج المتكررة إلى ملف استراتيجية صريح بدلاً من ملخص ضبابي.
4. تشغيل الظل يختبر القواعد المستخرجة رجعياً ويبرز خرق القواعد، والخروج المبكر، والإشارات الفائتة، ومسارات التداول البديلة.
5. تسليم التقرير ينتج تقرير HTML/PDF يمكن فحصه أو أرشفته أو تحسينه في جلسة لاحقة.
vibe-trading --upload trades_export.csv
vibe-trading run -p "Analyze my trading behavior, extract my shadow strategy, and compare it with my actual trades"

🧪 سير البحث

تتبع أغلب التشغيلات مسار أدلة واحداً: توجيه الطلب، تحميل سياق السوق المناسب، تنفيذ الأدوات، التحقق من المخرجات، وإبقاء المخرجات قابلة للفحص.

الطبقة ما يحدث
Plan يختار المهارات المالية والأدوات ومصادر البيانات وإعداد السرب الملائمة عند الحاجة.
Ground يجلب أسهم A، وأسهم HK/US/كندا، والكريبتو، والعقود الآجلة، والفوركس، والمستندات، أو سياق الويب عبر المحملات المتاحة.
Execute يولد كود استراتيجية قابل للاختبار، ويشغل الأدوات، ويستخدم محرك الاختبار الرجعي أو سير التحليل المناسب.
Validate يضيف المقاييس، والمقارنة المعيارية، وMonte Carlo، وBootstrap، وWalk-Forward، وبطاقات التشغيل، والتحذيرات عند اللزوم.
Deliver يعيد التقارير والمخرجات وآثار الأدوات والتصديرات إلى TradingView وTDX وMetaTrader 5 وعملاء MCP أو جلسات لاحقة.

📡 مصادر البيانات والتراجع الذكي

استدعاء واحد لـ get_market_data، 23 مصدر بيانات سوقية مجانية (إضافة إلى سوق مدفوع اختياري QVeris). اضبط source: "auto" — يختار المُحمّل حسب الرمز، ثم يسير عبر سلسلة لكل سوق مرتبة بحسب خطر حظر عنوان IP: المصادر العامة التي لا تُحظر أبداً أولاً، والمصادر المُقيّدة أو المحمية بمفتاح أخيراً. بلا أي إعداد، ولا نقطة فشل واحدة.

Source Markets Auth Role
tencent · mootdx A-share + HK none never IP-banned (mootdx = 通达信 TCP)
eastmoney A / US / HK none OHLCV + deep fundamentals & flow tools (throttled)
baostock · akshare A (+ US/HK/futures/macro/fx) none free fallbacks
tushare A / HK / futures / fund / macro token richest A-share
yahoo US / HK / كندا none direct chart/quotes/options؛ TSX .TO / TSXV .V
sina · stooq US none K-line to 1984 · EOD CSV
yfinance US / HK / كندا none wrapper؛ تمر لواحق TSX .TO / TSXV .V كما هي
longbridge US / HK App Key + App Secret + Access Token مصدر OHLCV تاريخي اختياري؛ ثبّت الـ SDK الاختياري
finnhub · alphavantage · tiingo · fmp US key optional providers
qveris أصول عالمية متعددة key · credits سوق مدفوع — 63+ مزوداً بمفتاح واحد (اختيار صريح فقط، خارج التراجع التلقائي)
okx · ccxt · binance crypto none OKX + 100+ exchanges + Binance historical / USD-M perps
futu HK / A OpenD optional local FutuOpenD
mt5 الفوركس / المعادن طرفية MT5 طرفية MetaTrader 5 محلية اختيارية (Windows) — تغذية وسيطك الفعلية كما هي، مع حلّ لواحق الرموز بأسلوب Exness تلقائياً
pykrx كوريا (KRX: KOSPI/KOSDAQ) لا شيء أشرطة يومية لـ KOSPI / KOSDAQ لرموز .KS / .KQ (إضافة krx اختيارية)
india_broker الهند (NSE/BSE) تسجيل دخول الوسيط قراءة فقط لأشرطة Shoonya / Dhan لرموز .NS / .BO (ذيل سلسلة التراجع)
local any none your own CSV / Parquet / DuckDB via local: prefix

سلاسل التراجع (بحسب خطر حظر عنوان IP):

  • أسهم A → tencent · mootdx · eastmoney · baostock · akshare · tushare · local
  • أسهم US → yahoo · stooq · sina · eastmoney · yfinance · tiingo · fmp · finnhub · alphavantage · longbridge · akshare · local
  • أسهم HK → tencent · eastmoney · yahoo · futu · akshare · yfinance · tushare · longbridge · local
  • أسهم الهند (NSE/BSE) → yahoo · yfinance · india_broker · local
  • كوريا (KOSPI/KOSDAQ) → pykrx · yahoo · yfinance · local
  • الكريبتو → okx · ccxt · binance · yfinance · local
  • الفوركس / المعادن → mt5 · yfinance · akshare · local  ·  (العقود الآجلة / الصناديق / الاقتصاد الكلي → tushare/akshare → local)

استخدام Longbridge صراحةً

Longbridge محمّل اختياري لبيانات OHLCV التاريخية للأسهم الأمريكية والهونغ كونغية. لتثبيت الـ SDK:

pip install "vibe-trading-ai[longbridge]"

اضبط بيانات الاعتماد الثلاثة في .env:

LONGBRIDGE_APP_KEY=...
LONGBRIDGE_APP_SECRET=...
LONGBRIDGE_ACCESS_TOKEN=...

في الاختبار الرجعي، حدّد source داخل config.json:

{
  "codes": ["QQQ.US"],
  "start_date": "2025-01-01",
  "end_date": "2025-01-10",
  "interval": "1D",
  "source": "longbridge"
}

وفي محادثة الوكيل اطلبها صراحةً: «استخدم Longbridge لجلب بيانات QQQ.US التاريخية.» هذا الطلب الصريح منفصل عن source: "auto"؛ إذ يُبقي auto على سلسلة التراجع المعتادة لكل سوق.

إلى جانب OHLCV، تصل 22 أداة بيانات للقراءة فقط إلى الأساسيات والتدفقات — تدفق الأموال، والتنين والنمر، والتدفق الشمالي، والهامش، والصفقات الكتلية، وعدد المساهمين، وفترة الإغلاق، والقطاعات، وتقارير الأبحاث، والأخبار، وإيداعات SEC، والقوائم المالية، وسلاسل الخيارات، وملف الشركة، وفحص السوق، والبحث عن الرموز، والاقتصاد الكلي، وiwencai، والحيازات المؤسسية (13F)، وتفكيك محافظ ETF، وأسواق التنبؤ، والأوراق البحثية — وكلها مكشوفة عبر MCP. ولا يتراجع رمز local: صريح أبداً وبصمت إلى مصدر شبكي.

💎 بيانات مدفوعة اختيارية — QVeris

QVeris

البيانات المجانية هي الافتراضي، والمدفوعة عند الحاجة. تبقى المصادر الـ23 المدمجة مجانية مع تراجع ذكي بحسب خطر الحظر، بلا مفتاح ولا تكلفة. عبر QVeris يفتح مفتاح واحد 63+ مزوداً و10,000+ capabilities (per QVeris) للـ options Greeks، والأساسيات المتقدمة، وبيانات الصين/هونغ كونغ/العالم، والماكرو، والكريبتو، والأخبار، والـ filings؛ ولا تُحتسب المكالمات الفاشلة. فعّله من Settings → QVeris أو vibe-trading data mode paid.

QVeris disclosure: التسجيل عبر رابط إحالة Vibe-Trading يمنحك +1,000 رصيداً إضافياً ويدعم المشروع.


🔩 القدرات التفصيلية

القوائم التفصيلية مطوية أدناه حتى يبقى README سهل القراءة. افتحها عندما تريد فحص اللبنات المتاحة.

مكتبة المهارات المالية 89 مهارة عبر 9 فئات
  • 📊 89 مهارة مالية متخصصة منظمة في 9 فئات
  • 🌐 تغطية كاملة من الأسواق التقليدية إلى الكريبتو وDeFi
  • 🔬 قدرات شاملة من مصادر البيانات إلى البحث الكمي
الفئة المهارات أمثلة
Data Source 10 data-routing, tushare, yfinance, okx-market, akshare, mootdx, ccxt, eastmoney, sec-edgar, qveris
Strategy 19 strategy-generate, cross-market-strategy, technical-basic, candlestick, ichimoku, elliott-wave, smc, multi-factor, ml-strategy
Analysis 23 factor-research, correlation-regime, macro-analysis, global-macro, valuation-model, investor-lenses, credit-analysis, dividend-analysis
Asset Class 9 options-strategy, options-advanced, convertible-bond, etf-analysis, asset-allocation, sector-rotation
Crypto 7 perp-funding-basis, liquidation-heatmap, stablecoin-flow, defi-yield, onchain-analysis
Flow 8 hk-connect-flow, us-etf-flow, edgar-sec-filings, financial-statement, adr-hshare
Tool 10 backtest-diagnose, report-generate, pine-script, doc-reader, web-reader, vnpy-export, trade-journal
Research 2 alpha-zoo, strategy-dev-manager
Risk Analysis 1 ashare-pre-st-filter
مصدر بيانات مخصص سجّل loader تاريخيًا خاصًا بك لبيانات OHLCV

تحتاج إلى سوق أو مزوّد لا نوفّر له loader جاهزًا؟ أضِف loader تاريخيًا خاصًا بك واخترْه عبر source="<name>". الخطوات التالية تعدّل مصدر الحزمة، لذا شغّلها من نسخة clone (pip install -e .).

  1. اكتب الـ loader —— أنشئ agent/backtest/loaders/<name>_loader.py مع صنف يحقّق DataLoaderProtocol (duck-typed، دون صنف أساس) ووسمه بـ @register:

    import pandas as pd
    from backtest.loaders.registry import register
    
    @register
    class DataLoader:
        name = "mysource"            # the value you pass as source=
        markets = {"us_equity"}      # a_share/us_equity/hk_equity/crypto/futures/fund/macro/forex
        requires_auth = False
    
        def is_available(self) -> bool:
            return True              # token present? network reachable?
    
        def fetch(self, codes, start_date, end_date, *, interval="1D", fields=None):
            # return {symbol: DataFrame indexed by trade_date,
            #         columns: open, high, low, close, volume}
            ...
    
  2. سجّل الوحدة كي يعمل @register —— أضِف "backtest.loaders.<name>_loader" إلى _loader_modules في agent/backtest/loaders/registry.py.

  3. اسمح بالاسم ليجتاز التحقق من الإعدادات —— أضِف "mysource" إلى _VALID_SOURCES في agent/backtest/runner.py.

  4. (اختياري) أدرِجه ضمن FALLBACK_CHAINS لأحد الأسواق في registry.py كي يصل إليه source="auto".

  5. استخدمه —— source="mysource" في إعداد الباك-تست، أو عبر CLI / agent.

بيانات الـ ticks اللحظية / عمق دفتر الأوامر خارج نطاق الـ loaders —— طبقة الـ loader تتعامل فقط مع الأشرطة التاريخية point-in-time. تتدفق بيانات السوق اللحظية عبر broker connectors بدلًا من ذلك: okx / binance / ccxt للعملات المشفّرة، وfutu / tiger للأسهم.

موصّلات الوسطاء 13 وسيطاً — قراءة + حساب ورقي، وتداول حي محدود حيثما يُدعم

ملفات تعريف قائمة على الموصّل. يوفّر معظم الموصّلات قراءةً وتنفيذ أوامر على حساب ورقي (paper) — أما IBKR فللقراءة فقط، وRobinhood حيّ فقط (بلا حساب ورقي)، وTrading 212 يرفض تنفيذ الأوامر كلياً بما فيها الورقية؛ أما تنفيذ الأوامر الحية فمحدود بتفويض يحدّده المستخدم (قائمة رموز مسموح بها، وحدود لحجم الأمر / الانكشاف، وحد يومي للصفقات، ومفتاح إيقاف فوري) ولا يحتفظ الموصّل بأي أموال — الوسيط هو من ينفّذ. تبقى أدوات تنفيذ الأوامر خارج MCP (عبر agent + CLI فقط). ومسارات البحث / الاختبار الرجعي محظورة بنيوياً من أي نقطة نهاية حية.

الوسيط الأسواق القدرات
IBKR عالمي TWS / Gateway محلي، قراءة فقط
Robinhood US Agentic MCP (OAuth عبر سطح المكتب) — قراءة + تداول حي محدود
Tiger US / HK / A قراءة + ورقي + تداول حي محدود
Alpaca US قراءة + ورقي + تداول حي محدود (+ وضع عزل الاعتماد TAP)
OKX · Binance crypto قراءة + ورقي + تداول حي محدود
Futu HK / US / A قراءة + ورقي + تداول حي محدود
eToro global قراءة + ورقي + تداول حي محدود (Public API؛ مفاتيح demo لا تصل بنيويًا إلا إلى مسارات /demo، مع دعم تدفقات التداول بالنسخ)
MetaTrader 5 forex / CFD قراءة + ورقي + تداول حي محدود (بأسلوب Exness؛ حارس هوية demo ⇔ paper)
Longbridge · Dhan · Shoonya US / HK · الهند (NSE/BSE) قراءة + ورقي فقط — لا يوجد مُميِّز وقت-تشغيل بين paper/live، لذا يُرفض تنفيذ الأوامر الحية بشكل صارم
Trading 212 UK / EU قراءة فقط بالكامل — تَرفض place_order / cancel_order حتى الورقي بشكل صارم

التمييز بين الورقي والحي هو حارس بنيوي على مستوى وقت التشغيل لكل وسيط (صيغة معرّف الحساب، أو فصل المضيف، أو علامة demo، أو بيئة التداول)، وليس مجرّد إعداد يمكن للوكيل تبديله. أي وسيط لا يكشف عن هذا المُميِّز يُحصَر في الورقي + القراءة فقط.

فرق تداول جاهزة 30 إعداد سرب مسبق
  • 🏢 30 فريق وكلاء جاهزاً للاستخدام
  • ⚡ تدفقات مالية مهيأة مسبقاً
  • 🎯 إعدادات للاستثمار والتداول وإدارة المخاطر
الإعداد سير العمل
investment_committee مناظرة صعود/هبوط → مراجعة مخاطر → قرار مدير المحفظة النهائي
global_equities_desk باحث أسهم A + HK/US + كريبتو → استراتيجي عالمي
crypto_trading_desk تمويل/أساس + تصفية + تدفق → مدير مخاطر
earnings_research_desk أساسيات + مراجعات + خيارات → استراتيجي أرباح
macro_rates_fx_desk أسعار فائدة + FX + سلع → مدير محفظة ماكرو
quant_strategy_desk فرز + بحث عوامل → اختبار رجعي → تدقيق مخاطر
technical_analysis_panel TA كلاسيكي + Ichimoku + harmonic + Elliott + SMC → إجماع
risk_committee تراجع + مخاطر ذيل + مراجعة نظام → اعتماد
global_allocation_committee أسهم A + كريبتو + HK/US → تخصيص عبر الأسواق

بالإضافة إلى أكثر من 20 إعداداً متخصصاً آخر — شغل vibe-trading --swarm-presets لاستكشافها كلها.

Alpha Zoo 462 ألفا كمّي جاهز عبر 5 families
  • 🧬 462 ألفا cross-sectional، مع منع lookahead على طبقة العوامل (operators)
  • 📈 IC + IR + تصنيف alive/reversed/dead بأمر CLI واحد
  • 🔬 بوابة نقاء AST + اختبار حماية lookahead بـ 300 صف + قاطع شبكة عبر pytest-socket
  • 📦 إسناد Apache-2 لـ Qlib؛ ملف LICENSE.md لكل zoo يصرّح بأن الصيغ محتوى رياضي
  • 🤝 سير عمل توقيع Developer Certificate of Origin (DCO) لمساهمات المجتمع
Zoo العدد المصدر الرخصة
qlib158 154 Microsoft Qlib Alpha158 (Apache-2.0، مثبّت على commit) Apache-2.0
alpha101 101 Kakushadze (2015)، "101 Formulaic Alphas"، arXiv:1601.00991 الصيغ محتوى رياضي
gtja191 191 Guotai Junan (2014)، "191 Short-period Trading Alpha Factors" الصيغ محتوى رياضي
academic 12 Fama-French 5 + Carhart momentum (proxy قائم على الأسعار) + Jegadeesh reversal + George-Hwang 52-week-high + Amihud illiquidity + Harvey-Siddique skew + Frazzini-Pedersen betting-against-beta + correlation-rewiring stability أدبيات أكاديمية عامة
fundamental 4 بيانات SEC company facts آمنة PIT — earnings yield وROE وgross profitability وasset growth (مثبّتة على filed-date) بيانات مالية عامة

شغّل vibe-trading alpha list للتصفح، وvibe-trading alpha show <id> للحصول على الصيغ + المصدر، وvibe-trading alpha bench --zoo X --universe Y --period Z لتقييم zoo كاملة، وvibe-trading alpha compare --all لترتيب الـ zoos جنباً إلى جنب.

محرّكات الاختبار الرجعي 9 محرّكات + محفظة خيارات، ومركّب عبر الأسواق
المحرّك السوق ملاحظات
ChinaA أسهم A T+1، وحدود السعر، ومرشّح ما قبل ST
GlobalEquity US / HK / كندا تداول في الجلسة نفسها؛ أحجام وخطوات سعرية وتكاليف حسب السوق
IndiaEquity الهند (NSE/BSE) T+1، ونطاقات القاطع (circuit)، وحزمة تكاليف STT / الدمغة / SEBI / GST قابلة للتهيئة
KoreaEquity كوريا (KRX: KOSPI/KOSDAQ) شراء فقط، ونطاق ±30% يُحكم عليه لحظة التنفيذ على شبكة الخطوة السعرية الموحّدة، وضريبة تداول 0.20% لعام 2026
Crypto crypto فوري / عقود USD-M الدائمة تسويات التمويل، وفصل سعر التنفيذ عن سعر العلامة
ChinaFutures · GlobalFutures العقود الآجلة الهامش، ومضاعِفات العقد
Forex FX / المعادن عبر مُحمّل mt5
Composite عبر الأسواق تجمّع رأس مال مشترك واحد عبر الأسواق (source="auto")
options_portfolio الخيارات متعدد الأرجل، وGreeks، وpayoff/scenario

أشرطة داخل اليوم: 1m / 5m / 15m / 30m / 1H / 4H / 1D. 15 مقياساً + مقارنة معيارية، و5 محسّنات محفظة (equal-volatility / risk-parity / mean-variance / max-diversification / turnover-aware)، و3 أدوات تحقق (Monte Carlo / Bootstrap / Walk-Forward).

Quant Library 265 دالة مختبَرة عبر 19 وحدة، قابلة للاستدعاء من كل المسارات

يحتفظ src/quantlib بتنفيذ مختبَر واحد فقط لكل قطعة من الرياضيات المالية التي يحتاجها الـ agent. صارت الـ skills تستورد هذه الدوال بدلاً من حمل الصيغ داخل كتل شيفرة في markdown — فإن وجدت صيغة تسعير تعيش داخل SKILL.md فتلك علة، لا نمط.

الوحدة ما تغطّيه
options تسعير Black-Scholes + greeks، وعكس التقلب الضمني
fixedincome رياضيات السندات، ومواءمة منحنى Nelson-Siegel / Svensson
credit Altman Z-score، ومسافة التعثّر Merton / KMV
timeseries السكون، والتكامل المشترك، وGARCH، وbootstrap
risk · var_backtest VaR / CVaR / EVT واختباراتها الرجعية
attribution تفكيك Brinson-Fachler
performance · fundmath TWR / MWR / Modified Dietz؛ XIRR / MOIC / DPI / TVPI
factormodel · eventstudy انحدارات العوامل، ودراسات الأحداث
multipletesting · crossvalidation ضبط الدلالة المتعددة، وpurged CV
impact نماذج أثر السوق

تصل الأداة quantlib_call للقراءة فقط إلى كل ذلك عبر عقد واحد، فتعمل الرياضيات المالية على CLI وWeb UI وREST API وMCP حيث يكون bash مُقفلاً. وهي بنيوياً ليست shell — قائمة وحدات مسموحة، وإرسال عبر __all__ فقط، ورفض export_*. يحتاج جانب الاقتصاد القياسي إضافة stats (pip install "vibe-trading-ai[stats]")، وتستورد تلك الدوال بتكاسل وتسمّي الناقص.

التقييم والبحث المؤسسي DCF ونظائر وثلاث قوائم مترابطة، وستة أوامر بحثية

محرك تقييم يرفض اختلاق مدخلاته. القاعدة الوحيدة في contracts.py: المدخل الناقص يجعل النموذج غير قابل للتشغيل (NOT RUNNABLE) ولا يُملأ ضمنياً بقيمة افتراضية — فكل قيمة افتراضية في نموذج تقييم هي رأي يرتدي ثوب ثابت.

النموذج سلوك يستحق المعرفة
run_dcf جسر FCFF، وبناء WACC، والخصم منتصف السنة، وجسر صافي الدين، وشبكة حساسية WACC×g. قيمة نهائية مزدوجة: كل طريقة تُراجَع مقابل المضاعف الضمني ومعدل النمو الضمني للأخرى
run_comps جسر EV، وتقويم LTM + السنة التقويمية، ومصفوفة المضاعفات. النظير ذو المقام غير الموجب يُستبعد ويُبلَّغ عنه، ولا يُدمج أبداً كمضاعف سالب في المتوسط
threestatement إسقاط مترابط مع تأكيد توازن صارم، وسدّ ائتماني صريح، ودورة فائدة↔دين تكرارية يجب أن تتقارب وإلا رفعت خطأ

تُجزّأ المخرجات بتجزئة المدخلات وتُدار بالإصدارات، مع تصدير xlsx / pptx.

تقود ستة أوامر مائلة سير العمل — /comps /dcf /attrib /memo /earnings /screen — يحمل كل منها هيكل خطوات ومثالاً محلولاً متسقاً حسابياً (تفكيك Brinson يُجمَع بدقة إلى العائد النشط، وجسر الأرباح يُجمَع بدقة إلى فرق EPS). وتُكدّس skill investor-lenses أطر تفكير مستثمرين معروفين كطبقات تحليل: كل عدسة هي إجراء تشغيلي — إشارات أولوية، وشروط استبعاد، وسوء استخدام شائع — لا سيرة ذاتية، ولا تسمّي أي أداة.

وخارج الأشرطة، يستوعب src/entities تدفقات نقدية بتواريخ غير منتظمة (صافي قيمة الأصول، ونداءات رأس المال، والكوبونات)، ويقدّم cashflow_performance فوقها XIRR / MOIC / DPI / TVPI / TWR / Modified Dietz / MWR. هذا المسار موازٍ عن قصد لمحركات الأشرطة، حتى لا يصل عمود nav إلى أحدها فيُسعَّر كإغلاق.

الحوكمة وأثر التدقيق الإجابة عن: «أي منهجية أنتجت ذلك الرقم؟»

يكتب كل تشغيل manifest يجزّئ الموجّه ومحتوى الـ skills وسجل الأدوات وإصدارات الحزم، فيبقى رقم أُنتج قبل شهر قابلاً للتتبّع إلى المنهجية الدقيقة التي أنتجته.

ويربط سجل التدقيق كل قيد بتجزئة سابقه ويُجري fsync، فيصبح تعديل قيد أو حذفه قابلاً للكشف — وحتى التعديل الذي يعيد حساب تجزئته يُضبَط عند القيد التالي عبر prev_hash_mismatch. الطوابع الزمنية يوفّرها المتصل دائماً؛ ولا تستدعي أي وحدة هنا datetime.now().

وتنقيح التتبّع حسب المصرف (sink): وسائط استدعاء الأدوات وسجل التدقيق الحي تستخدم مصرفاً fail-closed يبقى فيه content منقّحاً، بينما يُفرج مصرف نتائج الأدوات عنه ويغسل أوراقه النصية بالأنماط. ولا يُفرَج عن env في أيٍّ منهما.

🎬 العرض التوضيحي

https://github.com/user-attachments/assets/4e4dcb80-7358-4b9a-92f0-1e29612e6e86

https://github.com/user-attachments/assets/3754a414-c3ee-464f-b1e8-78e1a74fbd30

☝️ اختبار رجعي باللغة الطبيعية ومناظرة سرب متعدد الوكلاء — Web UI + CLI

🚀 البدء السريع

تثبيت بسطر واحد (PyPI)

pip install vibe-trading-ai

ثم شغل أول مهمة بحثية:

vibe-trading init
vibe-trading run -p "Backtest a BTC-USDT 20/50 moving-average strategy for 2024 and summarize return and drawdown"

هل تُحدِّث من إصدار أقدم؟ انتقل الإصدار 0.1.10 إلى LangChain 1.x. إذا انكسرت عمليات الاستيراد بعد تشغيل pip install -U vibe-trading-ai فوق تثبيت أقدم من 0.1.10 (مثل فشل استيراد langgraph)، فأعد إنشاء الـ venv أو شغّل pip install --force-reinstall vibe-trading-ai. التثبيت الجديد غير متأثر.

اسم الحزمة مقابل الأوامر: حزمة PyPI هي vibe-trading-ai. بعد التثبيت تحصل على ثلاثة أوامر:

الأمر الغرض
vibe-trading CLI / TUI تفاعلي
vibe-trading serve تشغيل خادم ويب FastAPI
vibe-trading-mcp بدء خادم MCP (لـ Claude Desktop وOpenClaw وCursor وغيرها)
vibe-trading init              # interactive .env setup
vibe-trading                   # launch CLI
vibe-trading serve --port 8899 # launch web UI
vibe-trading-mcp               # start MCP server (stdio)

أو اختر مساراً

المسار الأنسب لـ الوقت
A. Docker التجربة الآن، دون إعداد محلي دقيقتان
B. تثبيت محلي التطوير والوصول الكامل إلى CLI 5 دقائق
C. MCP plugin وصله بوكيلك الحالي 3 دقائق
D. ClawHub أمر واحد دون استنساخ دقيقة واحدة

المتطلبات المسبقة

  • مفتاح API لنموذج LLM من أي مزود مدعوم — أو التشغيل محلياً عبر Ollama (لا يحتاج مفتاحاً)
  • Python 3.11+ للمسار B
  • Docker للمسار A
  • يمكن استخدام OpenAI Codex أيضاً عبر ChatGPT OAuth: اضبط LANGCHAIN_PROVIDER=openai-codex، ثم شغل vibe-trading provider login openai-codex. هذا لا يستخدم OPENAI_API_KEY.

مزودو LLM المدعومون: OpenRouter, Requesty, OpenAI, Anthropic (Messages API الأصلي), DeepSeek, Gemini, Groq, DashScope/Qwen, Zhipu, Moonshot/Kimi, MiniMax, SiliconFlow (CN + Global), Xiaomi MIMO, iFlytek Spark, Z.ai, NVIDIA NIM, ModelScope, Ollama (local). عند عدم ضبط أي *_BASE_URL، يتراجع كل مزوّد إلى نقطة نهايته القانونية، فيكفي مفتاح واحد. راجع .env.example للإعداد.

نصيحة: تعمل كل الأسواق دون مفاتيح API بفضل fallback التلقائي. yfinance/Yahoo (HK/US/كندا)، وOKX (crypto)، وmootdx (أسهم A، اتصال TCP مباشر بدون قيود IP)، وAKShare (A-shares, US, HK, futures, forex) كلها مجانية. رمز Tushare اختياري — mootdx هو الـ fallback الموصى به لأسهم A بدون رمز، بينما يوفر AKShare احتياطياً أوسع تغطية.

المسار A: Docker (دون إعداد)

git clone https://github.com/HKUDS/Vibe-Trading.git
cd Vibe-Trading
cp agent/.env.example agent/.env
# Edit agent/.env — uncomment your LLM provider and set API key
docker compose up --build

افتح http://localhost:8899. الخلفية والواجهة الأمامية داخل حاوية واحدة.

ينشر Docker الخلفية على 127.0.0.1:8899 افتراضياً ويشغل التطبيق كمستخدم حاوية غير root. إذا كنت تقصد تعريض API خارج جهازك، فاضبط API_AUTH_KEY قوياً وأرسل Authorization: Bearer <key> من العملاء.

المسار B: التثبيت المحلي

git clone https://github.com/HKUDS/Vibe-Trading.git
cd Vibe-Trading
python -m venv .venv

# Activate
source .venv/bin/activate          # Linux / macOS
# .venv\Scripts\activate.bat       # Windows CMD
# .venv\Scripts\Activate.ps1       # Windows PowerShell

pip install -e .
cp agent/.env.example agent/.env   # Edit — set your LLM provider API key
vibe-trading                       # Launch interactive TUI

Note

على Windows: الأمر cp هو اسم بديل لـ Copy-Item في PowerShell، لذا تعمل الأوامر أعلاه كما هي في PowerShell. أما في CMD فلا وجود لـ cp، فاستخدم بدلاً منه copy agent\.env.example agent\.env (وينطبق ذلك أيضاً على أمر Docker أعلاه). وإذا رفض PowerShell تشغيل Activate.ps1، فشغّل أولاً Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned؛ ويسري هذا الإعداد على جلسة الطرفية الحالية فقط.

تشغيل واجهة الويب (اختياري)
# Terminal 1: API server
vibe-trading serve --port 8899

# Terminal 2: Frontend dev server
cd frontend && npm install && npm run dev  # يتطلب Node >= 22.22

افتح http://localhost:5899. تمرر الواجهة الأمامية استدعاءات API إلى localhost:8899.

وضع الإنتاج (خادم واحد):

cd frontend && npm run build && cd ..
vibe-trading serve --port 8899     # FastAPI serves dist/ as static files

Note

يرتبط vibe-trading serve بالعنوان 0.0.0.0 لكنه يثق فقط بطلبات loopback افتراضيًا: فتح الواجهة على نفس الجهاز (http://localhost:8899) يعمل دون أي إعداد. إذا تصفّحت من جهاز آخر أو مضيف جهاز افتراضي أو هاتف على شبكتك المحلية، فستُعيد النقاط الحساسة الرمز 403 وتظهر في المحادثة رسالة “Remote API access requires an API key” — عيّن مفتاح API_AUTH_KEY قويًا في agent/.env، ثم أعد التشغيل وأدخل المفتاح نفسه مرة واحدة في Settings. (بوابة مضيف Docker Desktop: عيّن VIBE_TRADING_TRUST_DOCKER_LOOPBACK=1 مع الإبقاء على ربط المنفذ الافتراضي 127.0.0.1.)

المسار C: MCP plugin

راجع قسم MCP Plugin أدناه.

المسار D: ClawHub (أمر واحد)

npx clawhub@latest install vibe-trading --force

تُنزل المهارة وإعداد MCP إلى مجلد مهارات وكيلك. راجع تثبيت ClawHub للتفاصيل.


🧠 متغيرات البيئة

انسخ agent/.env.example إلى agent/.env وأزل التعليق عن كتلة المزود التي تريدها. يحتاج كل مزود إلى 3-4 متغيرات:

المتغير مطلوب الوصف
LANGCHAIN_PROVIDER نعم اسم المزود (openrouter, deepseek, groq, ollama, إلخ)
<PROVIDER>_API_KEY نعم* مفتاح API (OPENROUTER_API_KEY, DEEPSEEK_API_KEY, إلخ)
<PROVIDER>_BASE_URL نعم عنوان URL لنقطة نهاية API
LANGCHAIN_MODEL_NAME نعم اسم النموذج (مثل deepseek-v4-pro)
TUSHARE_TOKEN لا رمز Tushare Pro لبيانات أسهم A (يرجع إلى AKShare عند الحاجة)
TIMEOUT_SECONDS لا مهلة استدعاء LLM، الافتراضي 120s
API_AUTH_KEY موصى به للنشر الشبكي Bearer token مطلوب عندما يكون API قابلاً للوصول من عملاء غير محليين
VIBE_TRADING_ENABLE_SHELL_TOOLS لا تفعيل صريح للأدوات القادرة على shell في نشر API/MCP-SSE البعيد
VIBE_TRADING_ALLOWED_FILE_ROOTS لا جذور إضافية مفصولة بفواصل لاستيراد المستندات وسجلات الوسطاء
VIBE_TRADING_ALLOWED_RUN_ROOTS لا جذور إضافية مفصولة بفواصل لأدلة تشغيل الكود المولد
VIBE_TW_STOCK_DB لا مسار لقطة SQLite لسوق تايوان؛ تُسجَّل أداة taiwan_stock_data للقراءة فقط عندما يكون المخطط صالحًا
VIBE_TRADING_EXTRA_CORS_ORIGINS لا أصول تُضاف إلى إعدادات CORS الافتراضية للحلقة المحلية، مفصولة بفواصل (بينما CORS_ORIGINS تستبدلها)
CONTENT_FILTER_WARNING_THRESHOLD لا عتبة نسبة التحذير من مرشّح المحتوى (الافتراضي 0.05 = 5%). عندما تتجاوز نسبة استجابات النموذج المحجوبة بالإشراف على المحتوى هذه القيمة، تُنبّهك بطاقة التشغيل إلى تبديل المزوّد.

* لا يحتاج Ollama إلى مفتاح API. يستخدم OpenAI Codex ChatGPT OAuth ويخزن الرموز عبر oauth-cli-kit، لا داخل agent/.env.

بيانات مجانية (دون مفتاح): أسهم A عبر AKShare، وأسهم HK/US عبر yfinance، والكريبتو عبر OKX، وأكثر من 100 بورصة كريبتو عبر CCXT. يختار النظام تلقائياً أفضل مصدر متاح لكل سوق.

🎯 النماذج الموصى بها

Vibe-Trading وكيل كثيف الأدوات؛ المهارات والاختبارات الرجعية والذاكرة والأسراب كلها تمر عبر استدعاءات أدوات. اختيار النموذج يحدد مباشرة هل سيستخدم الوكيل أدواته أم سيصطنع إجابات من بيانات التدريب.

المستوى أمثلة متى تستخدمه
الأفضل anthropic/claude-opus-4.7, anthropic/claude-sonnet-4.6, openai/gpt-5.5-pro, google/gemini-3.5-flash أسراب معقدة (3+ وكلاء)، جلسات بحث طويلة، تحليل بمستوى ورقة علمية
النقطة المثلى (افتراضي) deepseek-v4-pro, deepseek/deepseek-v4-pro, x-ai/grok-4.20, z-ai/glm-5.1, moonshotai/kimi-k2.6, qwen/qwen3-max-thinking الاستخدام اليومي، tool-calling موثوق بنحو عُشر التكلفة
تجنبها لاستخدام الوكيل *-nano, *-flash-lite, *-coder-next, small / distilled variants tool-calling غير موثوق؛ سيبدو الوكيل وكأنه "يجيب من الذاكرة" بدلاً من تحميل المهارات أو تشغيل الاختبارات الرجعية

يأتي agent/.env.example افتراضياً مع DeepSeek official API + deepseek-v4-pro; ويمكن لمستخدمي OpenRouter استخدام deepseek/deepseek-v4-pro.


🖥 مرجع CLI

vibe-trading               # interactive TUI
vibe-trading run -p "..."  # single run
vibe-trading serve         # API server
vibe-trading alpha list    # استعرض 462 ألفا جاهز؛ متاح show / bench / compare / export-manifest
vibe-trading playbook list # خمسة قوالب بحث مجدولة؛ متاح show / create
vibe-trading channels status --local  # فحص إعدادات قنوات IM وتلميحات التثبيت
vibe-trading provider doctor  # طباعة تشخيصات المزود/الوكيل/الحزم بعد إخفاء الأسرار
أوامر الشرطة المائلة داخل TUI
الأمر الوصف
/help عرض اختصارات لوحة المفاتيح وقائمة الأوامر
/model تبديل مزوّد LLM والنموذج
/memory عرض / إدارة الذاكرة الدائمة
/history تصفّح الجلسات السابقة واستئنافها
/goal بدء / فحص هدف بحث مالي
/search بحث نصي كامل عبر كل الجلسات
/swarm إعدادات متعددة الوكلاء (لجنة / كمّي / مخاطر)
/skill سرد / تحميل / إلغاء تحميل المهارات
/show عرض تشغيل سابق بالمعرّف
/clear مسح المحادثة الحالية
/pine تصدير الاستراتيجية الحالية كـ Pine Script
/journal تحليل ملف CSV لسجل التداول
/shadow تدريب / عرض الحساب الظلّي
/export تصدير الجلسة الحالية (md / json)
/debug تبديل لوحة التشخيص (استهلاك التوكن / زمن الاستجابة)
/comps تحليل الشركات المماثلة (مضاعفات النظراء ← نطاق ضمني)
/dcf تقييم بالتدفقات النقدية المخصومة مع شبكة حساسية
/attrib إسناد Brinson-Fachler (التوزيع مقابل الانتقاء)
/memo مذكرة استثمار — الأطروحة، الرأي المخالف، السيناريوهات، معايير الخروج
/earnings مراجعة الأرباح — جسر المفاجأة من الإيرادات إلى ربحية السهم
/screen فرز منهجي للأفكار — الفرضية، القمع، قائمة الناجين
/playbook قوالب البحث المجدولة (سرد / تشغيل / جدولة)
/connector ملفات موصّلات التداول (الحالة / التشغيل / الإيقاف)
/halt مفتاح الإيقاف — أوقف كل التداول الحي فوراً
/resume إلغاء مفتاح الإيقاف (إعادة تفعيل التداول الحي)
/data وضع توجيه البيانات
/quit خروج (أيضاً q و exit و :q)
تشغيل واحد والخيارات
vibe-trading run -p "Backtest BTC-USDT MACD strategy, last 30 days"
vibe-trading run -p "Analyze AAPL momentum" --json
vibe-trading run -f strategy.txt
echo "Backtest 000001.SZ RSI" | vibe-trading run
vibe-trading -p "your prompt"
vibe-trading --skills
vibe-trading --swarm-presets
vibe-trading --swarm-run investment_committee '{"topic":"BTC outlook"}'
vibe-trading --list
vibe-trading --show <run_id>
vibe-trading --code <run_id>
vibe-trading --pine <run_id>           # Export indicators (TradingView + TDX + MT5)
vibe-trading --trace <run_id>
vibe-trading --continue <run_id> "refine the strategy"
vibe-trading --upload report.pdf
vibe-trading alpha list --zoo gtja191 --limit 10
vibe-trading alpha show gtja191_171
vibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025 --top 20
قنوات IM

تصل محولات IM تطبيقات الدردشة الخارجية ببيئة الجلسة نفسها التي يستخدمها Web UI وCLI. اضبط المحولات المفعّلة تحت channels في ~/.vibe-trading/agent.json. المحولات المعتمدة على SDK اختيارية عبر extras، وعند غياب SDK تعرض تلميحات استرداد بدلاً من إسقاط runtime.

vibe-trading channels status --local   # فحص config وتلميحات SDK الناقصة دون API
vibe-trading channels status           # الاستعلام عن API runtime الجاري
vibe-trading channels start            # بدء المحولات المفعّلة عبر API
vibe-trading channels stop             # إيقاف المحولات المفعّلة عبر API
vibe-trading channels login weixin     # تشغيل hook تسجيل الدخول عند الحاجة
vibe-trading channels pairing --channel telegram list

تشمل المحولات المدمجة websocket وtelegram وslack وdiscord وmatrix وwhatsapp وsignal وqq وnapcat وweixin وwecom وfeishu وdingtalk وmsteams وemail وmochat. يمكنك تثبيت منصة محددة مثل pip install "vibe-trading-ai[telegram]" أو تثبيت المجموعة كاملة عبر pip install "vibe-trading-ai[channels]".

أوامر الشرطة داخل المحادثة (مستقلة عن القناة، تعمل في جميع المحولات الـ 16):

الأمر الوصف
/new إعادة تعيين الجلسة الحالية — الرسالة التالية تبدأ محادثة جديدة
/reset اسم مستعار لـ /new
/newsession اسم مستعار لـ /new
/pairing list عرض طلبات sender pairing المعلقة

الأوامر لا تحس بحالة الأحرف ويجب إرسالها كرسالة كاملة (مثلاً hello /new تُعامل كرسالة عادية وليس كأمر إعادة تعيين).


💡 أمثلة

الاستراتيجيات والاختبار الرجعي

# Moving average crossover on US equities
vibe-trading run -p "Backtest a 20/50-day moving average crossover on AAPL for the past year, show Sharpe ratio and max drawdown"

# RSI mean-reversion on crypto
vibe-trading run -p "Test RSI(14) mean-reversion on BTC-USDT: buy below 30, sell above 70, last 6 months"

# Multi-factor strategy on A-shares
vibe-trading run -p "Backtest a momentum + value + quality multi-factor strategy on CSI 300 constituents over 2 years"

# After backtesting, export to TradingView / TDX / MetaTrader 5
vibe-trading --pine <run_id>

bench ألفا zoo جاهز بسطر واحد:

vibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025 --top 20

استعرض الكتالوج وافحص ألفا مفردة:

vibe-trading alpha list --zoo gtja191 --theme reversal --limit 10
vibe-trading alpha show gtja191_171

ركّب إشارة متعدد العوامل من ألفات zoo (Python):

from src.skills.multi_factor.zoo_signal_engine import ZooSignalEngine
engine = ZooSignalEngine.from_zoo(["gtja191_171", "gtja191_111", "gtja191_163"])
panel = ...  # your wide OHLCV panel
signal = engine.compute_signal(panel)

بحث السوق

# Equity deep-dive
vibe-trading run -p "Research NVDA: earnings trend, analyst consensus, option flow, and key risks for next quarter"

# Macro analysis
vibe-trading run -p "Analyze the current Fed rate path, USD strength, and impact on EM equities and gold"

# Crypto on-chain
vibe-trading run -p "Deep dive BTC on-chain: whale flows, exchange balances, miner activity, and funding rates"

تدفقات السرب

# Bull/bear debate on a stock
vibe-trading --swarm-run investment_committee '{"topic": "Is TSLA a buy at current levels?"}'

# Quant strategy from screening to backtest
vibe-trading --swarm-run quant_strategy_desk '{"universe": "S&P 500", "horizon": "3 months"}'

# Crypto desk: funding + liquidation + flow → risk manager
vibe-trading --swarm-run crypto_trading_desk '{"asset": "ETH-USDT", "timeframe": "1w"}'

# Global macro portfolio allocation
vibe-trading --swarm-run macro_rates_fx_desk '{"focus": "Fed pivot impact on EM bonds"}'

ذاكرة عبر الجلسات

# Save your preferences once
vibe-trading run -p "Remember: I prefer RSI-based strategies, max 10% drawdown, hold period 5–20 days"

# The agent recalls them in future sessions automatically
vibe-trading run -p "Build a crypto strategy that fits my risk profile"

رفع المستندات وتحليلها

# Analyze a broker export or earnings report
vibe-trading --upload trades_export.csv
vibe-trading run -p "Profile my trading behavior and identify any biases"

vibe-trading --upload NVDA_Q1_earnings.pdf
vibe-trading run -p "Summarize the key risks and beats/misses from this earnings report"

🌐 خادم API

vibe-trading serve --port 8899
الطريقة نقطة النهاية الوصف
GET /runs عرض التشغيلات
GET /runs/{run_id} تفاصيل التشغيل
GET /runs/{run_id}/pine تصدير مؤشرات متعدد المنصات
POST /sessions إنشاء جلسة
POST /sessions/{id}/messages إرسال رسالة
GET /sessions/{id}/events بث أحداث SSE
POST /upload رفع PDF/ملف
GET /swarm/presets عرض إعدادات السرب
POST /swarm/runs بدء تشغيل سرب
GET /swarm/runs/{id}/events بث SSE للسرب
GET /alpha/list قائمة ألفات مع تصفية حسب zoo/theme/universe
GET /alpha/{alpha_id} بيانات وصفية + الكود المصدري للألفا
POST /alpha/bench بدء مهمة bench (يعيد job_id)
GET /alpha/bench/{job_id}/stream تدفق تقدّم SSE
GET /settings/llm قراءة إعدادات LLM في Web UI
PUT /settings/llm تحديث إعدادات LLM المحلية
GET /settings/data-sources قراءة إعدادات مصادر البيانات المحلية
PUT /settings/data-sources تحديث إعدادات مصادر البيانات المحلية
GET /channels/status قراءة حالة IM channel runtime والمحولات
POST /channels/start بدء محولات IM configured
POST /channels/stop إيقاف محولات IM configured
POST /channels/pairing/command تنفيذ أمر sender-pairing على shared store
POST /scheduled-runs إنشاء مهمة بحث مجدولة (interval-ms أو cron)
GET /scheduled-runs سرد المهام المجدولة
DELETE /scheduled-runs/{job_id} إلغاء مهمة مجدولة
GET /scheduled-runs/playbooks سرد قوالب البحث
GET /scheduled-runs/playbooks/{slug} عرض قالب واحد ومتغيّراته
POST /scheduled-runs/playbooks/{slug} جدولة مهمة من قالب
POST /sessions/{id}/cancel إيقاف التشغيل الجاري للجلسة (يُسجَّل كإلغاء لا كفشل)
POST /sessions/{id}/title/auto توليد عنوان الجلسة من أول تبادل (لا يستبدل تسمية يدوية)
GET /correlation/regime الخط الزمني لنظام كثافة حواف الارتباط
GET /agents.json · POST /v1/query جسر OpenBB Workspace — يُسجَّل فقط مع إضافة openbb الاختيارية، و/v1/query يتطلب مصادقة

توثيق تفاعلي: http://localhost:8899/docs

الإعدادات الأمنية الافتراضية

للتطوير على localhost، يبقي vibe-trading serve سير المتصفح بسيطاً. لأي عميل غير محلي، تتطلب نقاط API الحساسة API_AUTH_KEY؛ استخدم Authorization: Bearer <key> لطلبات JSON/الرفع. تتعامل Web UI مع تدفقات Browser EventSource بعد إدخال المفتاح نفسه مرة واحدة في Settings.

الأدوات القادرة على shell (bash / background_run / cancel_background) مفعّلة فقط لواجهة CLI المحلية التفاعلية. أما بقية الأسطح — واجهة HTTP/SSE و MCP server على جميع وسائط النقل (بما في ذلك stdio) — فتبقى معطّلة ما لم تفعّلها صراحة عبر VIBE_TRADING_ENABLE_SHELL_TOOLS=1 (أو تمرير --enable-shell-tools إلى vibe-trading-mcp). نوع وسيط النقل لا يمنح صلاحية shell ضمنيًا أبدًا. قارئات المستندات والسجلات محدودة افتراضياً بجذور الرفع/الاستيراد؛ ضع الملفات تحت ~/.vibe-trading/uploads أو ~/.vibe-trading/runs أو ./uploads أو ./data (أو المسارين القديمين agent/uploads / agent/runs)، أو أضف دليلاً مخصصاً عبر VIBE_TRADING_ALLOWED_FILE_ROOTS. تُخزَّن الجلسات ونتائج التشغيل وتشغيلات swarm والمرفوعات وفهرس sessions.db كلها تحت ~/.vibe-trading (يمكن نقلها بالكامل عبر متغير البيئة VIBE_TRADING_HOME)، ويُنقَل السجل القديم تلقائياً عند أول تشغيل.

إعدادات Web UI

تتيح صفحة Settings في Web UI للمستخدمين المحليين تحديث مزود/نموذج LLM، وbase URL، ومعلمات التوليد، وreasoning effort، وبيانات اعتماد السوق الاختيارية مثل رمز Tushare. تُحفظ الإعدادات في agent/.env؛ وتُحمّل قيم المزودين الافتراضية من agent/src/providers/llm_providers.json.

قراءات Settings بلا آثار جانبية: لا تنشئ GET /settings/llm ولا GET /settings/data-sources ملف agent/.env، ولا تعيدان إلا مسارات نسبية للمشروع. قد تكشف قراءات وكتابات Settings حالة بيانات الاعتماد أو تحدث بيانات الاعتماد/بيئة التشغيل، لذلك تتطلب API_AUTH_KEY عند ضبطه. إذا كان API_AUTH_KEY غير مضبوط في وضع التطوير، فلا يقبل الوصول إلى Settings إلا من عملاء loopback.

تحتوي صفحة Settings نفسها على لوحة قنوات IM للمشغل المحلي. تستطلع /channels/status، وتعرض حالات configured/enabled/available/loaded/running وتلميحات استرداد المحولات، ويمكنها بدء أو إيقاف channel runtime configured دون العودة إلى الطرفية.

البحث المجدول (Scheduled research)

شغّل prompt بحثي أو backtest وفق جدول متكرر — من صفحة المجدولة في واجهة الويب أو عبر REST. المنفّذ الخلفي معطّل افتراضياً — شغّل الخادم بـ VIBE_TRADING_ENABLE_SCHEDULER=1 لتفعيله:

VIBE_TRADING_ENABLE_SCHEDULER=1 vibe-trading serve --port 8899

ثم أنشئ المهام عبر REST. الحقل schedule إما عدد صحيح بسيط (الفاصل بـالمللي ثانية) أو تعبير cron من 5 حقول (دقيقة ساعة يوم شهر يوم-الأسبوع؛ يقبل كل حقل * و*/n وأرقاماً وقوائم بفواصل ونطاقات مثل 1-5). يُقيَّم cron وفق الساعة الحائطية لـ timezone الاختيارية للمهمة (مفتاح IANA)، فيبقى الإيقاع ثابتاً عبر تغييرات التوقيت الصيفي — يُتخطى الوقت غير الموجود في الربيع، ويُنفَّذ الوقت المكرر في الخريف مرة واحدة عند أول ظهور. المهام بدون timezone تحتفظ بدلالات UTC كما هي:

# كل 6 ساعات (cron)
curl -X POST http://localhost:8899/scheduled-runs \
  -H "Content-Type: application/json" \
  -d '{"prompt":"Scan CSI300 for momentum breakouts and backtest the top 5","schedule":"0 */6 * * *"}'

# أيام العمل 23:30 بتوقيت أوكلاند المحلي — ثابت عبر التوقيت الصيفي
curl -X POST http://localhost:8899/scheduled-runs \
  -H "Content-Type: application/json" \
  -d '{"prompt":"Pre-open scan of NZX names","schedule":"30 23 * * 1-5","timezone":"Pacific/Auckland"}'

# السرد / الإلغاء
curl http://localhost:8899/scheduled-runs
curl -X DELETE http://localhost:8899/scheduled-runs/<job_id>

كل تشغيل ينفّذ prompt في جلسة agent جديدة (تُوضع معلمات backtest الاختيارية في config)، وتُحفظ المهام تحت ~/.vibe-trading/ فتبقى بعد إعادة التشغيل. بدون هذه الراية، تسجّل نقاط /scheduled-runs المهام لكن لا يُطلق شيء. أضف -H "Authorization: Bearer <key>" لكل طلب عند ضبط API_AUTH_KEY.

يأتي المجدول ومعه خمسة قوالب بحث جاهزة للجدولة — premarket-brief وearnings-season-tracker وportfolio-checkup وa-share-money-flow وinstitutional-holdings-diff. يصرّح كل قالب بالبيانات التي يحتاجها بلغة طبيعية بدل تسمية أداة بعينها، فيظل صالحاً مع توسّع مجموعة الأدوات، ويُطلب منه ذكر أي مُدخل مفقود بدل ملئه من الذاكرة. يمكن الوصول إليها من CLI أو REST أو عبر /playbook داخل واجهة TUI:

vibe-trading playbook list                     # القوالب الخمسة
vibe-trading playbook show premarket-brief     # النص والمتغيرات المعلنة والوتيرة المقترحة
vibe-trading playbook create premarket-brief \
  --var home_market="US equities" --var watchlist="AAPL, MSFT, NVDA" \
  --timezone America/New_York

curl http://localhost:8899/scheduled-runs/playbooks
curl http://localhost:8899/scheduled-runs/playbooks/premarket-brief
curl -X POST http://localhost:8899/scheduled-runs/playbooks/premarket-brief \
  -H "Content-Type: application/json" \
  -d '{"variables":{"home_market":"US equities","watchlist":"AAPL, MSFT, NVDA"}}'

إرسال {} يجدول القالب على وتيرته المقترحة بقيمه الافتراضية المعلنة. يصبح النص المُصاغ هو prompt المهمة حرفياً، ويُرفض أي متغير غير معلن بدل تجاهله بصمت.


🔌 MCP Plugin

يعرض Vibe-Trading 70 أداة MCP لأي عميل متوافق مع MCP. يعمل كعملية stdio فرعية، دون إعداد خادم. أدوات البحث الأساسية تعمل دون أي مفاتيح API لأسواق HK/US/crypto؛ وأدوات connector للتداول تستخدم profile الموصل المختار، ويحتاج run_swarm وحده إلى مفتاح LLM.

متغيرات البيئة: العميل هو من يشغّل الخادم بنفسه، لذا لا يصل إليه export من الـ shell أبداً —— اضبطها في كتلة env الخاصة بالعميل. كود الاختبار الخلفي المولَّد محصور ضمن جذور التشغيل المسموح بها، لذا تحتاج إلى VIBE_TRADING_ALLOWED_RUN_ROOTS لكتابة النتائج في دليل عمل خاص بك:

{
  "mcpServers": {
    "vibe-trading": {
      "command": "vibe-trading-mcp",
      "env": { "VIBE_TRADING_ALLOWED_RUN_ROOTS": "C:\\Users\\me\\research" }
    }
  }
}
Claude Desktop

أضف إلى claude_desktop_config.json:

{
  "mcpServers": {
    "vibe-trading": {
      "command": "vibe-trading-mcp"
    }
  }
}
OpenClaw

أضف إلى ~/.openclaw/config.yaml:

skills:
  - name: vibe-trading
    command: vibe-trading-mcp
Cursor / Windsurf / عملاء MCP آخرون
vibe-trading-mcp                   # stdio (default)
vibe-trading-mcp --transport http  # Streamable HTTP (spec default) at /mcp
vibe-trading-mcp --transport sse   # legacy SSE (deprecated)

أدوات MCP المعروضة (70): list_skills, load_skill, start_research_goal, get_research_goal, add_goal_evidence, update_research_goal_status, backtest, factor_analysis, alpha_zoo, alpha_bench, analyze_options, analyze_options_payoff, pattern_recognition, read_url, read_document, web_search, write_file, read_file, trading_connections, trading_select_connection, trading_check, trading_account, trading_positions, trading_orders, trading_quote, trading_history, list_swarm_presets, run_swarm, get_market_data, get_fund_flow, get_dragon_tiger, get_northbound_flow, get_margin_trading, get_block_trades, get_shareholder_count, get_lockup_expiry, get_sector_info, get_research_reports, get_stock_news, get_sec_filings, get_financial_statements, get_options_chain, get_stock_profile, screen_market, search_symbol, get_macro_series, iwencai_search, qveris_search, qveris_inspect, qveris_execute, get_institutional_holdings, etf_holdings, prediction_market, research_papers, get_swarm_status, get_run_result, list_runs, reap_stale_runs, retry_run, analyze_trade_journal, extract_shadow_strategy, run_shadow_backtest, render_shadow_report, scan_shadow_signals, quantlib_call, cashflow_performance, orderbook_depth, sentiment, technical_indicators, get_fundamentals.

أدوات MCP الخارجية في SWARM

يمكن لعمّال run_swarm استدعاء أدوات من خوادم MCP خارجية بعد موافقة المشغّل. اضبط قائمة السماح على جانب الخادم في VIBE_TRADING_SWARM_AGENT_CONFIG أو ~/.vibe-trading/swarm-agent.json أو الملف الاحتياطي ~/.vibe-trading/agent.json، ثم اذكر الأدوات البعيدة داخل إعداد swarm باسم الغلاف المحلي مثل mcp_internal_kb_search. تبقى variables التي يمرّرها المستدعي بيانات قوالب فقط، ولا يمكنها حقن روابط MCP أو أوامر أو متغيرات بيئة أو تجاوزات لقائمة السماح.

التثبيت من ClawHub (أمر واحد)
npx clawhub@latest install vibe-trading --force

--force مطلوب لأن المهارة تشير إلى واجهات API خارجية، مما يطلق فحص VirusTotal الآلي. الكود مفتوح المصدر بالكامل وآمن للفحص.

ينزل هذا المهارة وإعداد MCP إلى مجلد مهارات وكيلك. لا حاجة للاستنساخ.

تصفح على ClawHub: clawhub.ai/skills/vibe-trading

OpenSpace — مهارات ذاتية التطور

كل المهارات المالية الـ 89 منشورة على open-space.cloud وتتطور ذاتياً عبر محرك التطور الذاتي في OpenSpace.

للاستخدام مع OpenSpace، أضف خادمي MCP إلى إعداد وكيلك:

{
  "mcpServers": {
    "openspace": {
      "command": "openspace-mcp",
      "toolTimeout": 600,
      "env": {
        "OPENSPACE_HOST_SKILL_DIRS": "/path/to/vibe-trading/agent/src/skills",
        "OPENSPACE_WORKSPACE": "/path/to/OpenSpace"
      }
    },
    "vibe-trading": {
      "command": "vibe-trading-mcp"
    }
  }
}

سيكتشف OpenSpace كل المهارات الـ 89 تلقائياً، مما يتيح auto-fix وauto-improve والمشاركة المجتمعية. ابحث عن مهارات Vibe-Trading عبر search_skills("finance backtest") في أي وكيل متصل بـ OpenSpace.

MetaTrader 5 (Exness وغيره من وسطاء MT5)

يتصل بـطرفية MT5 تعمل محلياً عبر حزمة MetaTrader5 الرسمية (Windows فقط):

pip install "vibe-trading-ai[mt5]"

اضبط ~/.vibe-trading/mt5.json (يُنشأ يدوياً، وبـ chmod 600 حيثما كان ذلك مدعوماً):

{
  "login": 12345678,
  "password": "...",
  "server": "Exness-MT5Trial8",
  "symbol_suffix": "m",
  "max_order_volume": 1.0,
  "max_order_notional_usd": 10000
}

ثم:

vibe-trading connector use mt5-paper-sdk
vibe-trading connector check
vibe-trading connector account
vibe-trading connector quote EURUSD
vibe-trading connector history EURUSD
Profile الحساب الأوامر
mt5-paper-sdk demo قراءة فقط
mt5-live-sdk-readonly real قراءة فقط
mt5-paper-trade demo مباشر (تسري حدود الحجم الخاصة بالموصل)
mt5-live-trade real خاضع لبوابة التفويض (mandate) + مفتاح الإيقاف (kill-switch)

حدود الأمان: "paper" هو حساب demo لدى الوسيط، ويُتحقق من ذلك عند كل استدعاء — إذ تعيد الطرفية account_info().trade_mode ورقم تسجيل الدخول، لذا يُرفض رفضاً قاطعاً أي profile ورقي مربوط بحساب أموال حقيقية (أو العكس). يحدد MT5 أحجام الأوامر بوحدة اللوت (1 لوت EURUSD = 100,000 EUR)؛ وتسعّر بوابة التفويض في وضع live اللوتات عبر hook التسعير بالدولار الأمريكي في الموصل، كما تسري حدود max_order_volume / max_order_notional_usd الخاصة بالموصل على demo وlive معاً، وتفشل مغلقةً (fail-closed) إذا تعذّر تسعير القيمة الاسمية. ملاحظة لحسابات التحوط (وهي الوضع الافتراضي لدى Exness): أي أمر بالاتجاه المعاكس يفتح تحوطاً — أغلق المراكز عبر التذكرة (trading_cancel_order مع تذكرة المركز)، فذلك يثبّت الصفقة على المركز ولا يمكنه إلا تقليل الانكشاف. مسار التراجع/الإيقاف: يمنع مفتاح الإيقاف أوامر live الجديدة؛ وتبقى الإلغاءات متاحة وتُسجَّل في سجل التدقيق. حدود التفويض بالدولار الأمريكي؛ أما عملات الحسابات غير الدولارية فتُفرض هوامشها لدى الوسيط بعملة الحساب.

يتشارك مُحمّل بيانات السوق mt5 (رأس سلسلة تراجع الفوركس) ملف mt5.json نفسه — ومن دون هذا الملف يرتبط للقراءة فقط بآخر طرفية مستخدمة ومسجَّلة الدخول.


🔌 موصّل eToro Public API

يتصل بـ eToro Public API لحسابات التجربة والحسابات الحقيقية عبر زوج مفاتيح (x-api-key + x-user-key). بيئتا التجربة والحقيقة مفصولتان بنيويًا: مفاتيح التجربة لا تصل إلا إلى مسارات /demo.

اضبط ~/.vibe-trading/etoro.json (أنشئه بنفسك، مع chmod 600 حيثما يُدعم):

{
  "api_key": "YOUR_PUBLIC_API_KEY",
  "user_key": "YOUR_USER_KEY",
  "profile": "paper"
}

بدلاً من ذلك يمكنك ضبط ETORO_API_KEY وETORO_USER_KEY في ~/.vibe-trading/.env.

ثم:

vibe-trading connector use etoro-paper-sdk
vibe-trading connector check
vibe-trading connector account
vibe-trading connector positions
vibe-trading connector quote BTC
الملف التعريفي الحساب الأوامر
etoro-paper-sdk تجربة قراءة فقط
etoro-live-sdk-readonly حقيقي قراءة فقط
etoro-paper-trade تجربة إرسال مباشر على مسارات التجربة
etoro-live-trade حقيقي مُقيَّد بالتفويض ومفتاح الإيقاف

يستخدم البحث عن الرموز خاصية internalSymbolFull في eToro (مثلاً BTC ← معرّف الأداة 100000). استخدم أداة الوكيل etoro_search_instruments لحل الرموز قبل التداول.

حدود الأمان: التجربة والحقيقة مفصولتان بالمسار ومقيّدتان بالمفتاح (paper_guard: path_separated_key_bound). الإجراءات الحقيقية التي تزيد المخاطر (الفتح وبدء/زيادة النسخ) تتطلب تفويضًا مُصرَّحًا به، وحالة إيقاف صافية، وحسابًا بالدولار مُتحقَّقًا منه لفرض القيمة الاسمية للنسخ. أما الإغلاق الكامل والجزئي المُتحقَّق منه، وإلغاء الأوامر المعلّقة، وإنهاء النسخ فتبقى متاحة أثناء الإيقاف وتُسجَّل في سجل التدقيق. إلغاء إغلاق معلّق وتعديل وقف الخسارة للمركز عمليتان للتجربة فقط: المسار الحقيقي يفشل مغلقًا لأنهما قد يزيدان الانكشاف أو ينقلان هامشًا إضافيًا دون بيانات API كافية لقياس المخاطر الدولارية الإضافية. مبالغ النسخ مُقوَّمة بعملة حساب eToro، ويتطلب كل بدء/تعديل نسخ معرّفًا مرجعيًا آمنًا للروابط من 1 إلى 35 حرفًا يوفّره المتصل من أجل الاستعلام. أدوات الكتابة الخاصة بـ eToro (etoro_close_position وetoro_copy_* وغيرها) هي أدوات وكيل فقط — غير مُعرَّضة عبر MCP أو CLI. التراجع: أعِد إلغاء التزامات الموصّل أو عطّل الملفات التعريفية؛ ويمنع الإيقاف أي إجراء حقيقي جديد يزيد المخاطر.


🔌 تحميل الأدوات من خوادم MCP خارجية (وضع MCP Client)

هذا هو الاتجاه المعاكس لقسم MCP Plugin أعلاه. يتيح MCP Plugin لوكلاء آخرين استدعاء أدوات Vibe-Trading. أما هذا القسم فيتيح لوكيل Vibe-Trading المدمج استدعاء أدوات من خوادم MCP الخاصة بك.

بداية سريعة

أنشئ الملف ~/.vibe-trading/agent.json:

{
  "mcpServers": {
    "my-server": {
      "command": "uvx",
      "args": ["my-mcp-server"]
    }
  }
}

ثم شغّل أي أمر CLI — تُحقَن أدوات الخوادم الخارجية العادية تلقائياً في سجل الوكيل بعد الأدوات المحلية:

vibe-trading run "use my-server to do X"

مسبار MCP الرسمي من IBKR للقراءة فقط

يستطيع Vibe-Trading الاتصال مباشرةً بنقطة نهاية MCP البعيدة الرسمية لدى Interactive Brokers في وضع القراءة فقط. أضف ما يلي إلى ~/.vibe-trading/agent.json:

{
  "mcpServers": {
    "ibkr": {
      "type": "streamableHttp",
      "url": "https://api.ibkr.com/v1/api/mcp",
      "auth": {
        "type": "oauth",
        "scopes": ["mcp.read"],
        "clientName": "Vibe-Trading",
        "cacheDir": "~/.vibe-trading/live/ibkr/oauth"
      },
      "enabledTools": ["*"]
    }
  }
}

ثم ابدأ تدفق OAuth عبر المتصفح:

vibe-trading connector authorize ibkr-live-official-mcp-readonly

لا يُقبل الرمز الشامل * إلا مع مسبار mcp.read من IBKR. والترخيص لهذا الملف يؤكد الوصول إلى نطاق القراءة الرسمي لدى IBKR فحسب؛ أما استدعاءات trading_account وtrading_positions العامة فتبقى معطّلة إلى أن تنشر IBKR أسماء أدوات قراءة مستقرة يمكن لـ Vibe-Trading ربطها بأمان. وأي إعداد يضيف mcp.write يجب أن يثبّت قائمة أدوات صريحة، ويظل مع ذلك مارّاً عبر حارس الأوامر الحية.

وإذا أصدرت IBKR عميل OAuth مُسجَّلاً مسبقاً، فأضف clientId وclientSecret داخل auth.

موصّلات التداول: أسرع مسار

لمن لا يستطيع انتظار موافقة عميل OAuth من IBKR، اتصل بجلسة TWS أو IB Gateway محلية. تبقى بيانات الاعتماد داخل تطبيق IBKR على سطح المكتب، ولا يتصل Vibe-Trading إلا بـ 127.0.0.1 ويعرضه كملف موصّل.

ثبّت الـ SDK الاختياري:

pip install "vibe-trading-ai[ibkr]"

افتح TWS للتداول الورقي أو IB Gateway الورقي، وفعّل API socket clients، ثم شغّل:

vibe-trading connector list
vibe-trading connector use ibkr-paper-local
vibe-trading connector configure ibkr-paper-local --yes
vibe-trading connector check
vibe-trading connector account
vibe-trading connector positions
vibe-trading connector orders
vibe-trading connector quote AAPL
vibe-trading connector history AAPL --duration "30 D" --bar-size "1 day"

المنافذ المحلية الافتراضية:

التطبيق ورقي حيّ للقراءة فقط
TWS 7497 7496
IB Gateway 4002 4001

يعرض الوكيل أدوات بنطاق الموصّل بأسماء trading_connections وtrading_select_connection و trading_check وtrading_account وtrading_positions وtrading_orders وtrading_quote و trading_history. ولا تُسجَّل أدوات MCP الخام لوسطاء التداول الحي مباشرةً بصيغة mcp_<broker>_*، ولا تُسجَّل أي أداة لتنفيذ الأوامر لدى IBKR.

🔐 وضع TAP — عزل كامل لبيانات الاعتماد وكتابة بموافقة بشرية

اختياري ومعطّل افتراضياً. إن لم تُضبط متغيرات TAP_* أدناه، يتصرف الموصّل تماماً كما كان (اتصال مباشر بـ SDK الوسيط) ولا يتغير شيء.

TAP (Tool Authorization Protocol) وسيط لبيانات الاعتماد: لا يحمل الوكيل أبداً المفتاح السري الخام لواجهة الوسيط، وتخضع عمليات الكتابة ذات الأثر لموافقة بشرية. ومع تفعيل وضع TAP يُرسَل كل استدعاء لـ Alpaca — تنفيذ الأمر والإلغاء وكذلك القراءات (account/positions/orders/quote/bars) — إلى نقطة النهاية /forward في وسيط TAP بدل SDK الوسيط؛ فيحقن TAP المفتاح الحقيقي على جانب الخادم ثم يمرّر الطلب إلى المصدر.

  • لا تحمل عملية الوكيل أي مفتاح لـ Alpaca إطلاقاً — ولا تحتاج حتى إلى alpaca-py — لأن كامل حركة الخروج تمرّ عبر TAP. يُشار إلى السر بالاسم (<CREDENTIAL:alpaca.key_id>) ويستبدله TAP.
  • تتوقف عمليات الكتابة بانتظار موافقة بشرية. لا يصل أمر أو إلغاء إلى الوسيط دون موافقة إنسان؛ وحتى عبارة «اشترِ الآن» المحقونة عبر التوجيه تُحتجَز، ورفضها يعني أنها لن تصل إلى Alpaca أبداً. وتحمل الأوامر معرّف client_order_id حتمياً، فتُلغى تكرارات إعادة المحاولة عند تسابق الموافقة بدل تنفيذ الأمر مرتين.
  • تُعتمد القراءات تلقائياً. فـ account/positions/orders/quote/bars كلها طلبات GET يمرّرها TAP دون خطوة بشرية — وهذا عزل لبيانات الاعتماد (لا مفتاح داخل العملية) لا بوابة، فلا احتكاك إضافي تقريباً.
  • يثبّت allowed_hosts على اعتماد TAP الجهات التي يجوز إرسال المفتاح إليها، فيُرفض أي هدف مُتلاعَب به (403) قبل الحقن.

كيفية التفعيل:

  1. في لوحة TAP، أنشئ اعتماداً متعدد الأسرار باسم alpaca يحمل زوج مفاتيح Alpaca في الحقلين key_id وsecret_key، وأسنِده إلى وكيلك، مع allowed hosts تشمل paper-api.alpaca.markets (أو المضيف الحي api.alpaca.markets) وdata.alpaca.markets (مضيف بيانات السوق الذي تستخدمه quote/bars). واستخدم اعتمادَي TAP منفصلين للورقي والحي (مثل alpaca-paper / alpaca-live، يُختاران عبر TAP_ALPACA_CREDENTIAL)، كلٌّ منهما بـ allowed_hosts مثبّت على مضيف واجهته الخاصة — عندئذ يرفض TAP بنيوياً إرسال المفتاح الورقي إلى المضيف الحي والعكس، فيبقى الفصل بين الورقي والحي واضحاً من طرف إلى طرف.
  2. أضف إلى agent/.env:
المتغير إلزامي الوصف
TAP_PROXY_URL نعم عنوان وسيط TAP الأساسي (مثل https://proxy.tap.human.tech)
TAP_AGENT_KEY نعم مفتاح واجهة وكيل TAP الخاص بك (سرّي)
TAP_ALPACA_CREDENTIAL لا اسم اعتماد TAP الخاص بـ Alpaca (الافتراضي alpaca)
TAP_APPROVAL_TIMEOUT لا عدد الثواني لانتظار قرار بشري (الافتراضي 300)

عند إجراء عملية كتابة، وافق عليها أو ارفضها من قناة TAP لديك (Telegram / اللوحة). يُمرَّر الأمر أو الإلغاء المُوافَق عليه إلى Alpaca، أما المرفوض أو الذي انتهت مهلته فيعيد خطأ ولا يُرسَل إطلاقاً.

قيد معروف — تسابق الموافقة. إذا وافق الإنسان تماماً عند حدّ TAP_APPROVAL_TIMEOUT، فقد يمرّر TAP الأمر بينما يكون الاستطلاع قد استسلم بالفعل: عندها تُبلّغ البوابة عن خطأ رغم وصول الأمر إلى الوسيط، ويَعُدّ عدّاد max_trades_per_day صفقةً أقل. ويمنع client_order_id الحتمي إعادةَ المحاولة من تنفيذ الأمر مرتين؛ لكن إن كنت تعتمد على حدّ يومي ضيّق للصفقات، فتحقّق من الأوامر المفتوحة بعد خطأ مهلة TAP قبل إعادة المحاولة.

النطاق: يغطي تنفيذ أوامر Alpaca وإلغاءها والقراءات الخمس جميعها — أي كامل حركة خروج الموصّل، فلا تحمل العملية مفتاحاً على أي مسار. أما الوسطاء الذين يوقّعون بـ HMAC (Binance/OKX) فمتروكون لمرحلة لاحقة (التوقيع على جانب العميل لا يناسب حقن الخروج الصِّرف). وهذه الخطّافات إضافية: تعيش داخل موصّل Alpaca وتترك بوابة التفويض الحي كما هي.

مرجع الإعدادات

الحقل النوع الافتراضي الوصف
type string يُستنتج لـ stdio، وإلزامي لـ HTTP يُحذف مع stdio، ويُضبط على sse / streamableHttp للخوادم القائمة على URL.
command string إلزامي لـ stdio الملف التنفيذي الذي يُشغَّل لخوادم stdio. غير صالح لخوادم sse / streamableHttp.
args array [] وسائط سطر الأوامر لخوادم stdio فقط.
env object {} متغيرات بيئة إضافية تُدمج في بيئة العملية الفرعية، لخوادم stdio فقط.
url string إلزامي لـ sse / streamableHttp عنوان نقطة النهاية البعيدة SSE / streamable HTTP. لا يُستخدم مع stdio.
headers object {} ترويسات HTTP إضافية لخوادم sse / streamableHttp فقط.
toolTimeout number 30 مهلة استدعاء الأداة الواحدة بالثواني
initTimeout number غير مضبوط (max(toolTimeout, 30)) مهلة تهيئة MCP / ترخيص OAuth بالثواني. استخدمها للترخيص البطيء عبر المتصفح دون توسيع مهلة الاستدعاءات العادية.
enabledTools array ["*"] قائمة الأدوات المسموح بها. استخدم ["*"] لعرض كل أدوات الخادم

موقع ملف الإعدادات: ~/.vibe-trading/agent.json (بصيغة JSON أو YAML).

ومع وسائط النقل القائمة على URL يكون type إلزامياً؛ إذ لم يعد الوكيل يخمّن بين SSE و streamable HTTP من لاحقة العنوان.

تجاوزات على مستوى الجلسة (API)

عند إنشاء جلسة عبر الواجهة البرمجية يمكنك تمرير mcpServers داخل session.config لتوسيع الإعداد العام أو تجاوزه لتلك الجلسة وحدها:

{
  "config": {
    "mcpServers": {
      "research-server": {
        "command": "uvx",
        "args": ["research-mcp"],
        "enabledTools": ["search", "fetch"]
      }
    }
  }
}

تسمية الأدوات

تُعرض الأدوات البعيدة العادية بأسماء مستقرة على الصيغة mcp_<server>_<tool>. أما خوادم MCP لوسطاء التداول الحي فتبقى خلف واجهة الموصّلات trading_*.

وإذا أنتج اسما خادمين البادئةَ نفسها الآمنة بترميز ASCII (مثل foo-bar وfoo_bar اللذين يصيران foo_bar)، تُضاف لاحقة تجزئة حتمية على مستوى مقطع الخادم للحفاظ على تفرّد الأسماء، ويصل المشغّل تحذير:

WARNING: Configured MCP server 'foo-bar' collides with another server after local name
normalization. Using local tool prefix 'mcp_foo_bar_<hash>_<tool>' to keep generated
tool names unique. Rename the server in agent config if you want a different prefix.

حدود الإصدار v1

الحد التفصيل
وسائط النقل stdio و SSE و streamable HTTP
التنفيذ تسلسلي فقط — لا تدخل أدوات MCP مسار القراءة المتوازي
الأسطح الأدوات فقط (الموارد والتوجيهات خارج نطاق v1)
إعادة التحميل الساخن غير مدعومة — أعد تشغيل العملية لالتقاط تغييرات الإعداد
مسار Swarm لا تتوفر أدوات MCP داخل سجلات عمّال Swarm في v1

📁 هيكل المشروع

انقر للتوسيع
Vibe-Trading/
├── agent/                          # Backend (Python)
│   ├── cli/                        # CLI package — interactive TUI + subcommands
│   ├── api_server.py               # FastAPI server — runs, sessions, upload, swarm, SSE
│   ├── mcp_server.py               # MCP server — 70 tools for OpenClaw / Claude Desktop
│   │
│   ├── src/
│   │   ├── agent/                  # ReAct agent core
│   │   │   ├── loop.py             #   5-layer compression + read/write tool batching
│   │   │   ├── context.py          #   system prompt + auto-recall from persistent memory
│   │   │   ├── skills.py           #   skill loader (89 bundled + user-created via CRUD)
│   │   │   ├── tools.py            #   tool base class + registry
│   │   │   ├── memory.py           #   lightweight workspace state per run
│   │   │   ├── frontmatter.py      #   shared YAML frontmatter parser
│   │   │   └── trace.py            #   execution trace writer
│   │   │
│   │   ├── memory/                 # Cross-session persistent memory
│   │   │   └── persistent.py       #   file-based memory (~/.vibe-trading/memory/)
│   │   │
│   │   ├── tools/                  # 94 auto-discovered agent tools
│   │   │   ├── backtest_tool.py    #   run backtests
│   │   │   ├── remember_tool.py    #   cross-session memory (save/recall/forget)
│   │   │   ├── skill_writer_tool.py #  skill CRUD (save/patch/delete/file)
│   │   │   ├── session_search_tool.py # FTS5 cross-session search
│   │   │   ├── swarm_tool.py       #   launch swarm teams
│   │   │   ├── web_search_tool.py  #   DuckDuckGo web search
│   │   │   └── ...                 #   bash, file I/O, factor analysis, options, alpha browser + bench, etc.
│   │   │
│   │   ├── factors/                # Alpha Zoo — 462 ألفا عبر 5 families
│   │   │   ├── base.py             #   19 عاملاً (rank/scale/ts_*/delta/decay_linear/safe_div/vwap)
│   │   │   ├── registry.py         #   تحميل بيانات وصفية AST فقط + حساب كسول + بوابات سلامة
│   │   │   ├── bench_runner.py     #   IC + تصنيف alive/reversed/dead
│   │   │   └── zoo/                #   qlib158 (154) + alpha101 (101) + gtja191 (191) + academic (12) + fundamental (4)
│   │   │
│   │   ├── api/                    # وحدات مسارات FastAPI
│   │   │   └── alpha_routes.py     #   /alpha/list, /alpha/{id}, /alpha/bench, SSE stream
│   │   │
│   │   ├── skills/                 # 89 finance skills in 9 categories (SKILL.md each)
│   │   ├── swarm/                  # Swarm DAG execution engine
│   │   │   └── presets/            #   30 swarm preset YAML definitions
│   │   ├── session/                # Multi-turn chat + FTS5 session search
│   │   └── providers/              # LLM provider abstraction
│   │
│   └── backtest/                   # Backtest engines
│       ├── engines/                #   8 engines + composite cross-market engine + options_portfolio
│       ├── loaders/                #   24 sources: tushare, okx, binance, yfinance, akshare, baostock, tencent, mootdx, ccxt, futu, pykrx, local, eastmoney, sina, stooq, yahoo, finnhub, alphavantage, tiingo, fmp, longbridge, mt5, qveris, india_broker
│       │   ├── base.py             #   DataLoader Protocol
│       │   └── registry.py         #   Registry + auto-fallback chains
│       └── optimizers/             #   MVO, equal vol, max div, risk parity
│
├── frontend/                       # Web UI (React 19 + Vite + TypeScript)
│   └── src/
│       ├── pages/                  #   Home, Agent, AlphaZoo, RunDetail, Compare, Correlation, Settings
│       ├── components/             #   chat, charts, layout
│       └── stores/                 #   Zustand state management
│
├── Dockerfile                      # Multi-stage build
├── docker-compose.yml              # One-command deploy
├── pyproject.toml                  # Package config + CLI entrypoint
├── tools/                          # Repo-level CI helpers
│   └── ci_grep_gates.sh            # rejects yaml.load / trademark / per-stock-data leaks
└── LICENSE                         # MIT

🏛 النظام البيئي

Vibe-Trading جزء من نظام وكلاء HKUDS:

NanoBot
Ultra-Lightweight Personal AI Assistant
AI-Trader
Agent-Native Signal & Copy Trading Platform
CLI-Anything
Making All Software Agent-Native
OpenSpace
Self-Evolving AI Agent Skills
ClawTeam
Agent Swarm Intelligence

🗺 خارطة الطريق

نشحن على مراحل. تنتقل العناصر إلى Issues عندما يبدأ العمل.

المرحلة الميزة الحالة
Trust Layer بطاقات تشغيل قابلة لإعادة الإنتاج تُنتج وتظهر في Run Detail؛ يضيف v1 آثار الأدوات والاستشهادات v0 شُحن
Hypothesis Registry فرضيات بحثية دائمة مع حالة lifecycle ومصادر بيانات ومهارات وروابط run-card وملاحظات إبطال Backend MVP شُحن
Research Autopilot حلقة بحث يدوية أولاً: فرضية → اختبار رجعي حتمي → تقرير أدلة المراحل 1–3 شُحنت
Data Bridge أحضر بياناتك: موصلات CSV/Parquet/SQL محلية مع schema mapping المُحمِّل المحلي شُحن
Options Lab سطح تقلب، ولوحة Greeks، ومستكشف payoff/scenario مخطط
Portfolio Studio أشعة مخاطر، وقيود، ومحسن يراعي الدوران، وملاحظات إعادة توازن محسن يراعي الدوران تم الإطلاق 0.1.11؛ الباقي مخطط
Alpha Zoo 462 ألفا كمّي جاهز (Qlib 158 + Kakushadze 101 + GTJA 191 + academic + fundamental)، سطر أوامر واحد للـ bench، تكامل agent، وواجهة Web تم الإطلاق 0.1.8، موسّع حتى 0.1.12
Strategy Development Manager تسجيل الأوراق البحثية / أبحاث الوسطاء كعوامل واستراتيجيات مع مخزن دائم + دورة حياة آلية لاضمحلال IC/Sharpe تم الإطلاق 0.1.11
Correlation Regime جدول زمني لنظام الارتباط قائم على كثافة الحواف + التباطؤ (hysteresis) فوق /correlation — رصد متى تندمج الأسواق في كتلة واحدة تم الإطلاق 0.1.12
Research Delivery موجزات مجدولة وجلسات بحث حي عبر Slack / Telegram / قنوات IM شبيهة بالبريد المُجدوِل + IM Runtime شُحنا
Community مهارات وإعدادات مسبقة وبطاقات استراتيجية قابلة للمشاركة قيد الاستكشاف

المساهمة

نرحب بالمساهمات! راجع CONTRIBUTING.md للإرشادات.

المشكلات الجيدة للمبتدئين موسومة بـ good first issue — اختر واحدة وابدأ.

هل تريد المساهمة بشيء أكبر؟ راجع خارطة الطريق أعلاه وافتح issue للنقاش قبل البدء.


المساهمون

شكراً لكل من ساهم في Vibe-Trading!

مساهمو واعتمادات دورة v0.1.13 الأخيرة:

  • @santhreal — a 17-PR correctness and resource-leak sweep: the HTTP throttle now sweeps stale buckets interval-aware so rate-limit spacing survives (#1047), the rate limiter stops growing without bound on unique client IPs (#1039), the event bus notifies and removes subscribers on clear (#1046), _json_loads is guarded against corrupted JSON in database columns (#1045), NaN/inf volume and close no longer crash format_grounding_block (#1043), inf from pct_change on zero equity is replaced (#1041), Shoonya tolerates empty-string numerics (#1038), drawdown is computed from the absolute peak on negative equity (#958) and insolvent empty cross accounts are marked liquidated (#959), plus exact memory index anchors (#956/#957) and an A-share code / trade-journal parsing batch (#919, #926–#935)
  • @shadowinlife — HK market-data fallback routing repaired with a new Tencent HK source (#1000), Shadow multi-market backtests split per settlement currency (#997), bare US tickers routed to us_equity (#994), MCP list/dict arguments tolerating JSON-string clients (#993), generated signal engines passing the backtest sandbox validator (#992), and the memory GC dry-run fix (#973)
  • @honginp — the USD-M perpetual lifecycle end to end: funding and liquidation execution (#903), isolated & cross margin liquidation modelling (#889), ordered fidelity evidence persistence (#936), atomic position rebalancing (#951), and strict historical position rebalancing that preserves collateral, funding, fees and fill evidence (#1019)
  • @QCYTSN — the desktop Electron shell lifecycle (#923), Windows packaging with a checksum-pinned embedded runtime and safeStorage credential handling (#1015), and Settings model discovery + runtime identity UX (#924)
  • @Robin1987China — the technical_indicators (#921) and sentiment (#939) tools, annualisation entries for 15 data sources with a CI coverage gate (#891), indicator inputs read without sampling (#1005), and the quant_strategy_desk final report aggregator (#1048)
  • @Shizoqua — MCP specs cache keyed on remote server identity (#1049), memory FTS5 ranking with importance decay (#1032), swarm detection of ok/success:false tool failures (#1028), and lowercase 4h resampling in the yfinance loader (#1013)
  • @ngoanpv — timezone-aware scheduled research (#954, closes #953), one malformed record no longer breaking the whole store (#1003), interval creates without a resolvable zone (#1004), and delete-route job id validation (#980)
  • @he-yufeng — risk x-ray artifacts in portfolio runs (#900), Portfolio Studio artifacts surfaced in run detail (#966), yfinance crypto routed to the crypto engine (#970), and hierarchy-routed memory entries keeping their .md extension (#984)
  • @wiliao — Canadian markets end to end: TSX/TSXV market data (#1024) and symbol support through search fail-fast and CSV grounding (#1037)
  • @MuggleJinx — session and run history stored under the user runtime root (#925, closes #904) and ~/.vibe-trading/.env loaded on the connector command path (#902, closes #901)
  • @cgycorey — Alpha Zoo tools reaching MCP (#979) and mapping-shaped Responses stream events accepted (#1034)
  • @ofeksh-tr — the eToro Public API connector with path-separated demo/real profiles (#989) — broker connectors 12 → 13
  • @su322 — source message ids threaded into IM outbound so QQ replies stay passive (#1008), and the output principle that stops the agent once evidence is sufficient (#1010)
  • @zwrong — the vibe-trading update self-upgrade command (#1020)
  • @yrk111222 — ModelScope as an OpenAI-compatible provider (#1011)
  • @x-lambda — agent proxy opt-out covering sync and async clients (#995)
  • @dineeshd — authenticated API capability surfaces under enforced CSP (#961)
  • @hhj123123 — the canonical run root preserved after HOME isolation (#1012)
  • @00EVA — the Settings model dropdown auto-resizing so long provider/model slugs stay readable (#1006)
  • @darkknight4563 — bar_returns kept bit-identical for gapped positive series (#895)
  • @sambazhu — mootdx config pre-seeded in the sandbox home (#982)
  • @yagnikpipaliya — self-healing for Claude models that deprecate the temperature field (#890, closes #856)
  • @JungHoonGhae — the Korea equity (KRX) market engine (#693)
  • @shugaoye — the OpenBB Workspace bridge (#817)
  • @TSENGCHIENFENG — the read-only Taiwan snapshot tool (#848)
  • @ddy4633, @tyj147454413-cmd, @y85998607, @klmtseng, @ebujinovch, @g0rdonL, @AmirF194, @Echoandelementwebsites, @dvirarad, @1anter — correlation, loader, vn.py-export, PIT-fundamentals and alpha-bench fixes carried into this cycle
  • @warren618 / Haozhe Wu — the finance-math layer and valuation engine, the entity + cash-flow spine, run manifests and the hash-chained audit ledger, the four read-only data tools, the institutional commands and investor lenses, the grounding-gate repair, the analytic options payoff tool (#946), Codex OAuth recovery (#1014), the Shadow runtime root fix (#1017), release integration and open-PR/issue triage
مساهمو دورة v0.1.12
  • @santhreal — جولة تصحيح واسعة عبر 30 PR: تقوية strict-JSON / الأرقام المنتهية عبر المقاييس والعوامل والأنماط والخيارات (#764/#765/#766/#767/#739/#740/#744)، وصحّة المحمّل (#761 شموع yahoo بدقّة 1m)، ومتانة الجلسة / السجل (#762/#763/#768/#769/#770)
  • @xkam7ar — موثوقية واسعة عبر التحزيم والويب والمجدول والـ swarm والـ CLI (#584)، والإلغاء قبل أول تكرار لـ AgentLoop (#641، يغلق #638)، وميزانية جلسة QVeris + محاسبة أرصدة ذرّية (#685/#686)، وبوابات CI / OOS (#630/#632)، وإصلاحات مرشّح شهر السجل / تحليل الاتجاه (#626/#628)
  • @shadowinlife — مهارة مدير تطوير الاستراتيجيات (#457، يغلق #455)، واستخراج OCR قابل للتوصيل + رؤية LLM (#548)، ومركزية اعتمادات المزوّدين (#563)، والتوجيه المتجهي لمحاذاة الإشارات بتسريع 80× (#698)، وتخزين مؤقت لاكتشاف swarm MCP (#704)
  • @ebujinovch — نقطة نهاية الجدول الزمني لنظام الارتباط + الواجهة (#756، يغلق #719)، ومهارة correlation-regime المرتبطة بها (#557)، إضافةً إلى عامل academic_corr_rewire (#705)
  • @honginp — توجيه Binance USD-M مع فصل التنفيذ/سعر mark (#470/#716)، وفصل شريحة الصيانة maintenance-bracket الذي يُبقي الاختبارات الرجعية لـ -PERP بلا اعتمادات (#757)
  • @StaniellG — موصّل وسيط MetaTrader 5 (Exness) + مصدر بيانات mt5 (#481)
  • @tyj147454413-cmd — محمّل fallback لـ Binance (#643)، وتاريخ OKX محدود مع معالجة حدّ المعدل rate-limit (#644)، وتصنيف فشل بثّ codex (#663)
  • @Marnie0415 — fallback لمحرّك فرعي مركّب للرموز غير المعروفة (#734)، وإصلاح تسابق DOM أثناء البث لـ insertBefore في الواجهة الأمامية (#717)
  • @YZY0108 — إصلاح انحياز الاستشراف look-ahead عبر كل محسّنات المحفظة الخمسة (#487)
  • @UNHNQ — مزوّدا SiliconFlow الصيني + العالمي (#565)
  • @FenjuFu — مزوّد iFlytek Spark (#537)
  • @jelech — محوّل Anthropic Messages API الأصلي (#695)
  • @octo-patch — نقاط نهاية API الإقليمية لـ MiniMax (#731)
  • @Thibaultjaigu — مزوّد بوابة Requesty المتوافق مع OpenAI (#474)
  • @Robin1987China — مقاييس دوران المحفظة المحقّقة لكل محسّن (#478)
  • @YogeshModi24 — عامل Frazzini-Pedersen الأكاديمي للمراهنة ضد بيتا (betting-against-beta) (#480)
  • @0xZKnw — وضع TAP الاختياري لـ Alpaca (#377)
  • @sambazhu — قائمة السماح _VALID_ZOOS لحديقة العوامل الأساسية (#707)
  • @nareshkps — توصيل account_number في موصّل Robinhood (#726)
  • @darkknight4563 — اكتشاف دليل إعدادات swarm المسبقة الخاصة بالمستخدم (#570)
  • @MikeCer — تجمّع اتصالات IBKR المحلي للخيط thread-local + عروض أسعار لقطية snapshot (#636)
  • @Shizoqua — إعادة أخذ عيّنات الفترات الزمنية في محمّل local (#467)
  • @roberttidball — توافق استيراد نقل FastMCP (#469)
  • @yxhuang — حسم الرموز المجرّدة bare-ticker في مصفوفة الارتباط (#472، يغلق #471)
  • @Bortlesboat — إصلاح تبديل المزوّد عند تقادم OPENAI_BASE_URL (#484، يغلق #482)
  • @ananaymital — إصلاح ذاكرة EnvConfig المؤقتة المتقادمة في الفحص المسبق (#479، يغلق #477)
  • @GabbaTauchi — أبلغ عن خلل البثّ الأصلي / base-URL في zai (#758)
  • @warren618 / Haozhe Wu — تكامل خلفية نظام الارتباط، وإصلاح بثّ مزوّد zai + حسم base-URL (#758)، وتكامل الإصدار، وفرز الـ PR/issue المفتوحة
مساهمو دورة v0.1.11
  • @shadowinlife — تتويج تحديث وحدات api_server (من 1,103 إلى 371 سطراً، #424 يغلق #331)، ومركزية إعداد البيئة مع بوابة CI المعتمدة على AST (#440)، ومطابقة بروتوكول fetch() في المحمّلات (#437)، وRFC لمدير تطوير الاستراتيجيات قيد المراجعة (#455/#457) — 12 PR مدموجاً هذه الدورة
  • @Robin1987China — إغلاق حلقة Research Autopilot (المرحلة 3) (#267)، و4 عوامل ألفا أكاديمية قياسية (#277)، وشروط دخول Shadow Account الآمنة زمنياً (PIT-safe) (#302/#314/#316)، ومحسّن المحفظة الذي يراعي الدوران (#466)، واختبارات مسارات scheduled-research (#452)، ودفعات تغطية اختبارية لطبقات trade-journal / pattern / loader (#268/#269/#276)
  • @muku314115 — دعم الأسهم الهندية (NSE/BSE) من الدرجة الأولى: محرك IndiaEquityEngine، وحزمة التكاليف، وتوجيه .NS/.BO، وجسر india_broker (#305)
  • @mvanhorn — مُنفِّذ الأبحاث المجدولة من طرف إلى طرف (#278)، وموصّل Trading 212 للقراءة فقط (#321)، وحسم النموذج الافتراضي لـ OpenAI (#319)، والتحقق من إعداد Robinhood (#320)
  • @fei-moss — أداة الرؤية analyze_image (#464)، وإقران NapCat DM (#463)، وتقرير allowed-roots لوسائط IM (#465)
  • @sambazhu — طقم أدوات الاستثمار القيمي: أدوات الصرامة المالية + تدقيق التقارير، و4 مهارات، وإعداد value_investing_committee المسبق (#407/#408)
  • @Elfsa-Miranda — استكشاف خط أنابيب أبحاث ألفا المقيّد بالأدلة (#405/#416، أُعيد تحديد نطاقه لاحقاً ضمن #442)
  • @Hinotoi-agent — رفض CSRF على الاسترجاع (#293)، وطلبات واجهة same-origin البعيدة المصادَقة (#304)
  • @dpersek — مهلة رد IM قابلة للتهيئة (#413)، وإصلاح redirect في provider preflight (#404)
  • @digger-yu — أوامر setup/dev عبر المنصات (#292)، وفحوص مسبقة لتبعيات التطوير (#349)
  • @skloxo — توسيع التلدة (~) + تراجع أمان لجذور الملفات (#299)، وتوطين zh-CN تفاعلي (#301)
  • @kadaliao — دليل المبتدئين (#393)، وبطاقات Alpha Library الاجتماعية (#396)
  • @morluto — الحفاظ على أول رسالة عند استئناف CLI (#448)، والنموذج الافتراضي لـ Codex OAuth (#446)
  • @yxhuang — مزوّد Kimi for Coding (#435)، والتشخيص الدقيق لـ #433 خلف التراجع عن governance stack
  • @isaveall — إصلاح دليل artifacts لـ validation.json (#429)، وأخطاء --swarm-run أوضح (#428)
  • @mustafakamal88 — طوابع زمنية UTC واعية بالمنطقة الزمنية (#397)
  • @irfanallana-oss — حارس الأوامر ذات الحجم الصفري في trading_place_order (#417)
  • @Shizoqua — حارس المحمّل المركزي لثوابت OHLC (#274)
  • @hobostay — تقوية حارس SSRF لنطاقات CGNAT/mesh + إصلاح redirect لوسائط QQ (#389)
  • @aeonframework — رفع حدود CVE الدنيا لـ Pillow / langchain (#390)
  • @hannibal-lee — إصلاح قيد إصدار pandas (#329)
  • @MarkfuGod — عدّ مصادر البيانات الديناميكي + microcompaction محكوم بالـ tokens (#296)
  • @gyx09212214-prog — مخرجات تحقق JSON صارمة (#306)
  • @LemonCANDY42 — مكتبة تقارير الاختبار الخلفي (#224)
  • @fanfpy — تسلسل Longbridge Decimal→float (#459)
  • @asahikiko — مزامنة عدّ القدرات في SKILL.md المحزوم + اختبار حارس المانيفست (#461)
  • @wison1717-maker — مربع التأكيد الثاني للتفويض + توحيد رسائل الأخطاء (#453)
  • @imsankz — تعيينات مزوّد opencode (#444)
  • @flash1234pku — إصلاح code-fence في مراجع tushare (#449)
  • @Penn-Live — تقرير انهيار route-iteration عند بدء Docker (#450)
  • @warren618 / Haozhe Wu — طبقة العوامل الأساسية (panels SEC آمنة زمنياً PIT-safe)، ومسار QVeris المدفوع، وبيئة تشغيل قنوات IM، ومراجعة تكامل الأسهم الهندية، وfallback البحث الصيني، وتكامل الإصدار
مساهمو دورة v0.1.10
  • @Hinotoi-agent — موجة تقوية أمنية: مصادقة الإيقاف المحلي (#241)، ورفض إعادة ربط مضيف الاسترجاع (#242)، وتفعيل صريح لأدوات shell للوكيل (#243)، ومصادقة كتابة الإعدادات (#245)، واحتواء mandate proposal-id (#256)، والتحقق من أنواع الذاكرة الدائمة (#257)، واحتواء MCP swarm run-id (#258)
  • @mvanhorn — ذاكرة تخزين بيانات محلية اختيارية (#177)، وذهاب وإياب Gemini thoughtSignature عبر استدعاءات أدوات متوافقة مع OpenAI (#176)، ودليل مصدر بيانات مخصّص (#194)، واسم بديل لمزوّد glm/zhipu + استنتاج اسم النموذج (#247)
  • @gyx09212214-prog — متانة المحمّل أمام متغيّرات بيئة مهلة crypto/RSSHub المشوّهة (#227، #240)، وتضمين تاريخ النهاية المطلوب في yfinance (#226)، وJSON صارم لمقاييس run-card غير المنتهية (#238)، وتغطية إعادة محاولة ddgs (#239)
  • @BillDin — عرض حالة وكيل swarm في واجهة الدردشة (#188)، ومعالجة أسماء preset الصريحة (#189)، وأداة بيانات السوق المعتمدة على المحمّل لعمّال swarm (#199)، واستمرارية سياق preset (#200)
  • @Robin1987China — جسر الفرضية-الهدف لـ Research Autopilot (#260)، ومحمّل بيانات CSV/Parquet/DuckDB المحلي (#252)، وإصلاح assistant-prefill + User-Agent قابل للضبط لـ Kimi (#248)
  • @LemonCANDY42 — لوحة حالة وقت التشغيل للقراءة فقط (#210)، وحفظ منتجات استخدام AgentLoop (#223)، وحمولات مخططات Run Detail الاختيارية (#225)
  • @zwrong — إعادة هيكلة trace.jsonl بلا اقتطاع + offload (#206)، وعرض session-id عند الخروج + resume <session-id> (#218)
  • @forge-builder — دليل المساهم بالذكاء الاصطناعي (#173)، ووثائق اختبار OpenClaw MCP للقراءة فقط (#165)
  • @skloxo — توطين الواجهة الأمامية بالصينية (zh-CN) (مُعتمد من #217)
  • @LeeCQiang — docstrings صينية عبر جميع عوامل Alpha Zoo الـ 452 (#180)
  • @KaiLuettmann — نشر صورة GHCR مُسبقة البناء عند الإصدار (#187)
  • @ngoanpv — الحفاظ على Gemini thought_signature عبر مسار dict في AgentLoop (#184)
  • @ShahNewazKhan — الوصول إلى Ollama المضيف عبر host.docker.internal (#196)
  • @sambazhu — مزامنة الواجهة الأمامية لمحاولات الدردشة المكتملة (#236)
  • @bhlt — دعم تنسيق رمز baostock الأصلي (#230)
  • @octo-patch — ترقية نموذج MiniMax M3 الافتراضي (#162)
  • @warren618 / Haozhe Wu — طبقة البيانات العالمية (8 مصادر + 18 أداة بيانات للقراءة فقط)، و10 موصّلات وسطاء SDK، وحزمة alpha compare الكاملة، وإصلاح موثوقية المزوّدين، وfallback متعدد المحركات لـ web_search، وStop تفاعلي + إعادة اتصال SSE، وتكامل الإصدار

إخلاء المسؤولية

Vibe-Trading برنامج للبحث والتداول. ليس نصيحة استثمارية، ولا يحتفظ بأي أموال، ولا يشغّل أي منصة تنفيذ. يحدث التداول فقط عبر قناة وسيط تُصرّح بها صراحةً (مثل Robinhood Agentic Trading)، ضمن الحدود التي تضعها، ويمكنك إيقافه في أي وقت. قدرة التداول عبر الوسيط هذه تجريبية ولم نتحقق منها على حساب وسيط حقيقي — استخدمها على مسؤوليتك. الأداء السابق لا يضمن النتائج المستقبلية.

الرخصة

رخصة MIT — راجع LICENSE


⭐ إذا ساعدك Vibe-Trading في بحثك، فإن منح نجمة يساعد المزيد على اكتشافه.


شكراً لزيارة Vibe-Trading ✨

visitors