Skip to content

Commit ad3a51a

Browse files
committed
feat: cross-market composite backtest engine with shared capital pool
- Add CompositeEngine for backtesting portfolios spanning multiple markets (e.g. A-shares + crypto) with a single shared capital pool - Extract on_bar logic (funding fee, liquidation, swap) into _market_hooks.py as pure functions, called by both original engines and CompositeEngine - Fix _align() signal shift bug: shift on each symbol's own trading calendar then ffill to unified dates (prevents Monday close-and-reopen for A-shares) - Add calendar-day annualization for cross-market Sharpe calculation - Add cross-market-strategy skill with vol-adjusted weighting example - Update all READMEs (en/zh/ja/ko/ar): news, 69 skills, composite engine
1 parent 668a610 commit ad3a51a

18 files changed

Lines changed: 741 additions & 208 deletions

File tree

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ cd frontend && npm install && npm run dev
4242

4343
| Directory | What lives here | Open to contribute? |
4444
|-----------|----------------|:-------------------:|
45-
| `agent/src/skills/` | 68 finance skill definitions (SKILL.md) | Yes |
45+
| `agent/src/skills/` | 69 finance skill definitions (SKILL.md) | Yes |
4646
| `agent/src/tools/` | 21 agent tools | Yes |
4747
| `agent/backtest/` | Backtest engines, loaders, optimizers | Yes |
4848
| `agent/config/swarm/` | 29 swarm preset YAMLs | Yes |

README.md

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<a href="https://pypi.org/project/vibe-trading-ai/"><img src="https://img.shields.io/pypi/v/vibe-trading-ai?style=flat&logo=pypi&logoColor=white" alt="PyPI"></a>
2020
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow?style=flat" alt="License"></a>
2121
<br>
22-
<img src="https://img.shields.io/badge/Skills-68-orange" alt="Skills">
22+
<img src="https://img.shields.io/badge/Skills-69-orange" alt="Skills">
2323
<img src="https://img.shields.io/badge/Swarm_Presets-29-7C3AED" alt="Swarm">
2424
<img src="https://img.shields.io/badge/Tools-21-0F766E" alt="Tools">
2525
<img src="https://img.shields.io/badge/Data_Sources-5-2563EB" alt="Data Sources">
@@ -51,6 +51,7 @@
5151

5252
## 📰 News
5353

54+
- **2026-04-13** 🌐 **Cross-Market Composite Backtest**: New `CompositeEngine` enables backtesting portfolios that span multiple markets (e.g. A-shares + crypto) in a single run with a **shared capital pool**. Per-market rules (T+1, funding fees, swap) enforced per symbol, signals aligned on each symbol's own trading calendar. Use `source: "auto"` with mixed codes like `["000001.SZ", "BTC-USDT"]`. Includes volatility-adjusted weighting skill and calendar-day annualization for accurate cross-market Sharpe.
5455
- **2026-04-12** 🌍 **Multi-Platform Indicator Export**: `/pine` now exports strategies to **TradingView (Pine Script v6)**, **通达信/同花顺/东方财富 (TDX formula)**, and **MetaTrader 5 (MQL5)** in a single file — covering international equities, China A-shares, and global forex/CFD markets. One command, three platforms.
5556
- **2026-04-11** 🛡️ **Reliability & DX**: `vibe-trading init` interactive .env bootstrap ([#19](https://github.com/HKUDS/Vibe-Trading/pull/19)), startup preflight checks for LLM & data sources, runtime data-source fallback when primary returns empty, hardened backtest engine with data validation & error isolation, date/time context injection into agent & swarm prompts. Multi-language README (zh/ja/ko) via community PR [#21](https://github.com/HKUDS/Vibe-Trading/pull/21).
5657
- **2026-04-10** 📦 **v0.1.4**: Fix Docker build ([#8](https://github.com/HKUDS/Vibe-Trading/issues/8)), add `web_search` MCP tool (17 total), `akshare`/`ccxt` in deps & MCP. 11 LLM providers (DeepSeek, Groq, Gemini, Ollama, etc.), all tuning params via `.env`. Hardened `ml-strategy` skill. Published to PyPI and ClawHub.
@@ -81,7 +82,7 @@ Vibe-Trading is an AI-powered multi-agent finance workspace that turns natural l
8182
<td align="center" width="25%" valign="top">
8283
<img src="assets/scene-research.png" height="150" alt="Research"/><br>
8384
<h3>🔍 DeepResearch for Trading</h3>
84-
<img src="https://img.shields.io/badge/68_Skills-FF6B6B?style=for-the-badge&logo=bookstack&logoColor=white" alt="Skills" /><br><br>
85+
<img src="https://img.shields.io/badge/69_Skills-FF6B6B?style=for-the-badge&logo=bookstack&logoColor=white" alt="Skills" /><br><br>
8586
<div align="left" style="font-size: 4px;">
8687
• Multi-domain analysis coverage across markets<br>
8788
• Auto strategy and signal generation<br>
@@ -106,7 +107,7 @@ Vibe-Trading is an AI-powered multi-agent finance workspace that turns natural l
106107
<img src="https://img.shields.io/badge/5_Data_Sources-FFD93D?style=for-the-badge&logo=bitcoin&logoColor=black" alt="Backtest" /><br><br>
107108
<div align="left">
108109
• A-shares, HK/US equities, crypto, futures & forex<br>
109-
• 7 market engines: A-share, US/HK equity, crypto, China futures, global futures, forex<br>
110+
• 7 market engines + composite cross-market engine with shared capital pool<br>
110111
• Statistical validation: Monte Carlo, Bootstrap CI, Walk-Forward<br>
111112
• 15+ performance metrics & 4 optimizers
112113
</div>
@@ -125,16 +126,16 @@ Vibe-Trading is an AI-powered multi-agent finance workspace that turns natural l
125126
</tr>
126127
</table>
127128

128-
## 68 Skills across 7 Categories
129+
## 69 Skills across 7 Categories
129130

130-
- 📊 68 specialized finance skills organized into 7 categories
131+
- 📊 69 specialized finance skills organized into 7 categories
131132
- 🌐 Complete coverage from traditional markets to crypto & DeFi
132133
- 🔬 Comprehensive capabilities spanning data sourcing to quantitative research
133134

134135
| Category | Skills | Examples |
135136
|----------|--------|----------|
136137
| Data Source | 6 | `data-routing`, `tushare`, `yfinance`, `okx-market`, `akshare`, `ccxt` |
137-
| Strategy | 16 | `strategy-generate`, `technical-basic`, `candlestick`, `ichimoku`, `elliott-wave`, `smc`, `multi-factor`, `ml-strategy` |
138+
| Strategy | 17 | `strategy-generate`, `cross-market-strategy`, `technical-basic`, `candlestick`, `ichimoku`, `elliott-wave`, `smc`, `multi-factor`, `ml-strategy` |
138139
| Analysis | 15 | `factor-research`, `macro-analysis`, `global-macro`, `valuation-model`, `earnings-forecast`, `credit-analysis` |
139140
| Asset Class | 9 | `options-strategy`, `options-advanced`, `convertible-bond`, `etf-analysis`, `asset-allocation`, `sector-rotation` |
140141
| Crypto | 7 | `perp-funding-basis`, `liquidation-heatmap`, `stablecoin-flow`, `defi-yield`, `onchain-analysis` |
@@ -326,7 +327,7 @@ vibe-trading serve # API server
326327
| Command | Description |
327328
|---------|-------------|
328329
| `/help` | Show all commands |
329-
| `/skills` | List all 68 finance skills |
330+
| `/skills` | List all 69 finance skills |
330331
| `/swarm` | List 29 swarm team presets |
331332
| `/swarm run <preset> [vars_json]` | Run a swarm team with live streaming |
332333
| `/swarm list` | Swarm run history |
@@ -460,7 +461,7 @@ Browse on ClawHub: [clawhub.ai/skills/vibe-trading](https://clawhub.ai/skills/vi
460461
<details>
461462
<summary><b>OpenSpace — self-evolving skills</b></summary>
462463

463-
All 68 finance skills are published on [open-space.cloud](https://open-space.cloud) and evolve autonomously through OpenSpace's self-evolution engine.
464+
All 69 finance skills are published on [open-space.cloud](https://open-space.cloud) and evolve autonomously through OpenSpace's self-evolution engine.
464465

465466
To use with OpenSpace, add both MCP servers to your agent config:
466467

@@ -482,7 +483,7 @@ To use with OpenSpace, add both MCP servers to your agent config:
482483
}
483484
```
484485

485-
OpenSpace will auto-discover all 68 skills, enabling auto-fix, auto-improve, and community sharing. Search for Vibe-Trading skills via `search_skills("finance backtest")` in any OpenSpace-connected agent.
486+
OpenSpace will auto-discover all 69 skills, enabling auto-fix, auto-improve, and community sharing. Search for Vibe-Trading skills via `search_skills("finance backtest")` in any OpenSpace-connected agent.
486487

487488
</details>
488489

@@ -503,7 +504,7 @@ Vibe-Trading/
503504
│ ├── src/
504505
│ │ ├── agent/ # ReAct agent core
505506
│ │ │ ├── loop.py # main reasoning loop
506-
│ │ │ ├── skills.py # skill loader (68 SKILL.md files, 7 categories)
507+
│ │ │ ├── skills.py # skill loader (69 SKILL.md files, 7 categories)
507508
│ │ │ ├── tools.py # tool orchestration
508509
│ │ │ ├── context.py # system prompt builder
509510
│ │ │ ├── memory.py # run memory / artifact store
@@ -520,13 +521,13 @@ Vibe-Trading/
520521
│ │ │ ├── swarm_tool.py # launch swarm teams
521522
│ │ │ └── ... # file I/O, bash, tasks, etc.
522523
│ │ │
523-
│ │ ├── skills/ # 68 finance skills in 7 categories (SKILL.md each)
524+
│ │ ├── skills/ # 69 finance skills in 7 categories (SKILL.md each)
524525
│ │ ├── swarm/ # Swarm DAG execution engine
525526
│ │ ├── session/ # Multi-turn chat session management
526527
│ │ └── providers/ # LLM provider abstraction
527528
│ │
528529
│ ├── backtest/ # Backtest engines
529-
│ │ ├── engines/ # 7 engines: china_a, global_equity, crypto, china_futures, global_futures, forex + options_portfolio
530+
│ │ ├── engines/ # 7 engines + composite cross-market engine + options_portfolio
530531
│ │ ├── loaders/ # 5 sources: tushare, okx, yfinance, akshare, ccxt
531532
│ │ │ ├── base.py # DataLoader Protocol
532533
│ │ │ └── registry.py # Registry + auto-fallback chains

README_ar.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<a href="https://pypi.org/project/vibe-trading-ai/"><img src="https://img.shields.io/pypi/v/vibe-trading-ai?style=flat&logo=pypi&logoColor=white" alt="PyPI"></a>
2020
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow?style=flat" alt="الرخصة"></a>
2121
<br>
22-
<img src="https://img.shields.io/badge/Skills-68-orange" alt="المهارات">
22+
<img src="https://img.shields.io/badge/Skills-69-orange" alt="المهارات">
2323
<img src="https://img.shields.io/badge/Swarm_Presets-29-7C3AED" alt="السرب">
2424
<img src="https://img.shields.io/badge/Tools-21-0F766E" alt="الأدوات">
2525
<img src="https://img.shields.io/badge/Data_Sources-5-2563EB" alt="مصادر البيانات">
@@ -51,6 +51,7 @@
5151

5252
## 📰 أحدث الأخبار
5353

54+
- **2026-04-13** 🌐 **الاختبار الرجعي المركب عبر الأسواق**: محرك `CompositeEngine` الجديد يتيح اختبار محافظ تشمل أسواقاً مختلفة (مثل أسهم A + العملات المشفرة) في تشغيل واحد مع **مجمع رأسمال مشترك**. قواعد كل سوق (T+1، رسوم التمويل، المقايضة) تُطبق لكل رمز، الإشارات تُحاذى وفق التقويم التجاري لكل رمز. استخدم `source: "auto"` مع رموز مختلطة مثل `["000001.SZ", "BTC-USDT"]`.
5455
- **2026-04-11** 🛡️ **الموثوقية وتجربة المطور**: إعداد تفاعلي لملف `.env` عبر `vibe-trading init` ([#19](https://github.com/HKUDS/Vibe-Trading/pull/19))، فحوصات بدء التشغيل المسبقة لمصادر البيانات ونماذج اللغة، بديل تلقائي لمصدر البيانات عند إرجاع المصدر الأساسي لنتائج فارغة، تعزيز محرك الاختبار الرجعي مع التحقق من البيانات وعزل الأخطاء، حقن سياق التاريخ/الوقت في أوامر الوكيل والسرب. ملف README متعدد اللغات (zh/ja/ko) عبر طلب سحب المجتمع [#21](https://github.com/HKUDS/Vibe-Trading/pull/21).
5556
- **2026-04-10** 📦 **الإصدار v0.1.4**: إصلاح بناء Docker ([#8](https://github.com/HKUDS/Vibe-Trading/issues/8))، إضافة أداة MCP `web_search` (17 إجمالاً)، `akshare`/`ccxt` في التبعيات وMCP. 11 مزود لنماذج اللغة (DeepSeek, Groq, Gemini, Ollama, إلخ)، جميع معلمات الضبط عبر `.env`. تعزيز مهارة `ml-strategy`. النشر على PyPI وClawHub.
5657
- **2026-04-09** 📊 **الموجة الثانية من الاختبار الرجعي — محركات متعددة الأصول**: إضافة العقود الآجلة الصينية (CFFEX/SHFE/DCE/ZCE، 50+ عقد)، العقود الآجلة العالمية (CME/ICE/Eurex، 30+ عقد)، الفوركس (24 زوجاً، السبريد + المقايضة)، الخيارات v2 (الممارسة الأمريكية، ابتسامة التقلب الضمني). التحقق الإحصائي: اختبار التبديل مونت كارلو، فاصل ثقة شارب bootstrap، تحليل المشي للأمام.
@@ -80,7 +81,7 @@ Vibe-Trading هو مساحة عمل مالية متعددة الوكلاء مد
8081
<td align="center" width="25%" valign="top">
8182
<img src="assets/scene-research.png" height="150" alt="البحث"/><br>
8283
<h3>🔍 بحث عميق للتداول</h3>
83-
<img src="https://img.shields.io/badge/68_Skills-FF6B6B?style=for-the-badge&logo=bookstack&logoColor=white" alt="المهارات" /><br><br>
84+
<img src="https://img.shields.io/badge/69_Skills-FF6B6B?style=for-the-badge&logo=bookstack&logoColor=white" alt="المهارات" /><br><br>
8485
<div align="left" style="font-size: 4px;">
8586
• تغطية تحليل متعددة المجالات عبر الأسواق<br>
8687
• توليد تلقائي للاستراتيجيات والإشارات<br>
@@ -124,16 +125,16 @@ Vibe-Trading هو مساحة عمل مالية متعددة الوكلاء مد
124125
</tr>
125126
</table>
126127

127-
## 68 مهارة عبر 7 فئات
128+
## 69 مهارة عبر 7 فئات
128129

129-
- 📊 68 مهارة مالية متخصصة منظمة في 7 فئات
130+
- 📊 69 مهارة مالية متخصصة منظمة في 7 فئات
130131
- 🌐 تغطية شاملة من الأسواق التقليدية إلى العملات المشفرة وDeFi
131132
- 🔬 قدرات شاملة تمتد من مصادر البيانات إلى البحث الكمي
132133

133134
| الفئة | المهارات | أمثلة |
134135
|----------|--------|----------|
135136
| مصدر البيانات | 6 | `data-routing`, `tushare`, `yfinance`, `okx-market`, `akshare`, `ccxt` |
136-
| الاستراتيجية | 16 | `strategy-generate`, `technical-basic`, `candlestick`, `ichimoku`, `elliott-wave`, `smc`, `multi-factor`, `ml-strategy` |
137+
| الاستراتيجية | 17 | `strategy-generate`, `cross-market-strategy`, `technical-basic`, `candlestick`, `ichimoku`, `elliott-wave`, `smc`, `multi-factor`, `ml-strategy` |
137138
| التحليل | 15 | `factor-research`, `macro-analysis`, `global-macro`, `valuation-model`, `earnings-forecast`, `credit-analysis` |
138139
| فئة الأصول | 9 | `options-strategy`, `options-advanced`, `convertible-bond`, `etf-analysis`, `asset-allocation`, `sector-rotation` |
139140
| العملات المشفرة | 7 | `perp-funding-basis`, `liquidation-heatmap`, `stablecoin-flow`, `defi-yield`, `onchain-analysis` |
@@ -325,7 +326,7 @@ vibe-trading serve # خادم API
325326
| الأمر | الوصف |
326327
|---------|-------------|
327328
| `/help` | عرض جميع الأوامر |
328-
| `/skills` | عرض جميع مهارات التداول الـ 68 |
329+
| `/skills` | عرض جميع مهارات التداول الـ 69 |
329330
| `/swarm` | عرض إعدادات فرق السرب الـ 29 |
330331
| `/swarm run <preset> [vars_json]` | تشغيل فريق سرب مع بث مباشر |
331332
| `/swarm list` | سجل تشغيلات السرب |
@@ -459,7 +460,7 @@ npx clawhub@latest install vibe-trading --force
459460
<details>
460461
<summary><b>OpenSpace — مهارات ذاتية التطور</b></summary>
461462

462-
جميع مهارات التداول الـ 68 منشورة على [open-space.cloud](https://open-space.cloud) وتتطور بشكل مستقل عبر محرك التطور الذاتي من OpenSpace.
463+
جميع مهارات التداول الـ 69 منشورة على [open-space.cloud](https://open-space.cloud) وتتطور بشكل مستقل عبر محرك التطور الذاتي من OpenSpace.
463464

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

@@ -481,7 +482,7 @@ npx clawhub@latest install vibe-trading --force
481482
}
482483
```
483484

484-
سيكتشف OpenSpace تلقائياً جميع المهارات الـ 68، مما يتيح الإصلاح التلقائي والتحسين التلقائي والمشاركة المجتمعية. ابحث عن مهارات Vibe-Trading عبر `search_skills("finance backtest")` في أي وكيل متصل بـ OpenSpace.
485+
سيكتشف OpenSpace تلقائياً جميع المهارات الـ 69، مما يتيح الإصلاح التلقائي والتحسين التلقائي والمشاركة المجتمعية. ابحث عن مهارات Vibe-Trading عبر `search_skills("finance backtest")` في أي وكيل متصل بـ OpenSpace.
485486

486487
</details>
487488

@@ -502,7 +503,7 @@ Vibe-Trading/
502503
│ ├── src/
503504
│ │ ├── agent/ # نواة وكيل ReAct
504505
│ │ │ ├── loop.py # حلقة الاستدلال الرئيسية
505-
│ │ │ ├── skills.py # محمل المهارات (68 ملف SKILL.md، 7 فئات)
506+
│ │ │ ├── skills.py # محمل المهارات (69 ملف SKILL.md، 7 فئات)
506507
│ │ │ ├── tools.py # تنسيق الأدوات
507508
│ │ │ ├── context.py # منشئ موجه النظام
508509
│ │ │ ├── memory.py # ذاكرة التشغيل / تخزين القطع الأثرية
@@ -519,13 +520,13 @@ Vibe-Trading/
519520
│ │ │ ├── swarm_tool.py # إطلاق فرق السرب
520521
│ │ │ └── ... # إدخال/إخراج ملف، bash، مهام، إلخ
521522
│ │ │
522-
│ │ ├── skills/ # 68 مهارة مالية في 7 فئات (SKILL.md لكل منها)
523+
│ │ ├── skills/ # 69 مهارة مالية في 7 فئات (SKILL.md لكل منها)
523524
│ │ ├── swarm/ # محرك تنفيذ DAG للسرب
524525
│ │ ├── session/ # إدارة جلسات الدردشة متعددة الأدوار
525526
│ │ └── providers/ # تجريد مزود نموذج اللغة
526527
│ │
527528
│ ├── backtest/ # محركات الاختبار الرجعي
528-
│ │ ├── engines/ # 7 محركات: china_a, global_equity, crypto, china_futures, global_futures, forex + options_portfolio
529+
│ │ ├── engines/ # 7 محركات + محرك مركب عبر الأسواق + options_portfolio
529530
│ │ ├── loaders/ # 5 مصادر: tushare, okx, yfinance, akshare, ccxt
530531
│ │ │ ├── base.py # بروتوكول DataLoader
531532
│ │ │ └── registry.py # السجل + سلاسل البديل التلقائي

0 commit comments

Comments
 (0)