docs(readme): add 2026-09-02 news across six languages

This commit is contained in:
Haozhe Wu committed 2026-09-02 17:32:23 +08:00
1 parent f4a6b6e19e
commit 7b43ba37f0
6 files changed
+18 -12

No files matched your search

+3 -2
View File
@@ -52,14 +52,15 @@
> ⚠️ **Security warning:** The X account `VibeTrading_HKU`, Virtuals project `101845`, and token contract `0x640BDBF77b6447E8b7DB7894cED84BD1c40571f4` are not official Vibe-Trading assets. We have never launched or endorsed any token or memecoin. Do not buy, connect a wallet, or sign anything. [Details](SECURITY.md#official-channels--impersonation).
- **2026-09-02** 💵 **The last two loaders that booked dividends as losses, and an explicit source that answered as someone else**: FMP and Tiingo still served raw OHLC while the rest of the chain served adjusted prices — the same ex-dividend gap read as a real drop, closed for Yahoo on 08-31 and now closed for both ([#1320](https://github.com/HKUDS/Vibe-Trading/pull/1320), closes [#1296](https://github.com/HKUDS/Vibe-Trading/issues/1296)). Their rows in the price-caliber table were corrected in the same change: a frame that is adjusted must not be stamped `raw`, or the mixed-caliber warning added in [#1317](https://github.com/HKUDS/Vibe-Trading/pull/1317) is checking a label instead of the data. FMP also moved to the Stable endpoint, and an explicit `source="fmp"` now fails loudly instead of returning another source's numbers under FMP's name ([#1276](https://github.com/HKUDS/Vibe-Trading/pull/1276), closes [#1270](https://github.com/HKUDS/Vibe-Trading/issues/1270)). **Fixed:** a ticker inside full-width parentheses — `公司名(代码)价格` — was split from its own figure, so the unsourced-symbol gate never saw the two together ([#1326](https://github.com/HKUDS/Vibe-Trading/pull/1326), closes [#1260](https://github.com/HKUDS/Vibe-Trading/issues/1260)); every `references/` link in the bundled skills now resolves both for the agent and for a human who clicks it on GitHub ([#1328](https://github.com/HKUDS/Vibe-Trading/pull/1328)). **New:** Brazilian Portuguese joins the interface as the eighth language ([#1327](https://github.com/HKUDS/Vibe-Trading/pull/1327)). Thanks [@lorenzozanee](https://github.com/lorenzozanee), [@thisisjun786](https://github.com/thisisjun786), [@cgycorey](https://github.com/cgycorey), [@jw232](https://github.com/jw232), [@ethanstoner](https://github.com/ethanstoner), and [@nandofmike](https://github.com/nandofmike)!
- **2026-09-01** 🎯 **Options backtests filled at the price the signal was computed from, and a naked short could sell premium it could never cover**: a signal dated T priced off T's own close and IV — phantom edge in every options backtest, not just adversarial ones. Signals now fill on the next bar, and short legs post CBOE-style margin checked against buying power ([#1299](https://github.com/HKUDS/Vibe-Trading/pull/1299), [#1306](https://github.com/HKUDS/Vibe-Trading/pull/1306)). **Fixed:** perpetual funding settled once a day against the engine's own 3x/day model ([#1307](https://github.com/HKUDS/Vibe-Trading/pull/1307)); a 1x short was exempt from liquidation entirely ([#1298](https://github.com/HKUDS/Vibe-Trading/pull/1298)); composite runs dropped India T+1 and failed open on every price-limit band ([#1309](https://github.com/HKUDS/Vibe-Trading/pull/1309)). **New:** every served frame states its price caliber — adjusted, raw, or honestly unknown — and a mixed-caliber run says so ([#1317](https://github.com/HKUDS/Vibe-Trading/pull/1317), closes [#1301](https://github.com/HKUDS/Vibe-Trading/issues/1301)). Thanks [@he-yufeng](https://github.com/he-yufeng), [@cgycorey](https://github.com/cgycorey), [@lorenzozanee](https://github.com/lorenzozanee), and [@guestccc](https://github.com/guestccc)!
- **2026-08-31** 🧮 **Yahoo booked every dividend as a loss, and the rebalance count you were shown had nothing to do with the fills**: both Yahoo paths served dividend-unadjusted OHLC while the rest of the chain served adjusted prices, so every ex-dividend gap read as a real drop in any US-equity backtest Yahoo won. OHLC now scales to Yahoo's `adjclose` and the yfinance path requests the adjusted series; volume stays raw on both ([#1287](https://github.com/HKUDS/Vibe-Trading/pull/1287)). Measuring the chain to verify that turned up something worth stating plainly: **sina and longbridge still serve fully unadjusted prices**, so which source you land on still changes the price caliber — that gap is now tracked in [#1301](https://github.com/HKUDS/Vibe-Trading/issues/1301). Separately, `rebalance_count` counted target-weight *changes*, not executions: a constant-target SPY/BND strategy reported one rebalance against 1,269 trades. Requested and executed are now separate metrics, the executed ones derived from immutable fill records ([#1281](https://github.com/HKUDS/Vibe-Trading/pull/1281), closes [#1275](https://github.com/HKUDS/Vibe-Trading/issues/1275)). **New:** `rebalance_mask` runs partial rebalancing on a calendar or on explicit dates instead of every bar ([#1277](https://github.com/HKUDS/Vibe-Trading/pull/1277), closes [#1273](https://github.com/HKUDS/Vibe-Trading/issues/1273)); the HTML alpha-bench report now carries the survivorship-bias disclosure the JSON already had, naming the constituent source and its as-of date ([#1289](https://github.com/HKUDS/Vibe-Trading/pull/1289)). **Fixed:** one unresolved symbol no longer strands the rest of its batch — the chain retries only the missing ones and provenance names the source each symbol actually came from ([#1288](https://github.com/HKUDS/Vibe-Trading/pull/1288)); a halt sweep could latch an episode it never swept, and two concurrent completions could lose each other's record ([#1254](https://github.com/HKUDS/Vibe-Trading/pull/1254)); a working Futu OpenD connection rendered as unavailable because its health report omitted `connection_state`; the desktop updater read a permission-denied process probe as "backend exited" ([#1284](https://github.com/HKUDS/Vibe-Trading/pull/1284)); and a session backgrounded mid-turn kept its sidebar spinner for the life of the tab ([#1257](https://github.com/HKUDS/Vibe-Trading/pull/1257), closes [#1256](https://github.com/HKUDS/Vibe-Trading/issues/1256)). Thanks [@he-yufeng](https://github.com/he-yufeng), [@cgycorey](https://github.com/cgycorey), [@thisisjun786](https://github.com/thisisjun786), [@bonyohana](https://github.com/bonyohana), [@lorenzozanee](https://github.com/lorenzozanee), and [@iagop03](https://github.com/iagop03)!
- **2026-08-30** 🇬🇧 **LSE equities arrive without turning pence into pounds, and closed markets stop firing live triggers**: `.L` symbols now work end to end through Yahoo → yfinance → local market-data fallback, stock profiles and financial statements, trade-journal and Shadow consumers, and GBP-settled backtests. The loader treats `.L` only as a venue marker: declared GBp/p prices are divided by 100, GBP passes unchanged, and USD, other, or unknown currencies are rejected before the statically GBP accounting layer. Per-symbol conversion provenance survives cache round trips, and the cache version was bumped so older unsafe entries cannot return; UK execution also uses whole shares and `slippage_uk` ([#1206](https://github.com/HKUDS/Vibe-Trading/pull/1206), closes [#1205](https://github.com/HKUDS/Vibe-Trading/issues/1205)). **Fixed:** market-triggered live ticks stop before broker reads while all attached markets are closed, while interval-only and event-driven channels remain ungated ([#1253](https://github.com/HKUDS/Vibe-Trading/pull/1253)); Run Detail scrolls and clamps long prompts, then collapses them again when switching runs ([#1258](https://github.com/HKUDS/Vibe-Trading/pull/1258)); non-backtest runs route to Studio instead of a blank dashboard, and an empty trade-artifact array no longer hides a populated `trade_log` ([#1259](https://github.com/HKUDS/Vibe-Trading/pull/1259)). Thanks [@cgycorey](https://github.com/cgycorey), [@he-yufeng](https://github.com/he-yufeng), and [@iagop03](https://github.com/iagop03)!
<details>
<summary>Earlier news</summary>
- **2026-08-30** 🇬🇧 **LSE equities arrive without turning pence into pounds, and closed markets stop firing live triggers**: `.L` symbols now work end to end through Yahoo → yfinance → local market-data fallback, stock profiles and financial statements, trade-journal and Shadow consumers, and GBP-settled backtests. The loader treats `.L` only as a venue marker: declared GBp/p prices are divided by 100, GBP passes unchanged, and USD, other, or unknown currencies are rejected before the statically GBP accounting layer. Per-symbol conversion provenance survives cache round trips, and the cache version was bumped so older unsafe entries cannot return; UK execution also uses whole shares and `slippage_uk` ([#1206](https://github.com/HKUDS/Vibe-Trading/pull/1206), closes [#1205](https://github.com/HKUDS/Vibe-Trading/issues/1205)). **Fixed:** market-triggered live ticks stop before broker reads while all attached markets are closed, while interval-only and event-driven channels remain ungated ([#1253](https://github.com/HKUDS/Vibe-Trading/pull/1253)); Run Detail scrolls and clamps long prompts, then collapses them again when switching runs ([#1258](https://github.com/HKUDS/Vibe-Trading/pull/1258)); non-backtest runs route to Studio instead of a blank dashboard, and an empty trade-artifact array no longer hides a populated `trade_log` ([#1259](https://github.com/HKUDS/Vibe-Trading/pull/1259)). Thanks [@cgycorey](https://github.com/cgycorey), [@he-yufeng](https://github.com/he-yufeng), and [@iagop03](https://github.com/iagop03)!
- **2026-08-29** 🛑 **A kill switch that skipped its own action, and a crypto pair that resolved to a different coin**: when a halted channel's broker reads failed — the adapter returns an error envelope instead of raising, and the sweep iterated it as a list of orders — the sweep marked itself fired anyway. The cancel-and-flatten the kill switch exists to perform was silently skipped for that episode, and nothing retried it. It now latches only once a broker write has been attempted, claims each halt episode exclusively so two runners cannot duplicate a close, and no longer reads a broker rejection wrapped in a transport-level success as accepted ([#1244](https://github.com/HKUDS/Vibe-Trading/pull/1244)). Separately, asking for `ETH-USDT` returned `AETHUSDT-USD` — Aave Ethereum USDT, a different asset — because symbol search never covered exchange pairs and Yahoo's nearest string won. Exact pairs now resolve against the venue catalogs, which are public and need no broker account ([#1242](https://github.com/HKUDS/Vibe-Trading/pull/1242), closes [#1234](https://github.com/HKUDS/Vibe-Trading/issues/1234)). **New:** built-in connectors publish a machine-readable onboarding contract, so `vibe-trading connector setup` and the Portfolio connection center drive one generic flow, secrets kept per connection in the OS keyring ([#1250](https://github.com/HKUDS/Vibe-Trading/pull/1250)). **Fixed:** stream retries escalate and honour `Retry-After` ([#1208](https://github.com/HKUDS/Vibe-Trading/issues/1208)); a sleeve whose target rounds below one lot is reported instead of silently trading zero times ([#1235](https://github.com/HKUDS/Vibe-Trading/issues/1235)); and an explicit benchmark is measured over the evaluated window, not the fetched one, so yesterday's warm-up boundary no longer compares two periods. Thanks [@cgycorey](https://github.com/cgycorey), [@pengpengyi92](https://github.com/pengpengyi92), [@lorenzozanee](https://github.com/lorenzozanee), [@goatyyc](https://github.com/goatyyc), [@ethanstoner](https://github.com/ethanstoner), [@QG8000](https://github.com/QG8000), and [@turtle696966969696](https://github.com/turtle696966969696)!
- **2026-08-28** 📏 **Backtests that crashed, and backtests that quietly graded a year you never asked for**: every cross-market backtest died on v0.1.14 — the runner deliberately passes `bars_per_year=None` for a basket spanning markets, and the new risk x-ray called `math.sqrt` on it. Two more consumers had the same gap; all four now resolve `None` through one shared span-derived factor ([#1239](https://github.com/HKUDS/Vibe-Trading/pull/1239), closes [#1237](https://github.com/HKUDS/Vibe-Trading/issues/1237)). The quieter one: a long-lookback strategy needs bars from *before* the period you asked about, so the agent moved `start_date` back a year to feed MA200 — and then graded that year. A run billed as ten years reported eleven, with the extra year's trades, CAGR and benchmark folded in, nothing raised, and the metrics internally consistent. `warmup_bars` (or `evaluation_start_date`) now separates the data window from the evaluation window: warm-up bars prime the indicators and reach nothing else ([#1240](https://github.com/HKUDS/Vibe-Trading/issues/1240)). **New:** `quantlib` gains Heston (1993) stochastic-volatility pricing, Hierarchical Risk Parity, Gaussian and Archimedean copulas, microstructure estimators (VPIN, Roll, Amihud, Kyle) and finite-difference barrier Greeks — 306 tested functions across 23 modules ([#1195](https://github.com/HKUDS/Vibe-Trading/pull/1195)–[#1198](https://github.com/HKUDS/Vibe-Trading/pull/1198), [#1203](https://github.com/HKUDS/Vibe-Trading/pull/1203)). **Fixed:** eight skill reference links pointed at paths `read_file` cannot open, so those documents silently failed to load. Thanks [@cgycorey](https://github.com/cgycorey), [@santhreal](https://github.com/santhreal), [@turtle696966969696](https://github.com/turtle696966969696), and [@wanderkiller](https://github.com/wanderkiller)!
- **2026-08-27** 🛑 **The kill-switch sweep now survives restarts and stops trusting a flaky broker**: during a halt, the cancel-and-flatten sweep counted any broker response as success — but the MCP adapter turns a failed call into a `{"status": "error"}` envelope, so a dropped connection produced a compliant-looking audit trail while the resting order stayed live; error envelopes now fail closed in both passes ([#1232](https://github.com/HKUDS/Vibe-Trading/pull/1232)). The sweep's fired-once latch also lived only in memory: a restart with flatten orders still working replayed the whole sweep — a fresh market order per position, enough to flip a long book net short; the latch is now persisted next to the HALT sentinel and bound to its halt episode, so clearing and re-tripping still re-arms it ([#1233](https://github.com/HKUDS/Vibe-Trading/pull/1233)). **New:** every market's data-source fallback order is visible and reorderable in *Settings → Data Source Priority* — hot-applied, persisted per market (`MARKET_DATA_ORDER_*`), and strictly a reordering: adding or dropping sources is refused, and without an override the defaults are untouched ([#1231](https://github.com/HKUDS/Vibe-Trading/pull/1231)); Binance USD-M reconciliation results now land as tamper-evident drift evidence artifacts — strict JSON, fail-closed on incomplete or unsupported snapshots, no order surface ([#1230](https://github.com/HKUDS/Vibe-Trading/pull/1230), toward [#1030](https://github.com/HKUDS/Vibe-Trading/issues/1030)). Thanks [@he-yufeng](https://github.com/he-yufeng), [@sambazhu](https://github.com/sambazhu), and [@honginp](https://github.com/honginp)!
+3 -2
View File
@@ -52,14 +52,15 @@
> ⚠️ **تحذير أمني:** حساب X باسم `VibeTrading_HKU`، ومشروع Virtuals رقم `101845`، وعقد التوكن `0x640BDBF77b6447E8b7DB7894cED84BD1c40571f4` كلّها غير رسمية ولا تتبع Vibe-Trading. لم نُطلق أو نؤيد مطلقًا أي توكن أو عملة ميم. لا تشترِ هذا التوكن، ولا تربط محفظتك، ولا توقّع أي شيء. [التفاصيل](SECURITY.md#official-channels--impersonation).
- **2026-09-02** 💵 **آخر محمّلين كانا يقيدان التوزيعات كخسائر، ومصدر صريح كان يجيب باسم غيره**: كان FMP وTiingo لا يزالان يقدّمان بيانات OHLC غير معدّلة بينما تقدّم بقية السلسلة أسعارًا معدّلة — الفجوة نفسها عند توزيع الأرباح تُقرأ كهبوط حقيقي، وقد أُغلقت لـ Yahoo في 08-31 وأُغلقت الآن لكليهما ([#1320](https://github.com/HKUDS/Vibe-Trading/pull/1320)، يغلق [#1296](https://github.com/HKUDS/Vibe-Trading/issues/1296)). وصُحّح في التغيير نفسه صفّاهما في جدول معايير السعر: لا يجوز ختم إطار معدّل بوسم `raw`، وإلا صار تحذير خلط المعايير المضاف في [#1317](https://github.com/HKUDS/Vibe-Trading/pull/1317) يفحص الوسم لا البيانات. كما انتقل FMP إلى نقطة النهاية Stable، وصار `source="fmp"` الصريح يفشل بوضوح بدل أن يعيد أرقام مصدر آخر باسم FMP ([#1276](https://github.com/HKUDS/Vibe-Trading/pull/1276)، يغلق [#1270](https://github.com/HKUDS/Vibe-Trading/issues/1270)). **أُصلِح:** كان الرمز داخل قوسين عريضين — `公司名(代码)价格` — يُفصل عن رقمه نفسه، فلا ترى بوابة الرموز غير المنسوبة الاثنين معًا ([#1326](https://github.com/HKUDS/Vibe-Trading/pull/1326)، يغلق [#1260](https://github.com/HKUDS/Vibe-Trading/issues/1260))؛ وصار كل رابط `references/` في المهارات المضمّنة يُحلّ إلى الملف نفسه للوكيل ولمن ينقره على GitHub ([#1328](https://github.com/HKUDS/Vibe-Trading/pull/1328)). **جديد:** انضمت البرتغالية البرازيلية إلى الواجهة كلغة ثامنة ([#1327](https://github.com/HKUDS/Vibe-Trading/pull/1327)). شكرًا [@lorenzozanee](https://github.com/lorenzozanee) و[@thisisjun786](https://github.com/thisisjun786) و[@cgycorey](https://github.com/cgycorey) و[@jw232](https://github.com/jw232) و[@ethanstoner](https://github.com/ethanstoner) و[@nandofmike](https://github.com/nandofmike)!
- **2026-09-01** 🎯 **كانت اختبارات الخيارات تُنفَّذ بالسعر نفسه الذي حُسبت منه الإشارة، وكان البيع على المكشوف قادرًا على بيع علاوة لا يملك ما يغطيها**: إشارة بتاريخ T كانت تُسعَّر بإغلاق T نفسه وتقلّبه الضمني — ميزة وهمية في كل اختبار خيارات، لا في الحالات المتطرفة وحدها. صارت الإشارات تُنفَّذ في الشمعة التالية، وتودع الأرجل القصيرة هامشًا بأسلوب CBOE يُقابَل بالقوة الشرائية ([#1299](https://github.com/HKUDS/Vibe-Trading/pull/1299)، [#1306](https://github.com/HKUDS/Vibe-Trading/pull/1306)). **أُصلِح:** كان تمويل العقود الدائمة يُسوّى مرة واحدة يوميًا على الشموع اليومية بينما نموذج المحرك نفسه ثلاث مرات يوميًا ([#1307](https://github.com/HKUDS/Vibe-Trading/pull/1307))؛ وكان المركز القصير برافعة 1x معفى تمامًا من التصفية ([#1298](https://github.com/HKUDS/Vibe-Trading/pull/1298))؛ وكانت التشغيلات المركّبة تُسقط قاعدة T+1 الهندية وتمرّر كل حدود تغيّر السعر ([#1309](https://github.com/HKUDS/Vibe-Trading/pull/1309)). **جديد:** يذكر كل إطار يُقدَّم معيار سعره — معدّل أو غير معدّل أو غير معروف بصراحة — والتشغيل الذي يخلط المعايير يصرّح بذلك ([#1317](https://github.com/HKUDS/Vibe-Trading/pull/1317)، يغلق [#1301](https://github.com/HKUDS/Vibe-Trading/issues/1301)). شكرًا [@he-yufeng](https://github.com/he-yufeng) و[@cgycorey](https://github.com/cgycorey) و[@lorenzozanee](https://github.com/lorenzozanee) و[@guestccc](https://github.com/guestccc)!
- **2026-08-31** 🧮 **كان Yahoo يسجّل كل توزيع أرباح كخسارة، ولم يكن عدد إعادات التوازن المعروض لك ذا صلة بالتنفيذات**: كان مسارا Yahoo يقدّمان OHLC غير معدّل للتوزيعات بينما تقدّم بقية السلسلة أسعارًا معدّلة، فكانت فجوة ما بعد التوزيع تُقرأ كهبوط حقيقي في أي اختبار رجعي لأسهم أمريكية يفوز فيه Yahoo. صار OHLC يُقاس الآن على `adjclose` من Yahoo، ويطلب مسار yfinance السلسلة المعدّلة؛ ويبقى حجم التداول خامًا في المسارين ([#1287](https://github.com/HKUDS/Vibe-Trading/pull/1287)). وقياس السلسلة للتحقق من ذلك أظهر أمرًا يستحق التصريح به: **ما زال sina وlongbridge يقدّمان أسعارًا غير معدّلة تمامًا**، فالمصدر الذي تصل إليه ما زال يغيّر معيار السعر — وتُتابَع هذه الفجوة الآن في [#1301](https://github.com/HKUDS/Vibe-Trading/issues/1301). وبشكل منفصل، كان `rebalance_count` يعدّ *تغيّرات* الوزن المستهدف لا التنفيذات: استراتيجية SPY/BND بهدف ثابت أبلغت عن إعادة توازن واحدة مقابل 1,269 صفقة. صار المطلوب والمنفَّذ مقياسين منفصلين، ويُشتق الثاني من سجلات تنفيذ غير قابلة للتغيير ([#1281](https://github.com/HKUDS/Vibe-Trading/pull/1281)، يغلق [#1275](https://github.com/HKUDS/Vibe-Trading/issues/1275)). **جديد:** يتيح `rebalance_mask` إعادة توازن جزئية وفق تقويم أو تواريخ صريحة بدل كل شمعة ([#1277](https://github.com/HKUDS/Vibe-Trading/pull/1277)، يغلق [#1273](https://github.com/HKUDS/Vibe-Trading/issues/1273))؛ ويحمل تقرير alpha bench بصيغة HTML الآن إفصاح تحيّز البقاء الذي كان في JSON، مع تسمية مصدر المكوّنات وتاريخ سريانه ([#1289](https://github.com/HKUDS/Vibe-Trading/pull/1289)). **إصلاحات:** لم يعد رمز واحد غير محلول يعطّل بقية دفعته — تعيد السلسلة المحاولة للمفقود فقط، ويسمّي سجل المصدر الجهة التي جاء منها كل رمز فعليًا ([#1288](https://github.com/HKUDS/Vibe-Trading/pull/1288))؛ وكان مسح الإيقاف قد يثبّت حلقة لم يمسحها قط، وقد يفقد إتمامان متزامنان سجل بعضهما ([#1254](https://github.com/HKUDS/Vibe-Trading/pull/1254))؛ وكان اتصال Futu OpenD العامل يظهر كغير متاح لأن تقرير سلامته أغفل `connection_state`؛ وكان محدّث سطح المكتب يقرأ فحص عملية مرفوض الصلاحية على أنه "إنهاء الخلفية" ([#1284](https://github.com/HKUDS/Vibe-Trading/pull/1284))؛ وكانت جلسة أُرسلت إلى الخلفية في منتصف الدور تبقي مؤشرها في الشريط الجانبي طوال عمر التبويب ([#1257](https://github.com/HKUDS/Vibe-Trading/pull/1257)، يغلق [#1256](https://github.com/HKUDS/Vibe-Trading/issues/1256)). شكرًا [@he-yufeng](https://github.com/he-yufeng), [@cgycorey](https://github.com/cgycorey), [@thisisjun786](https://github.com/thisisjun786), [@bonyohana](https://github.com/bonyohana), [@lorenzozanee](https://github.com/lorenzozanee), و [@iagop03](https://github.com/iagop03)!
- **2026-08-30** 🇬🇧 **وصل دعم أسهم LSE من دون تحويل البنس إلى جنيه، وتوقفت مشغّلات live عن العمل أثناء إغلاق السوق**: تعمل رموز `.L` الآن من البداية إلى النهاية عبر سلسلة تراجع بيانات السوق Yahoo → yfinance → local، وملفات الأسهم والقوائم المالية، ومستهلكي سجل التداول وShadow، والاختبارات الرجعية المسوّاة بالجنيه الإسترليني. يعامل Loader اللاحقة `.L` كعلامة لمكان التداول فقط: تُقسم الأسعار المعلنة بـ GBp/p على 100، ويمر GBP كما هو، وتُرفض عملات USD وغيرها والعملات المجهولة قبل بلوغ طبقة المحاسبة الثابتة بالجنيه. ويبقى مصدر التحويل لكل رمز عبر جولات التخزين المؤقت، ورُفع إصدار ذاكرة التخزين لكي لا تعود المدخلات القديمة غير الآمنة؛ كما يستخدم التنفيذ البريطاني أسهمًا صحيحة العدد و`slippage_uk` ([#1206](https://github.com/HKUDS/Vibe-Trading/pull/1206)، يغلق [#1205](https://github.com/HKUDS/Vibe-Trading/issues/1205)). **تم الإصلاح:** تتوقف market-triggered live ticks قبل قراءات الوسيط عندما تكون كل الأسواق المرتبطة مغلقة، بينما تظل القنوات ذات الفاصل الزمني فقط والمدفوعة بالأحداث خارج هذه البوابة ([#1253](https://github.com/HKUDS/Vibe-Trading/pull/1253))؛ يمكن الآن تمرير Run Detail واختصار المطالبات الطويلة، وتُطوى مجددًا عند الانتقال بين التشغيلات ([#1258](https://github.com/HKUDS/Vibe-Trading/pull/1258))؛ وتُوجّه التشغيلات غير الرجعية إلى Studio بدلًا من dashboard فارغ، ولا تحجب مصفوفة trade artifacts الفارغة `trade_log` مملوءًا بعد الآن ([#1259](https://github.com/HKUDS/Vibe-Trading/pull/1259)). شكرًا [@cgycorey](https://github.com/cgycorey) و[@he-yufeng](https://github.com/he-yufeng) و[@iagop03](https://github.com/iagop03)!
<details>
<summary>أخبار سابقة</summary>
- **2026-08-30** 🇬🇧 **وصل دعم أسهم LSE من دون تحويل البنس إلى جنيه، وتوقفت مشغّلات live عن العمل أثناء إغلاق السوق**: تعمل رموز `.L` الآن من البداية إلى النهاية عبر سلسلة تراجع بيانات السوق Yahoo → yfinance → local، وملفات الأسهم والقوائم المالية، ومستهلكي سجل التداول وShadow، والاختبارات الرجعية المسوّاة بالجنيه الإسترليني. يعامل Loader اللاحقة `.L` كعلامة لمكان التداول فقط: تُقسم الأسعار المعلنة بـ GBp/p على 100، ويمر GBP كما هو، وتُرفض عملات USD وغيرها والعملات المجهولة قبل بلوغ طبقة المحاسبة الثابتة بالجنيه. ويبقى مصدر التحويل لكل رمز عبر جولات التخزين المؤقت، ورُفع إصدار ذاكرة التخزين لكي لا تعود المدخلات القديمة غير الآمنة؛ كما يستخدم التنفيذ البريطاني أسهمًا صحيحة العدد و`slippage_uk` ([#1206](https://github.com/HKUDS/Vibe-Trading/pull/1206)، يغلق [#1205](https://github.com/HKUDS/Vibe-Trading/issues/1205)). **تم الإصلاح:** تتوقف market-triggered live ticks قبل قراءات الوسيط عندما تكون كل الأسواق المرتبطة مغلقة، بينما تظل القنوات ذات الفاصل الزمني فقط والمدفوعة بالأحداث خارج هذه البوابة ([#1253](https://github.com/HKUDS/Vibe-Trading/pull/1253))؛ يمكن الآن تمرير Run Detail واختصار المطالبات الطويلة، وتُطوى مجددًا عند الانتقال بين التشغيلات ([#1258](https://github.com/HKUDS/Vibe-Trading/pull/1258))؛ وتُوجّه التشغيلات غير الرجعية إلى Studio بدلًا من dashboard فارغ، ولا تحجب مصفوفة trade artifacts الفارغة `trade_log` مملوءًا بعد الآن ([#1259](https://github.com/HKUDS/Vibe-Trading/pull/1259)). شكرًا [@cgycorey](https://github.com/cgycorey) و[@he-yufeng](https://github.com/he-yufeng) و[@iagop03](https://github.com/iagop03)!
- **2026-08-29** 🛑 **مفتاح إيقاف تخطّى إجراءه، وزوج عملات رقمية جرى تحليله إلى عملة أخرى**: عندما كانت قراءات الوسيط تفشل في قناة متوقفة — إذ يعيد المحوّل مغلّف خطأ بدل إطلاق استثناء، وكان المسح يمرّ عليه كأنه قائمة أوامر — كان المسح يسجّل نفسه على أنه نُفّذ رغم ذلك. أما الإلغاء وتصفية المراكز، وهو ما يوجد مفتاح الإيقاف لتنفيذه، فكان يُتخطّى بصمت في تلك الحادثة، ولم يكن أي شيء يعيد المحاولة. صار المسح الآن لا يُقفل إلا بعد محاولة كتابة فعلية لدى الوسيط، ويحجز كل حادثة إيقاف حصريًا كي لا يكرّر مُشغّلان الإغلاق نفسه، ولم يعد يقرأ رفض الوسيط المغلَّف داخل نجاح على مستوى النقل على أنه قبول ([#1244](https://github.com/HKUDS/Vibe-Trading/pull/1244)). وبمعزل عن ذلك، كان طلب `ETH-USDT` يعيد `AETHUSDT-USD` — أي Aave Ethereum USDT، وهو أصل مختلف تمامًا — لأن البحث عن الرموز لم يغطِّ أزواج المنصات قط، فكانت أقرب سلسلة نصية لدى Yahoo هي الفائزة. تُحلَّل الأزواج الدقيقة الآن مقابل كتالوجات المنصات، وهي عامة ولا تحتاج إلى حساب لدى وسيط ([#1242](https://github.com/HKUDS/Vibe-Trading/pull/1242)، يغلق [#1234](https://github.com/HKUDS/Vibe-Trading/issues/1234)). **جديد:** تنشر الموصّلات المدمجة عقد تهيئة قابلًا للقراءة آليًا، فيسير كل من `vibe-trading connector setup` ومركز الاتصالات في صفحة المحفظة على تدفّق عام واحد، مع حفظ الأسرار لكل اتصال في سلسلة مفاتيح نظام التشغيل ([#1250](https://github.com/HKUDS/Vibe-Trading/pull/1250)). **أُصلح:** صارت إعادات المحاولة في البثّ تتصاعد وتحترم `Retry-After` ([#1208](https://github.com/HKUDS/Vibe-Trading/issues/1208))؛ والشريحة التي يُقرَّب هدفها إلى ما دون عقد واحد يجري الإبلاغ عنها بدل أن تُنفَّذ صفر مرات بصمت ([#1235](https://github.com/HKUDS/Vibe-Trading/issues/1235))؛ ويُقاس المؤشر المرجعي الصريح على نافذة التقييم لا على نافذة الجلب، فلم يعد حدّ الإحماء الذي صدر أمس يقارن فترتين مختلفتين. شكرًا [@cgycorey](https://github.com/cgycorey) و[@pengpengyi92](https://github.com/pengpengyi92) و[@lorenzozanee](https://github.com/lorenzozanee) و[@goatyyc](https://github.com/goatyyc) و[@ethanstoner](https://github.com/ethanstoner) و[@QG8000](https://github.com/QG8000) و[@turtle696966969696](https://github.com/turtle696966969696)!
- **2026-08-28** 📏 **اختبارات رجعية كانت تنهار، وأخرى كانت تقيّم بصمت سنةً لم تطلبها**: في v0.1.14 كان كل اختبار رجعي عابر للأسواق ينهار — إذ يمرّر المشغّل عمدًا `bars_per_year=None` لسلّة تمتد عبر أسواق، ثم يستدعي فحص المخاطر الجديد `math.sqrt` عليها. وُجدت الثغرة نفسها في موضعين آخرين؛ والمواضع الأربعة تحسم `None` الآن عبر معامل واحد مشتقّ من المدى ([#1239](https://github.com/HKUDS/Vibe-Trading/pull/1239)، closes [#1237](https://github.com/HKUDS/Vibe-Trading/issues/1237)). أمّا الأهدأ: استراتيجية ذات نظرة خلفية طويلة تحتاج شموعًا **قبل** الفترة التي طلبتها، فكان الوكيل يُرجِع `start_date` سنةً كاملة لتغذية MA200 — ثم يقيّم تلك السنة. تشغيل يُقدَّم على أنه عشر سنوات كان يُبلغ عن إحدى عشرة، وقد أُدخلت صفقات السنة الزائدة ومعدّل النمو السنوي والمؤشر المرجعي في الحساب، دون أي خطأ، ومع اتساق المقاييس فيما بينها. الآن يفصل `warmup_bars` (أو `evaluation_start_date`) نافذة البيانات عن نافذة التقييم: شموع الإحماء تُهيّئ المؤشرات ولا تصل إلى شيء آخر ([#1240](https://github.com/HKUDS/Vibe-Trading/issues/1240)). **جديد:** يكتسب `quantlib` تسعير التقلب العشوائي وفق Heston (1993)، وتكافؤ المخاطر الهرمي، وروابط غاوسية وأرخميدية، ومقدّرات البنية الدقيقة (VPIN وRoll وAmihud وKyle)، وحساسيات الحواجز بالفروق المنتهية — 306 دالة مختبَرة عبر 23 وحدة ([#1195](https://github.com/HKUDS/Vibe-Trading/pull/1195)–[#1198](https://github.com/HKUDS/Vibe-Trading/pull/1198)، [#1203](https://github.com/HKUDS/Vibe-Trading/pull/1203)). **إصلاح:** ثمانية روابط مرجعية في المهارات كانت تشير إلى مسارات لا يستطيع `read_file` فتحها، فكانت تلك المستندات تفشل في التحميل بصمت. شكرًا [@cgycorey](https://github.com/cgycorey) و[@santhreal](https://github.com/santhreal) و[@turtle696966969696](https://github.com/turtle696966969696) و[@wanderkiller](https://github.com/wanderkiller)!
- **2026-08-27** 🛑 **مسح مفتاح الإيقاف يصمد أمام إعادة التشغيل ويتوقف عن الوثوق باتصال وسيط متقلّب**: أثناء الإيقاف، كان مسح الإلغاء والتسييل يعدّ أي ردّ من الوسيط نجاحًا — لكن محوّل MCP يحوّل الاستدعاء الفاشل إلى مغلّف `{"status": "error"}`، فكان انقطاع اتصال واحد يترك سجلّ تدقيق يبدو سليمًا بينما الأمر المعلّق ما يزال حيًّا؛ الآن تفشل المرحلتان بشكل مغلق عند مغلّف الخطأ ([#1232](https://github.com/HKUDS/Vibe-Trading/pull/1232)). كما كان مزلاج «الإطلاق مرة واحدة» في الذاكرة فقط: إعادة تشغيل وأوامر التسييل ما تزال قيد التنفيذ كانت تعيد المسح كاملًا — أمر سوق جديد لكل مركز، بما يكفي لقلب حساب شراءٍ إلى صافي بيع؛ المزلاج الآن مثبَّت بجوار حارس HALT ومربوط بحلقة الإيقاف نفسها، فإلغاء الإيقاف وإعادة إطلاقه يعيدان تسليحه ([#1233](https://github.com/HKUDS/Vibe-Trading/pull/1233)). **جديد**: ترتيب التراجع لمصادر بيانات كل سوق أصبح مرئيًا وقابلًا لإعادة الترتيب في *Settings → Data Source Priority* — تطبيق فوري، حفظ لكل سوق (`MARKET_DATA_ORDER_*`)، وإعادة ترتيب فقط: إضافة مصدر أو حذفه مرفوضة، وبدون تجاوز يبقى الترتيب الافتراضي كما هو ([#1231](https://github.com/HKUDS/Vibe-Trading/pull/1231))؛ ونتائج مطابقة Binance USD-M تُسجَّل الآن كأدلة انحراف مقاومة للتلاعب — JSON صارم، فشل مغلق عند اللقطات الناقصة أو غير المدعومة، بلا أي سطح أوامر ([#1230](https://github.com/HKUDS/Vibe-Trading/pull/1230)، باتجاه [#1030](https://github.com/HKUDS/Vibe-Trading/issues/1030)). شكرًا [@he-yufeng](https://github.com/he-yufeng) و[@sambazhu](https://github.com/sambazhu) و[@honginp](https://github.com/honginp)!
+3 -2
View File
@@ -52,14 +52,15 @@
> ⚠️ **Advertencia de seguridad:** la cuenta de X `VibeTrading_HKU`, el proyecto de Virtuals `101845` y el contrato de token `0x640BDBF77b6447E8b7DB7894cED84BD1c40571f4` no son activos oficiales de Vibe-Trading. Nunca hemos lanzado ni respaldado ningún token o memecoin. No compres, conectes una wallet ni firmes nada. [Detalles](SECURITY.md#official-channels--impersonation).
- **2026-09-02** 💵 **Los dos últimos loaders que contabilizaban los dividendos como pérdidas, y una fuente explícita que respondía en nombre de otra**: FMP y Tiingo seguían sirviendo OHLC sin ajustar mientras el resto de la cadena servía precios ajustados — el mismo hueco del ex-dividendo leído como una caída real, cerrado para Yahoo el 08-31 y ahora cerrado para ambos ([#1320](https://github.com/HKUDS/Vibe-Trading/pull/1320), cierra [#1296](https://github.com/HKUDS/Vibe-Trading/issues/1296)). En el mismo cambio se corrigieron sus filas en la tabla de calibre de precio: un marco ajustado no debe llevar el sello `raw`, o el aviso de calibres mezclados añadido en [#1317](https://github.com/HKUDS/Vibe-Trading/pull/1317) estaría comprobando una etiqueta en vez de los datos. FMP también pasó al endpoint Stable, y un `source="fmp"` explícito ahora falla de forma audible en lugar de devolver las cifras de otra fuente bajo el nombre de FMP ([#1276](https://github.com/HKUDS/Vibe-Trading/pull/1276), cierra [#1270](https://github.com/HKUDS/Vibe-Trading/issues/1270)). **Corregido:** un ticker entre paréntesis de ancho completo — `公司名(代码)价格` — quedaba separado de su propia cifra, así que la puerta de símbolos sin fuente nunca veía los dos juntos ([#1326](https://github.com/HKUDS/Vibe-Trading/pull/1326), cierra [#1260](https://github.com/HKUDS/Vibe-Trading/issues/1260)); cada enlace `references/` de las skills incluidas se resuelve ahora al mismo archivo para el agente y para quien lo pulse en GitHub ([#1328](https://github.com/HKUDS/Vibe-Trading/pull/1328)). **Nuevo:** el portugués de Brasil se suma a la interfaz como octavo idioma ([#1327](https://github.com/HKUDS/Vibe-Trading/pull/1327)). ¡Gracias [@lorenzozanee](https://github.com/lorenzozanee), [@thisisjun786](https://github.com/thisisjun786), [@cgycorey](https://github.com/cgycorey), [@jw232](https://github.com/jw232), [@ethanstoner](https://github.com/ethanstoner) y [@nandofmike](https://github.com/nandofmike)!
- **2026-09-01** 🎯 **Los backtests de opciones se ejecutaban al precio del que la propia señal se había calculado, y una venta en descubierto podía vender una prima que jamás podría cubrir**: una señal fechada en T se valoraba con el cierre y la IV de ese mismo T — una ventaja fantasma en todo backtest de opciones, no solo en los adversarios. Ahora las señales se ejecutan en la barra siguiente, y las patas cortas depositan margen al estilo CBOE contrastado con el poder de compra ([#1299](https://github.com/HKUDS/Vibe-Trading/pull/1299), [#1306](https://github.com/HKUDS/Vibe-Trading/pull/1306)). **Corregido:** la financiación de perpetuos se liquidaba una vez al día en barras diarias frente al modelo de 3 veces al día del propio motor ([#1307](https://github.com/HKUDS/Vibe-Trading/pull/1307)); una posición corta 1x quedaba totalmente exenta de liquidación ([#1298](https://github.com/HKUDS/Vibe-Trading/pull/1298)); las ejecuciones compuestas perdían el T+1 de India y dejaban pasar todas las bandas de límite de precio ([#1309](https://github.com/HKUDS/Vibe-Trading/pull/1309)). **Nuevo:** cada marco servido indica su calibre de precio — ajustado, sin ajustar u honestamente desconocido — y una ejecución que mezcla calibres lo advierte ([#1317](https://github.com/HKUDS/Vibe-Trading/pull/1317), cierra [#1301](https://github.com/HKUDS/Vibe-Trading/issues/1301)). ¡Gracias [@he-yufeng](https://github.com/he-yufeng), [@cgycorey](https://github.com/cgycorey), [@lorenzozanee](https://github.com/lorenzozanee) y [@guestccc](https://github.com/guestccc)!
- **2026-08-31** 🧮 **Yahoo contabilizaba cada dividendo como una pérdida, y el recuento de rebalanceos que veías no tenía nada que ver con las ejecuciones**: ambas rutas de Yahoo servían OHLC sin ajustar por dividendos mientras el resto de la cadena servía precios ajustados, de modo que cada hueco ex-dividendo se leía como una caída real en cualquier backtest de renta variable estadounidense que ganara Yahoo. Ahora el OHLC se escala al `adjclose` de Yahoo y la ruta de yfinance pide la serie ajustada; el volumen sigue siendo bruto en ambas ([#1287](https://github.com/HKUDS/Vibe-Trading/pull/1287)). Medir la cadena para verificarlo sacó a la luz algo que conviene decir con claridad: **sina y longbridge siguen sirviendo precios totalmente sin ajustar**, así que la fuente en la que caigas todavía cambia el calibre del precio — esa brecha se rastrea ahora en [#1301](https://github.com/HKUDS/Vibe-Trading/issues/1301). Aparte, `rebalance_count` contaba *cambios* de peso objetivo, no ejecuciones: una estrategia SPY/BND con objetivo constante reportaba un rebalanceo frente a 1.269 operaciones. Solicitado y ejecutado son ahora métricas separadas, las de ejecución derivadas de registros de fills inmutables ([#1281](https://github.com/HKUDS/Vibe-Trading/pull/1281), cierra [#1275](https://github.com/HKUDS/Vibe-Trading/issues/1275)). **Nuevo:** `rebalance_mask` ejecuta rebalanceo parcial según un calendario o fechas explícitas en lugar de en cada barra ([#1277](https://github.com/HKUDS/Vibe-Trading/pull/1277), cierra [#1273](https://github.com/HKUDS/Vibe-Trading/issues/1273)); el informe HTML de alpha bench ya incluye la divulgación de sesgo de supervivencia que el JSON ya tenía, nombrando la fuente de constituyentes y su fecha de corte ([#1289](https://github.com/HKUDS/Vibe-Trading/pull/1289)). **Corregido:** un símbolo sin resolver ya no deja tirado al resto de su lote — la cadena reintenta solo los que faltan y la procedencia nombra la fuente de la que vino realmente cada símbolo ([#1288](https://github.com/HKUDS/Vibe-Trading/pull/1288)); un barrido de parada podía marcar un episodio que nunca barrió, y dos finalizaciones concurrentes podían perder el registro de la otra ([#1254](https://github.com/HKUDS/Vibe-Trading/pull/1254)); una conexión Futu OpenD operativa se mostraba como no disponible porque su informe de salud omitía `connection_state`; el actualizador de escritorio leía un sondeo de proceso con permiso denegado como "backend terminado" ([#1284](https://github.com/HKUDS/Vibe-Trading/pull/1284)); y una sesión enviada a segundo plano a mitad de turno mantenía su indicador en la barra lateral durante toda la vida de la pestaña ([#1257](https://github.com/HKUDS/Vibe-Trading/pull/1257), cierra [#1256](https://github.com/HKUDS/Vibe-Trading/issues/1256)). ¡Gracias [@he-yufeng](https://github.com/he-yufeng), [@cgycorey](https://github.com/cgycorey), [@thisisjun786](https://github.com/thisisjun786), [@bonyohana](https://github.com/bonyohana), [@lorenzozanee](https://github.com/lorenzozanee), y [@iagop03](https://github.com/iagop03)!
- **2026-08-30** 🇬🇧 **Las acciones de LSE llegan sin convertir peniques en libras, y los triggers live dejan de activarse con el mercado cerrado**: los símbolos `.L` funcionan ahora de extremo a extremo mediante el fallback de datos de mercado Yahoo → yfinance → local, perfiles de acciones y estados financieros, consumidores del diario de operaciones y Shadow, y backtests liquidados en GBP. El loader trata `.L` solo como marcador de mercado: los precios declarados en GBp/p se dividen por 100, GBP pasa sin cambios y USD, otras divisas o una divisa desconocida se rechazan antes de la capa contable estática en GBP. La procedencia de conversión por símbolo sobrevive a los ciclos de caché y se incrementó su versión para impedir que vuelvan entradas antiguas inseguras; la ejecución británica también usa acciones enteras y `slippage_uk` ([#1206](https://github.com/HKUDS/Vibe-Trading/pull/1206), cierra [#1205](https://github.com/HKUDS/Vibe-Trading/issues/1205)). **Corregido:** los market-triggered live ticks se detienen antes de leer el bróker cuando todos los mercados asociados están cerrados, mientras los canales solo por intervalo y por eventos quedan fuera de esta puerta ([#1253](https://github.com/HKUDS/Vibe-Trading/pull/1253)); Run Detail permite desplazarse, recorta prompts largos y vuelve a plegarlos al cambiar de run ([#1258](https://github.com/HKUDS/Vibe-Trading/pull/1258)); los runs que no son backtests van a Studio en vez de un dashboard vacío, y un array vacío de artefactos de operaciones ya no oculta un `trade_log` con datos ([#1259](https://github.com/HKUDS/Vibe-Trading/pull/1259)). ¡Gracias [@cgycorey](https://github.com/cgycorey), [@he-yufeng](https://github.com/he-yufeng) y [@iagop03](https://github.com/iagop03)!
<details>
<summary>Noticias anteriores</summary>
- **2026-08-30** 🇬🇧 **Las acciones de LSE llegan sin convertir peniques en libras, y los triggers live dejan de activarse con el mercado cerrado**: los símbolos `.L` funcionan ahora de extremo a extremo mediante el fallback de datos de mercado Yahoo → yfinance → local, perfiles de acciones y estados financieros, consumidores del diario de operaciones y Shadow, y backtests liquidados en GBP. El loader trata `.L` solo como marcador de mercado: los precios declarados en GBp/p se dividen por 100, GBP pasa sin cambios y USD, otras divisas o una divisa desconocida se rechazan antes de la capa contable estática en GBP. La procedencia de conversión por símbolo sobrevive a los ciclos de caché y se incrementó su versión para impedir que vuelvan entradas antiguas inseguras; la ejecución británica también usa acciones enteras y `slippage_uk` ([#1206](https://github.com/HKUDS/Vibe-Trading/pull/1206), cierra [#1205](https://github.com/HKUDS/Vibe-Trading/issues/1205)). **Corregido:** los market-triggered live ticks se detienen antes de leer el bróker cuando todos los mercados asociados están cerrados, mientras los canales solo por intervalo y por eventos quedan fuera de esta puerta ([#1253](https://github.com/HKUDS/Vibe-Trading/pull/1253)); Run Detail permite desplazarse, recorta prompts largos y vuelve a plegarlos al cambiar de run ([#1258](https://github.com/HKUDS/Vibe-Trading/pull/1258)); los runs que no son backtests van a Studio en vez de un dashboard vacío, y un array vacío de artefactos de operaciones ya no oculta un `trade_log` con datos ([#1259](https://github.com/HKUDS/Vibe-Trading/pull/1259)). ¡Gracias [@cgycorey](https://github.com/cgycorey), [@he-yufeng](https://github.com/he-yufeng) y [@iagop03](https://github.com/iagop03)!
- **2026-08-29** 🛑 **Un interruptor de emergencia que se saltó su propia acción, y un par cripto que resolvía a otra moneda**: cuando fallaban las lecturas del bróker en un canal detenido —el adaptador devuelve un sobre de error en lugar de lanzar una excepción, y el barrido lo recorría como si fuera una lista de órdenes—, el barrido se marcaba igualmente como disparado. La cancelación y el cierre de posiciones que el interruptor existe para ejecutar se omitían en silencio en ese episodio, y nada lo reintentaba. Ahora solo se bloquea después de haber intentado realmente una escritura en el bróker, reclama cada episodio de parada en exclusiva para que dos ejecutores no dupliquen un cierre, y ya no interpreta como aceptado un rechazo del bróker envuelto en un éxito de la capa de transporte ([#1244](https://github.com/HKUDS/Vibe-Trading/pull/1244)). Aparte, pedir `ETH-USDT` devolvía `AETHUSDT-USD` —Aave Ethereum USDT, un activo distinto— porque la búsqueda de símbolos nunca cubrió los pares de exchange y ganaba la cadena más parecida de Yahoo. Los pares exactos se resuelven ahora contra los catálogos de los exchanges, que son públicos y no requieren cuenta de bróker ([#1242](https://github.com/HKUDS/Vibe-Trading/pull/1242), cierra [#1234](https://github.com/HKUDS/Vibe-Trading/issues/1234)). **Nuevo:** los conectores integrados publican un contrato de alta legible por máquina, de modo que `vibe-trading connector setup` y el centro de conexiones de Cartera usan un único flujo genérico, con los secretos guardados por conexión en el llavero del sistema operativo ([#1250](https://github.com/HKUDS/Vibe-Trading/pull/1250)). **Corregido:** los reintentos de streaming escalan y respetan `Retry-After` ([#1208](https://github.com/HKUDS/Vibe-Trading/issues/1208)); una pata cuyo objetivo se redondea por debajo de un lote se informa en lugar de operar cero veces sin avisar ([#1235](https://github.com/HKUDS/Vibe-Trading/issues/1235)); y un índice de referencia explícito se mide sobre la ventana evaluada, no sobre la descargada, de modo que el límite de calentamiento de ayer ya no compara dos periodos distintos. ¡Gracias [@cgycorey](https://github.com/cgycorey), [@pengpengyi92](https://github.com/pengpengyi92), [@lorenzozanee](https://github.com/lorenzozanee), [@goatyyc](https://github.com/goatyyc), [@ethanstoner](https://github.com/ethanstoner), [@QG8000](https://github.com/QG8000) y [@turtle696966969696](https://github.com/turtle696966969696)!
- **2026-08-28** 📏 **Backtests que reventaban, y backtests que calificaban en silencio un año que nunca pediste**: en v0.1.14 todo backtest multi-mercado moría — el runner pasa deliberadamente `bars_per_year=None` para una cesta que abarca varios mercados, y la nueva radiografía de riesgo le aplicaba `math.sqrt`. Otros dos consumidores tenían el mismo hueco; los cuatro resuelven ahora `None` mediante un único factor derivado del período ([#1239](https://github.com/HKUDS/Vibe-Trading/pull/1239), closes [#1237](https://github.com/HKUDS/Vibe-Trading/issues/1237)). El más silencioso: una estrategia de lookback largo necesita barras *anteriores* al período que pediste, así que el agente retrasaba `start_date` un año para alimentar la MA200 — y luego calificaba ese año. Una ejecución presentada como diez años reportaba once, con las operaciones, el CAGR y el benchmark del año extra incluidos, sin error alguno y con métricas coherentes entre sí. Ahora `warmup_bars` (o `evaluation_start_date`) separa la ventana de datos de la ventana de evaluación: las barras de calentamiento ceban los indicadores y no llegan a nada más ([#1240](https://github.com/HKUDS/Vibe-Trading/issues/1240)). **Nuevo:** `quantlib` incorpora la valoración con volatilidad estocástica de Heston (1993), Paridad de Riesgo Jerárquica, cópulas gaussianas y arquimedianas, estimadores de microestructura (VPIN, Roll, Amihud, Kyle) y griegas de barrera por diferencias finitas — 306 funciones probadas en 23 módulos ([#1195](https://github.com/HKUDS/Vibe-Trading/pull/1195)–[#1198](https://github.com/HKUDS/Vibe-Trading/pull/1198), [#1203](https://github.com/HKUDS/Vibe-Trading/pull/1203)). **Corregido:** ocho enlaces de referencia de skills apuntaban a rutas que `read_file` no puede abrir, por lo que esos documentos fallaban en silencio al cargarse. ¡Gracias [@cgycorey](https://github.com/cgycorey), [@santhreal](https://github.com/santhreal), [@turtle696966969696](https://github.com/turtle696966969696) y [@wanderkiller](https://github.com/wanderkiller)!
- **2026-08-27** 🛑 **El barrido del kill-switch sobrevive a los reinicios y deja de confiar en una conexión de bróker inestable**: durante un halt, el barrido de cancelación y cierre de posiciones contaba cualquier respuesta del bróker como éxito — pero el adaptador MCP convierte una llamada fallida en un sobre `{"status": "error"}`, de modo que una desconexión producía un rastro de auditoría de apariencia correcta mientras la orden pendiente seguía viva; los sobres de error ahora fallan cerrado en ambas fases ([#1232](https://github.com/HKUDS/Vibe-Trading/pull/1232)). El pestillo de "disparo único" del barrido además vivía solo en memoria: un reinicio con las órdenes de cierre aún en vuelo repetía el barrido entero — una orden a mercado nueva por posición, suficiente para convertir una cuenta larga en neta corta; el pestillo ahora se persiste junto al centinela HALT y queda ligado a ese episodio de halt, así que limpiar y volver a disparar lo rearma ([#1233](https://github.com/HKUDS/Vibe-Trading/pull/1233)). **Nuevo:** el orden de respaldo de las fuentes de datos de cada mercado es visible y reordenable en *Settings → Data Source Priority* — aplicación en caliente, persistido por mercado (`MARKET_DATA_ORDER_*`), y estrictamente una reordenación: añadir o quitar fuentes se rechaza, y sin override los valores por defecto quedan intactos ([#1231](https://github.com/HKUDS/Vibe-Trading/pull/1231)); los resultados de conciliación de Binance USD-M se registran como artefactos de evidencia de deriva a prueba de manipulación — JSON estricto, fallo cerrado ante instantáneas incompletas o no soportadas, sin superficie de órdenes ([#1230](https://github.com/HKUDS/Vibe-Trading/pull/1230), hacia [#1030](https://github.com/HKUDS/Vibe-Trading/issues/1030)). ¡Gracias [@he-yufeng](https://github.com/he-yufeng), [@sambazhu](https://github.com/sambazhu) y [@honginp](https://github.com/honginp)!
+3 -2
View File
@@ -52,14 +52,15 @@
> ⚠️ **セキュリティ警告:** Xアカウント `VibeTrading_HKU`、Virtualsプロジェクト `101845`、およびトークンコントラクト `0x640BDBF77b6447E8b7DB7894cED84BD1c40571f4` は、いずれもVibe-Trading公式のものではありません。Vibe-Tradingはこれまで、いかなるトークンやミームコインも発行・公認していません。購入、ウォレットの接続、署名は行わないでください。[詳細](SECURITY.md#official-channels--impersonation)
- **2026-09-02** 💵 **配当を損失として計上していた最後の 2 つの loader と、別人として応答していた明示的なソース**:FMP と Tiingo は未調整の OHLC を配信し続けており、チェーンの他のソースは調整済み価格を返していました——配当落ちのギャップが実際の下落として読まれる問題で、08-31 に Yahoo で修正したものを、今回この 2 つでも修正しました([#1320](https://github.com/HKUDS/Vibe-Trading/pull/1320)、[#1296](https://github.com/HKUDS/Vibe-Trading/issues/1296) をクローズ)。同じ変更で価格調整基準テーブルの両者の行も訂正しました。調整済みのフレームに `raw` の刻印を押してはなりません。さもないと [#1317](https://github.com/HKUDS/Vibe-Trading/pull/1317) で追加した基準混在の警告は、データではなくラベルを検査することになります。FMP は Stable エンドポイントにも移行し、明示的な `source="fmp"` は他ソースの数値を FMP の名前で返す代わりに、明確に失敗するようになりました([#1276](https://github.com/HKUDS/Vibe-Trading/pull/1276)、[#1270](https://github.com/HKUDS/Vibe-Trading/issues/1270) をクローズ)。**修正:** 全角括弧内のティッカー——`公司名(代码)价格`——が自身の数値から切り離され、出典なしシンボルのゲートが両者を一緒に見ることがありませんでした([#1326](https://github.com/HKUDS/Vibe-Trading/pull/1326)、[#1260](https://github.com/HKUDS/Vibe-Trading/issues/1260) をクローズ)。同梱スキル内のすべての `references/` リンクが、agent と GitHub 上でクリックする人間の双方で同じファイルに解決するようになりました([#1328](https://github.com/HKUDS/Vibe-Trading/pull/1328))。**新規:** ブラジルポルトガル語が 8 番目の言語としてインターフェースに加わりました([#1327](https://github.com/HKUDS/Vibe-Trading/pull/1327))。[@lorenzozanee](https://github.com/lorenzozanee)、[@thisisjun786](https://github.com/thisisjun786)、[@cgycorey](https://github.com/cgycorey)、[@jw232](https://github.com/jw232)、[@ethanstoner](https://github.com/ethanstoner)、[@nandofmike](https://github.com/nandofmike) に感謝します!
- **2026-09-01** 🎯 **オプションのバックテストはシグナル自身が算出した価格で約定し、ネイキッドショートは到底カバーできないプレミアムを売れた**:T 日付のシグナルが T 当日の終値と IV で価格付けされていました——敵対的なケースに限らず、すべてのオプションバックテストに含まれる見せかけのエッジです。シグナルは次のバーで約定するようになり、ショート脚は CBOE 方式の証拠金を計上して買付余力と照合します([#1299](https://github.com/HKUDS/Vibe-Trading/pull/1299)、[#1306](https://github.com/HKUDS/Vibe-Trading/pull/1306))。**修正**:無期限先物のファンディングが日足で 1 日 1 回しか清算されず、エンジン自身のモデルである 1 日 3 回と食い違っていました([#1307](https://github.com/HKUDS/Vibe-Trading/pull/1307));1 倍のショートが強制決済から完全に除外されていました([#1298](https://github.com/HKUDS/Vibe-Trading/pull/1298));コンポジット実行がインドの T+1 を取りこぼし、値幅制限の判定が毎バー素通りしていました([#1309](https://github.com/HKUDS/Vibe-Trading/pull/1309))。**新規**:配信されるすべてのフレームが価格の調整基準——調整済み、未調整、あるいは正直に不明——を明示し、基準が混在する実行はその旨を告げます([#1317](https://github.com/HKUDS/Vibe-Trading/pull/1317)、[#1301](https://github.com/HKUDS/Vibe-Trading/issues/1301) をクローズ)。[@he-yufeng](https://github.com/he-yufeng)、[@cgycorey](https://github.com/cgycorey)、[@lorenzozanee](https://github.com/lorenzozanee)、[@guestccc](https://github.com/guestccc) に感謝します!
- **2026-08-31** 🧮 **Yahoo は配当をすべて損失として計上し、表示されていたリバランス回数は約定と無関係だった**:Yahoo の 2 経路はいずれも配当調整前の OHLC を返す一方、チェーン上の他のソースは調整済み価格を返していたため、Yahoo がチェーンを勝ち取った米国株バックテストでは配当落ちギャップがそのまま実際の下落として読まれていました。OHLC は Yahoo の `adjclose` に合わせてスケールされ、yfinance 経路は調整済み系列を要求します。出来高は両経路とも生値のままです([#1287](https://github.com/HKUDS/Vibe-Trading/pull/1287))。これを検証するためにチェーンを実測したところ、はっきり述べておくべきことが分かりました:**sina と longbridge は今なお完全に未調整の価格を返します**。どのソースに当たるかで価格の基準が変わる状態は続いており、このギャップは [#1301](https://github.com/HKUDS/Vibe-Trading/issues/1301) で追跡しています。また `rebalance_count` は執行回数ではなく目標ウェイトの*変更*回数を数えていました。目標一定の SPY/BND 戦略が 1,269 回の取引に対してリバランス 1 回と報告していたのです。「要求」と「執行」は独立した指標になり、後者は不変の約定記録から導出されます([#1281](https://github.com/HKUDS/Vibe-Trading/pull/1281)、[#1275](https://github.com/HKUDS/Vibe-Trading/issues/1275) をクローズ)。**新機能:** `rebalance_mask` により、毎バーではなくカレンダーまたは明示日付で部分リバランスを実行できます([#1277](https://github.com/HKUDS/Vibe-Trading/pull/1277)、[#1273](https://github.com/HKUDS/Vibe-Trading/issues/1273) をクローズ)。HTML 版 alpha bench レポートにも、JSON には既にあった生存者バイアスの開示が構成銘柄ソースと基準日付きで載るようになりました([#1289](https://github.com/HKUDS/Vibe-Trading/pull/1289))。**修正:** 解決できないシンボルが 1 つあっても同一バッチの残りが取り残されなくなりました。チェーンは欠けているものだけを再試行し、来歴には各シンボルが実際に取得されたソースが記録されます([#1288](https://github.com/HKUDS/Vibe-Trading/pull/1288))。停止時のスイープが実行していない episode をラッチする可能性、および 2 つの並行完了が互いの記録を失う可能性を修正([#1254](https://github.com/HKUDS/Vibe-Trading/pull/1254))。稼働中の富途 OpenD 接続が、ヘルスレポートに `connection_state` が欠けていたため利用不可と表示される問題。デスクトップ更新機能が権限不足のプロセス確認を「バックエンド終了」と読む問題([#1284](https://github.com/HKUDS/Vibe-Trading/pull/1284))。ターン途中でバックグラウンドに回したセッションのサイドバー表示がタブを閉じるまで回り続ける問題([#1257](https://github.com/HKUDS/Vibe-Trading/pull/1257)、[#1256](https://github.com/HKUDS/Vibe-Trading/issues/1256) をクローズ)。[@he-yufeng](https://github.com/he-yufeng), [@cgycorey](https://github.com/cgycorey), [@thisisjun786](https://github.com/thisisjun786), [@bonyohana](https://github.com/bonyohana), [@lorenzozanee](https://github.com/lorenzozanee), および [@iagop03](https://github.com/iagop03) に感謝します!
- **2026-08-30** 🇬🇧 **LSE 株式がペンスをポンドと誤認せず利用可能になり、閉場中の live trigger も停止**:`.L` シンボルは Yahoo → yfinance → local の市場データフォールバック、株式プロファイルと財務諸表、取引ジャーナルと Shadow の消費先、GBP 決済のバックテストまで end-to-end で動作します。Loader は `.L` を取引所マーカーとしてのみ扱います。通貨が GBp/p と明示された価格は 100 で割り、GBP は変換せず通し、USD・その他・不明の通貨は静的な GBP 会計層に入る前に拒否します。シンボルごとの変換 provenance はキャッシュの往復後も保持され、古い危険なエントリが戻らないようキャッシュ版も更新しました。UK 執行には整数株と `slippage_uk` を使います([#1206](https://github.com/HKUDS/Vibe-Trading/pull/1206)、[#1205](https://github.com/HKUDS/Vibe-Trading/issues/1205) をクローズ)。**修正:** 関連する全市場が閉場中の場合、market-triggered live tick はブローカー読み取り前に停止しますが、interval-only と event-driven のチャネルは引き続きゲート対象外です([#1253](https://github.com/HKUDS/Vibe-Trading/pull/1253))。Run Detail は長い prompt をスクロール・省略表示でき、run 切り替え時に再び折りたたみます([#1258](https://github.com/HKUDS/Vibe-Trading/pull/1258))。バックテスト以外の run は空の dashboard ではなく Studio へ移動し、空の trade artifact 配列がデータ入りの `trade_log` を隠さなくなりました([#1259](https://github.com/HKUDS/Vibe-Trading/pull/1259))。貢献に感謝します:[@cgycorey](https://github.com/cgycorey)、[@he-yufeng](https://github.com/he-yufeng)、[@iagop03](https://github.com/iagop03)。
<details>
<summary>過去のニュース</summary>
- **2026-08-30** 🇬🇧 **LSE 株式がペンスをポンドと誤認せず利用可能になり、閉場中の live trigger も停止**:`.L` シンボルは Yahoo → yfinance → local の市場データフォールバック、株式プロファイルと財務諸表、取引ジャーナルと Shadow の消費先、GBP 決済のバックテストまで end-to-end で動作します。Loader は `.L` を取引所マーカーとしてのみ扱います。通貨が GBp/p と明示された価格は 100 で割り、GBP は変換せず通し、USD・その他・不明の通貨は静的な GBP 会計層に入る前に拒否します。シンボルごとの変換 provenance はキャッシュの往復後も保持され、古い危険なエントリが戻らないようキャッシュ版も更新しました。UK 執行には整数株と `slippage_uk` を使います([#1206](https://github.com/HKUDS/Vibe-Trading/pull/1206)、[#1205](https://github.com/HKUDS/Vibe-Trading/issues/1205) をクローズ)。**修正:** 関連する全市場が閉場中の場合、market-triggered live tick はブローカー読み取り前に停止しますが、interval-only と event-driven のチャネルは引き続きゲート対象外です([#1253](https://github.com/HKUDS/Vibe-Trading/pull/1253))。Run Detail は長い prompt をスクロール・省略表示でき、run 切り替え時に再び折りたたみます([#1258](https://github.com/HKUDS/Vibe-Trading/pull/1258))。バックテスト以外の run は空の dashboard ではなく Studio へ移動し、空の trade artifact 配列がデータ入りの `trade_log` を隠さなくなりました([#1259](https://github.com/HKUDS/Vibe-Trading/pull/1259))。貢献に感謝します:[@cgycorey](https://github.com/cgycorey)、[@he-yufeng](https://github.com/he-yufeng)、[@iagop03](https://github.com/iagop03)。
- **2026-08-29** 🛑 **自らのアクションを飛ばしたキルスイッチと、別のコインとして解決された暗号資産ペア**:停止中チャネルのブローカー読み取りが失敗したとき——アダプタは例外を投げずにエラー封筒を返し、スイープはそれを注文リストとして反復していました——スイープはそれでも自らを発火済みとして記録していました。キルスイッチが実行するはずの注文取り消しと建玉の手仕舞いが、そのエピソードでは静かに飛ばされ、何も再試行しませんでした。現在はブローカーへの書き込みを実際に試みた後にのみラッチし、2 つのランナーが決済を重複させないよう各停止エピソードを排他的に確保し、トランスポート層の成功に包まれたブローカー拒否を受理として読まなくなりました([#1244](https://github.com/HKUDS/Vibe-Trading/pull/1244))。また、`ETH-USDT` を尋ねると `AETHUSDT-USD`——Aave Ethereum USDT という別の資産——が返っていました。シンボル検索が取引所ペアを扱っておらず、Yahoo の最も近い文字列が勝っていたためです。現在、正確なペアは公開されていてブローカー口座を必要としない取引所カタログに対して解決されます([#1242](https://github.com/HKUDS/Vibe-Trading/pull/1242)、[#1234](https://github.com/HKUDS/Vibe-Trading/issues/1234) をクローズ)。**新規:** 組み込みコネクタが機械可読なオンボーディング契約を公開し、`vibe-trading connector setup` とポートフォリオの接続センターが同一の汎用フローを駆動します。シークレットは接続ごとに OS のキーリングに保管されます([#1250](https://github.com/HKUDS/Vibe-Trading/pull/1250))。**修正:** ストリーム再試行が段階的に延び、`Retry-After` を尊重するようになりました([#1208](https://github.com/HKUDS/Vibe-Trading/issues/1208))。目標が 1 単元未満に丸められるスリーブは、一度も約定しないまま黙って消えるのではなく報告されます([#1235](https://github.com/HKUDS/Vibe-Trading/issues/1235))。明示的ベンチマークは取得ウィンドウではなく評価ウィンドウで測定され、昨日のウォームアップ境界が異なる 2 期間を比較しなくなりました。[@cgycorey](https://github.com/cgycorey)、[@pengpengyi92](https://github.com/pengpengyi92)、[@lorenzozanee](https://github.com/lorenzozanee)、[@goatyyc](https://github.com/goatyyc)、[@ethanstoner](https://github.com/ethanstoner)、[@QG8000](https://github.com/QG8000)、[@turtle696966969696](https://github.com/turtle696966969696) に感謝します!
- **2026-08-28** 📏 **クラッシュするバックテストと、頼んでいない 1 年分を黙って採点していたバックテスト**:v0.1.14 ではクロスマーケットのバックテストがすべて落ちていました——runner は複数市場にまたがるバスケットに対して意図的に `bars_per_year=None` を渡し、新しいリスク X 線がそれに `math.sqrt` を適用していたためです。同じ穴が他に 2 か所あり、4 か所すべてが期間から導出する共通の年率換算係数を使うようになりました([#1239](https://github.com/HKUDS/Vibe-Trading/pull/1239)、closes [#1237](https://github.com/HKUDS/Vibe-Trading/issues/1237))。より静かな方:長いルックバックの戦略は**要求した期間より前**のバーを必要とするため、エージェントは MA200 を満たそうと `start_date` を 1 年戻し——そしてその 1 年も採点していました。10 年と称する実行が 11 年を報告し、余分な 1 年の取引・CAGR・ベンチマークが混ざり、エラーは出ず、指標同士は整合していました。`warmup_bars`(または `evaluation_start_date`)がデータ期間と評価期間を分離します。ウォームアップのバーは指標を温めるだけで、他には一切届きません([#1240](https://github.com/HKUDS/Vibe-Trading/issues/1240))。**新機能:** `quantlib` に Heston (1993) 確率的ボラティリティ価格付け、階層的リスクパリティ、ガウス・アルキメデス型コピュラ、マイクロストラクチャ推定量(VPIN、Roll、Amihud、Kyle)、有限差分のバリアグリークスを追加——23 モジュール・306 個のテスト済み関数([#1195](https://github.com/HKUDS/Vibe-Trading/pull/1195)–[#1198](https://github.com/HKUDS/Vibe-Trading/pull/1198)、[#1203](https://github.com/HKUDS/Vibe-Trading/pull/1203))。**修正:** 8 本のスキル参照リンクが `read_file` では開けないパスを指しており、該当ドキュメントは黙って読み込みに失敗していました。[@cgycorey](https://github.com/cgycorey)、[@santhreal](https://github.com/santhreal)、[@turtle696966969696](https://github.com/turtle696966969696)、[@wanderkiller](https://github.com/wanderkiller) に感謝します!
- **2026-08-27** 🛑 **キルスイッチの一括クローズスイープが再起動を乗り越え、不安定なブローカー接続を信用しなくなりました**:ホールト中、キャンセル+クローズのスイープはブローカーの応答なら何でも成功として扱っていました——しかし MCP アダプタは失敗した呼び出しを `{"status": "error"}` エンベロープに変換するため、一度の接続断で、注文が生きたままなのに監査記録上は問題なしに見えていました。エラーエンベロープは両パスで fail-closed になりました([#1232](https://github.com/HKUDS/Vibe-Trading/pull/1232))。また「一度だけ発火」のラッチはメモリ上にしかなく、クローズ注文が約定前のまま再起動するとスイープ全体が再実行され——ポジションごとに新たな成行注文が出て、ロングの口座がネットショートに反転しかねませんでした。ラッチは HALT センチネルの隣に永続化され、そのホールトのエピソードに紐づくため、解除して再トリップすれば再武装されます([#1233](https://github.com/HKUDS/Vibe-Trading/pull/1233))。**新機能**:各市場のデータソースのフォールバック順序が *Settings → Data Source Priority* で確認・並べ替え可能に——ホット適用、市場ごとに永続化(`MARKET_DATA_ORDER_*`)、かつ並べ替えのみ許可:ソースの追加や削除は拒否され、オーバーライドがなければデフォルト順序は一切変わりません([#1231](https://github.com/HKUDS/Vibe-Trading/pull/1231))。Binance USD-M の照合結果は改ざん検出可能なドリフト証拠アーティファクトとして記録されます——厳格な JSON、不完全または未対応のスナップショットには fail-closed、発注面は一切ありません([#1230](https://github.com/HKUDS/Vibe-Trading/pull/1230)、[#1030](https://github.com/HKUDS/Vibe-Trading/issues/1030) に向けて)。ありがとう [@he-yufeng](https://github.com/he-yufeng)、[@sambazhu](https://github.com/sambazhu)、[@honginp](https://github.com/honginp)!
+3 -2
View File
@@ -52,14 +52,15 @@
> ⚠️ **보안 경고:** X 계정 `VibeTrading_HKU`, Virtuals 프로젝트 `101845`, 토큰 컨트랙트 `0x640BDBF77b6447E8b7DB7894cED84BD1c40571f4`는 모두 Vibe-Trading 공식과 무관합니다. Vibe-Trading은 어떠한 토큰이나 밈코인도 발행하거나 공식적으로 지지한 적이 없습니다. 해당 토큰을 구매하거나 지갑을 연결하거나 어떠한 서명도 하지 마세요. [자세히 보기](SECURITY.md#official-channels--impersonation).
- **2026-09-02** 💵 **배당을 손실로 기록하던 마지막 두 loader, 그리고 다른 소스로 응답하던 명시적 소스**: FMP와 Tiingo는 여전히 미조정 OHLC를 제공했고 체인의 나머지는 조정된 가격을 제공했습니다 — 배당락 갭이 실제 하락으로 읽히던 문제로, 08-31에 Yahoo에서 닫았고 이제 두 소스 모두에서 닫혔습니다([#1320](https://github.com/HKUDS/Vibe-Trading/pull/1320), [#1296](https://github.com/HKUDS/Vibe-Trading/issues/1296) 종료). 같은 변경에서 가격 기준 표의 두 항목도 바로잡았습니다. 조정된 프레임에 `raw` 도장을 찍어서는 안 됩니다. 그렇지 않으면 [#1317](https://github.com/HKUDS/Vibe-Trading/pull/1317)에서 추가한 기준 혼재 경고가 데이터가 아니라 라벨을 검사하게 됩니다. FMP는 Stable 엔드포인트로도 옮겼고, 명시적 `source="fmp"`는 이제 다른 소스의 수치를 FMP 이름으로 반환하는 대신 분명하게 실패합니다([#1276](https://github.com/HKUDS/Vibe-Trading/pull/1276), [#1270](https://github.com/HKUDS/Vibe-Trading/issues/1270) 종료). **수정:** 전각 괄호 안의 티커 — `公司名(代码)价格` — 가 자신의 수치와 분리되어, 출처 없는 심볼 게이트가 둘을 함께 보지 못했습니다([#1326](https://github.com/HKUDS/Vibe-Trading/pull/1326), [#1260](https://github.com/HKUDS/Vibe-Trading/issues/1260) 종료); 내장 스킬의 모든 `references/` 링크가 이제 agent와 GitHub에서 클릭하는 사람 모두에게 같은 파일로 해석됩니다([#1328](https://github.com/HKUDS/Vibe-Trading/pull/1328)). **신규:** 브라질 포르투갈어가 여덟 번째 언어로 인터페이스에 추가되었습니다([#1327](https://github.com/HKUDS/Vibe-Trading/pull/1327)). [@lorenzozanee](https://github.com/lorenzozanee), [@thisisjun786](https://github.com/thisisjun786), [@cgycorey](https://github.com/cgycorey), [@jw232](https://github.com/jw232), [@ethanstoner](https://github.com/ethanstoner), [@nandofmike](https://github.com/nandofmike) 님 감사합니다!
- **2026-09-01** 🎯 **옵션 백테스트가 신호 자신이 계산해 낸 가격에 체결되었고, 네이키드 숏은 감당할 수 없는 프리미엄을 팔 수 있었습니다**: T 날짜의 신호가 T 당일의 종가와 IV로 가격이 매겨졌습니다 — 의도적으로 구성한 경우가 아니라 모든 옵션 백테스트에 들어 있던 허구의 엣지입니다. 이제 신호는 다음 바에서 체결되며, 숏 레그는 CBOE 방식 증거금을 예치하고 매수 여력과 대조합니다([#1299](https://github.com/HKUDS/Vibe-Trading/pull/1299), [#1306](https://github.com/HKUDS/Vibe-Trading/pull/1306)). **수정:** 무기한 선물 펀딩이 일봉에서 하루 한 번만 정산되어 엔진 자체 모델인 하루 3회와 어긋났습니다([#1307](https://github.com/HKUDS/Vibe-Trading/pull/1307)); 1배 숏이 청산에서 완전히 면제되어 있었습니다([#1298](https://github.com/HKUDS/Vibe-Trading/pull/1298)); 복합 실행이 인도 T+1을 누락하고 가격제한폭 판정이 매 바 통과되었습니다([#1309](https://github.com/HKUDS/Vibe-Trading/pull/1309)). **신규:** 제공되는 모든 프레임이 가격 기준 — 조정됨, 미조정, 또는 정직하게 알 수 없음 — 을 명시하며, 기준이 섞인 실행은 이를 알립니다([#1317](https://github.com/HKUDS/Vibe-Trading/pull/1317), [#1301](https://github.com/HKUDS/Vibe-Trading/issues/1301) 종료). [@he-yufeng](https://github.com/he-yufeng), [@cgycorey](https://github.com/cgycorey), [@lorenzozanee](https://github.com/lorenzozanee), [@guestccc](https://github.com/guestccc) 님 감사합니다!
- **2026-08-31** 🧮 **Yahoo가 모든 배당을 손실로 기록했고, 표시되던 리밸런싱 횟수는 실제 체결과 무관했습니다**: Yahoo의 두 경로 모두 배당 미조정 OHLC를 제공한 반면 체인의 나머지 소스는 조정된 가격을 제공했기 때문에, Yahoo가 체인에서 선택된 미국 주식 백테스트에서는 배당락 갭이 실제 하락으로 읽혔습니다. 이제 OHLC는 Yahoo의 `adjclose`에 맞춰 스케일되고 yfinance 경로는 조정된 시리즈를 요청하며, 거래량은 양쪽 모두 원본을 유지합니다([#1287](https://github.com/HKUDS/Vibe-Trading/pull/1287)). 이를 검증하려고 체인을 실측하다가 분명히 밝혀 둘 사실이 나왔습니다: **sina와 longbridge는 여전히 완전히 미조정된 가격을 제공합니다**. 어느 소스에 걸리느냐에 따라 가격 기준이 달라지는 상태는 그대로이며, 이 간극은 [#1301](https://github.com/HKUDS/Vibe-Trading/issues/1301)에서 추적합니다. 한편 `rebalance_count`는 실행이 아니라 목표 비중의 *변경* 횟수를 세고 있었습니다. 목표가 고정된 SPY/BND 전략이 1,269건의 거래에 대해 리밸런싱 1회를 보고했습니다. 이제 요청과 실행은 별도 지표이며, 실행 쪽은 불변 체결 기록에서 도출됩니다([#1281](https://github.com/HKUDS/Vibe-Trading/pull/1281), [#1275](https://github.com/HKUDS/Vibe-Trading/issues/1275) 종료). **신규:** `rebalance_mask`로 매 바가 아니라 캘린더 또는 명시적 날짜에 부분 리밸런싱을 실행합니다([#1277](https://github.com/HKUDS/Vibe-Trading/pull/1277), [#1273](https://github.com/HKUDS/Vibe-Trading/issues/1273) 종료). HTML alpha bench 리포트에도 JSON에는 이미 있던 생존 편향 고지가 구성종목 소스와 기준일과 함께 실립니다([#1289](https://github.com/HKUDS/Vibe-Trading/pull/1289)). **수정:** 해석되지 않은 심볼 하나가 같은 배치의 나머지를 발목잡지 않습니다 — 체인은 누락된 것만 재시도하고, 출처에는 각 심볼이 실제로 온 소스가 기록됩니다([#1288](https://github.com/HKUDS/Vibe-Trading/pull/1288)). 중단 스윕이 실행하지 않은 episode를 래치할 수 있었고, 두 개의 동시 완료가 서로의 기록을 잃을 수 있었습니다([#1254](https://github.com/HKUDS/Vibe-Trading/pull/1254)). 정상 작동하는 Futu OpenD 연결이 헬스 리포트에 `connection_state`가 빠져 사용 불가로 표시되던 문제. 데스크톱 업데이터가 권한 거부된 프로세스 확인을 "백엔드 종료"로 읽던 문제([#1284](https://github.com/HKUDS/Vibe-Trading/pull/1284)). 턴 도중 백그라운드로 보낸 세션의 사이드바 표시가 탭이 닫힐 때까지 계속 돌던 문제([#1257](https://github.com/HKUDS/Vibe-Trading/pull/1257), [#1256](https://github.com/HKUDS/Vibe-Trading/issues/1256) 종료). [@he-yufeng](https://github.com/he-yufeng), [@cgycorey](https://github.com/cgycorey), [@thisisjun786](https://github.com/thisisjun786), [@bonyohana](https://github.com/bonyohana), [@lorenzozanee](https://github.com/lorenzozanee), 그리고 [@iagop03](https://github.com/iagop03) 님께 감사드립니다!
- **2026-08-30** 🇬🇧 **LSE 주식을 펜스를 파운드로 오인하지 않고 지원하며, 장 마감 중 live trigger도 멈춥니다**: `.L` 심볼은 이제 Yahoo → yfinance → local 시장 데이터 폴백, 주식 프로필과 재무제표, 거래 저널과 Shadow 소비자, GBP 결제 백테스트까지 end-to-end로 동작합니다. Loader는 `.L`을 거래소 표시로만 취급합니다. 통화가 GBp/p로 명시된 가격은 100으로 나누고, GBP는 그대로 통과시키며, USD·기타·미상 통화는 정적 GBP 회계 계층에 도달하기 전에 거부합니다. 심볼별 변환 provenance는 캐시 왕복 후에도 유지되고, 이전의 안전하지 않은 항목이 돌아오지 않도록 캐시 버전도 올렸습니다. UK 체결은 정수 주식 수량과 `slippage_uk`를 사용합니다([#1206](https://github.com/HKUDS/Vibe-Trading/pull/1206), [#1205](https://github.com/HKUDS/Vibe-Trading/issues/1205) 종료). **수정:** 연결된 모든 시장이 닫혀 있으면 market-triggered live tick은 브로커 조회 전에 멈추지만, interval-only 및 event-driven 채널은 계속 게이트 대상에서 제외됩니다([#1253](https://github.com/HKUDS/Vibe-Trading/pull/1253)). Run Detail은 긴 prompt를 스크롤·축약 표시하고 run을 바꾸면 다시 접습니다([#1258](https://github.com/HKUDS/Vibe-Trading/pull/1258)). 백테스트가 아닌 run은 빈 dashboard 대신 Studio로 이동하고, 빈 trade artifact 배열이 데이터가 있는 `trade_log`를 가리지 않습니다([#1259](https://github.com/HKUDS/Vibe-Trading/pull/1259)). [@cgycorey](https://github.com/cgycorey), [@he-yufeng](https://github.com/he-yufeng), [@iagop03](https://github.com/iagop03)님께 감사드립니다!
<details>
<summary>이전 뉴스</summary>
- **2026-08-30** 🇬🇧 **LSE 주식을 펜스를 파운드로 오인하지 않고 지원하며, 장 마감 중 live trigger도 멈춥니다**: `.L` 심볼은 이제 Yahoo → yfinance → local 시장 데이터 폴백, 주식 프로필과 재무제표, 거래 저널과 Shadow 소비자, GBP 결제 백테스트까지 end-to-end로 동작합니다. Loader는 `.L`을 거래소 표시로만 취급합니다. 통화가 GBp/p로 명시된 가격은 100으로 나누고, GBP는 그대로 통과시키며, USD·기타·미상 통화는 정적 GBP 회계 계층에 도달하기 전에 거부합니다. 심볼별 변환 provenance는 캐시 왕복 후에도 유지되고, 이전의 안전하지 않은 항목이 돌아오지 않도록 캐시 버전도 올렸습니다. UK 체결은 정수 주식 수량과 `slippage_uk`를 사용합니다([#1206](https://github.com/HKUDS/Vibe-Trading/pull/1206), [#1205](https://github.com/HKUDS/Vibe-Trading/issues/1205) 종료). **수정:** 연결된 모든 시장이 닫혀 있으면 market-triggered live tick은 브로커 조회 전에 멈추지만, interval-only 및 event-driven 채널은 계속 게이트 대상에서 제외됩니다([#1253](https://github.com/HKUDS/Vibe-Trading/pull/1253)). Run Detail은 긴 prompt를 스크롤·축약 표시하고 run을 바꾸면 다시 접습니다([#1258](https://github.com/HKUDS/Vibe-Trading/pull/1258)). 백테스트가 아닌 run은 빈 dashboard 대신 Studio로 이동하고, 빈 trade artifact 배열이 데이터가 있는 `trade_log`를 가리지 않습니다([#1259](https://github.com/HKUDS/Vibe-Trading/pull/1259)). [@cgycorey](https://github.com/cgycorey), [@he-yufeng](https://github.com/he-yufeng), [@iagop03](https://github.com/iagop03)님께 감사드립니다!
- **2026-08-29** 🛑 **자기 동작을 건너뛴 킬 스위치, 그리고 다른 코인으로 해석된 암호화폐 페어**: 정지된 채널의 브로커 조회가 실패했을 때 — 어댑터가 예외를 던지는 대신 오류 봉투를 반환했고, 스윕은 그것을 주문 목록처럼 순회했습니다 — 스윕은 그래도 자신을 발동됨으로 기록했습니다. 킬 스위치가 수행해야 할 주문 취소와 포지션 청산이 그 에피소드에서 조용히 건너뛰어졌고, 무엇도 재시도하지 않았습니다. 이제는 브로커 쓰기를 실제로 시도한 뒤에만 래치하고, 두 러너가 청산을 중복하지 않도록 각 정지 에피소드를 배타적으로 점유하며, 전송 계층 성공에 감싸인 브로커 거부를 수락으로 읽지 않습니다([#1244](https://github.com/HKUDS/Vibe-Trading/pull/1244)). 별개로 `ETH-USDT`를 물으면 `AETHUSDT-USD` — Aave Ethereum USDT라는 전혀 다른 자산 — 가 돌아왔습니다. 심볼 검색이 거래소 페어를 다루지 않아 Yahoo의 가장 가까운 문자열이 이겼기 때문입니다. 이제 정확한 페어는 공개되어 있고 브로커 계정이 필요 없는 거래소 카탈로그를 상대로 해석됩니다([#1242](https://github.com/HKUDS/Vibe-Trading/pull/1242), [#1234](https://github.com/HKUDS/Vibe-Trading/issues/1234) 종료). **신규:** 내장 커넥터가 기계가 읽을 수 있는 온보딩 계약을 게시하므로 `vibe-trading connector setup`과 포트폴리오 연결 센터가 하나의 범용 흐름을 사용하고, 비밀 값은 연결별로 OS 키링에 보관됩니다([#1250](https://github.com/HKUDS/Vibe-Trading/pull/1250)). **수정:** 스트림 재시도가 단계적으로 늘어나며 `Retry-After`를 존중합니다([#1208](https://github.com/HKUDS/Vibe-Trading/issues/1208)). 목표가 한 계약 미만으로 반올림되는 슬리브는 한 번도 체결되지 않은 채 조용히 사라지지 않고 보고됩니다([#1235](https://github.com/HKUDS/Vibe-Trading/issues/1235)). 명시적 벤치마크는 수집 구간이 아니라 평가 구간에서 측정되어, 어제의 워밍업 경계가 서로 다른 두 기간을 비교하지 않습니다. [@cgycorey](https://github.com/cgycorey), [@pengpengyi92](https://github.com/pengpengyi92), [@lorenzozanee](https://github.com/lorenzozanee), [@goatyyc](https://github.com/goatyyc), [@ethanstoner](https://github.com/ethanstoner), [@QG8000](https://github.com/QG8000), [@turtle696966969696](https://github.com/turtle696966969696) 님께 감사드립니다!
- **2026-08-28** 📏 **크래시가 나는 백테스트, 그리고 요청하지도 않은 1년을 조용히 채점하던 백테스트**: v0.1.14에서는 모든 크로스마켓 백테스트가 죽었습니다 — runner가 여러 시장에 걸친 바스켓에 의도적으로 `bars_per_year=None`을 넘기고, 새 리스크 엑스레이가 거기에 `math.sqrt`를 호출했기 때문입니다. 같은 구멍이 두 군데 더 있었고, 네 곳 모두 이제 기간에서 유도한 하나의 공통 연율화 계수를 사용합니다([#1239](https://github.com/HKUDS/Vibe-Trading/pull/1239), closes [#1237](https://github.com/HKUDS/Vibe-Trading/issues/1237)). 더 조용한 쪽: 룩백이 긴 전략은 **요청한 기간 이전**의 바가 필요하므로 에이전트가 MA200을 채우려 `start_date`를 1년 앞당겼고 — 그 1년까지 채점했습니다. 10년이라고 소개된 실행이 11년을 보고했고, 추가된 1년의 거래·CAGR·벤치마크가 섞여 들어갔으며, 오류는 없었고 지표들끼리는 일관됐습니다. 이제 `warmup_bars`(또는 `evaluation_start_date`)가 데이터 구간과 평가 구간을 분리합니다. 워밍업 바는 지표만 데우고 그 외에는 아무것도 건드리지 않습니다([#1240](https://github.com/HKUDS/Vibe-Trading/issues/1240)). **신규:** `quantlib`에 Heston(1993) 확률적 변동성 가격결정, 계층적 리스크 패리티, 가우시안 및 아르키메데스 코퓰러, 마이크로스트럭처 추정량(VPIN, Roll, Amihud, Kyle), 유한차분 배리어 그릭스 추가 — 23개 모듈 306개의 테스트된 함수([#1195](https://github.com/HKUDS/Vibe-Trading/pull/1195)–[#1198](https://github.com/HKUDS/Vibe-Trading/pull/1198), [#1203](https://github.com/HKUDS/Vibe-Trading/pull/1203)). **수정:** 스킬 참조 링크 8개가 `read_file`이 열 수 없는 경로를 가리켜, 해당 문서들이 조용히 로드에 실패하고 있었습니다. [@cgycorey](https://github.com/cgycorey), [@santhreal](https://github.com/santhreal), [@turtle696966969696](https://github.com/turtle696966969696), [@wanderkiller](https://github.com/wanderkiller) 님 감사합니다!
- **2026-08-27** 🛑 **킬 스위치 일괄 청산 스윕이 재시작을 견디고, 불안정한 브로커 연결을 더 이상 신뢰하지 않습니다**: 홀트 중 취소+청산 스윕은 브로커의 어떤 응답이든 성공으로 간주했습니다 — 그러나 MCP 어댑터는 실패한 호출을 `{"status": "error"}` 봉투로 변환하므로, 연결이 한 번 끊기면 대기 주문이 살아 있는데도 감사 기록은 정상처럼 보였습니다. 이제 두 단계 모두 오류 봉투에 대해 fail-closed입니다 ([#1232](https://github.com/HKUDS/Vibe-Trading/pull/1232)). 또한 "한 번만 실행" 래치는 메모리에만 있어서, 청산 주문이 체결되기 전에 재시작하면 스윕 전체가 재실행되어 — 포지션마다 새 시장가 주문이 나가 롱 계좌가 순숏으로 뒤집힐 수 있었습니다. 래치는 이제 HALT 센티널 옆에 영속화되고 해당 홀트 에피소드에 바인딩되며, 해제 후 다시 트립하면 재무장됩니다 ([#1233](https://github.com/HKUDS/Vibe-Trading/pull/1233)). **신규**: 각 시장의 데이터 소스 폴백 순서를 *Settings → Data Source Priority*에서 확인하고 재정렬할 수 있습니다 — 핫 적용, 시장별 영속화(`MARKET_DATA_ORDER_*`), 오직 재정렬만 허용: 소스 추가/삭제는 거부되며, 오버라이드가 없으면 기본 순서는 그대로입니다 ([#1231](https://github.com/HKUDS/Vibe-Trading/pull/1231)). Binance USD-M 대조 결과는 변조 감지 가능한 드리프트 증거 아티팩트로 기록됩니다 — 엄격한 JSON, 불완전하거나 지원되지 않는 스냅샷에는 fail-closed, 주문 표면 없음 ([#1230](https://github.com/HKUDS/Vibe-Trading/pull/1230), [#1030](https://github.com/HKUDS/Vibe-Trading/issues/1030)을 향해). 감사합니다 [@he-yufeng](https://github.com/he-yufeng), [@sambazhu](https://github.com/sambazhu), [@honginp](https://github.com/honginp)!
+3 -2
View File
@@ -52,14 +52,15 @@
> ⚠️ **安全警告:** X 账号 `VibeTrading_HKU`、Virtuals 项目 `101845` 及代币合约 `0x640BDBF77b6447E8b7DB7894cED84BD1c40571f4` 均非 Vibe-Trading 官方。我们从未发行或背书任何代币或 meme 币。请勿购买、连接钱包或签名。[详细说明](SECURITY.md#official-channels--impersonation)。
- **2026-09-02** 💵 **最后两个把分红记成亏损的 loader,以及一个应答者并非本人的显式数据源**:FMP 和 Tiingo 仍在下发未复权 OHLC,而链上其余数据源给的是复权价——除权跳空被读成真实下跌,08-31 已为 Yahoo 修掉,现在这两个也修掉了([#1320](https://github.com/HKUDS/Vibe-Trading/pull/1320),关闭 [#1296](https://github.com/HKUDS/Vibe-Trading/issues/1296))。同一次改动里一并订正了它们在价格口径表中的条目:已复权的行情不能盖 `raw` 的章,否则 [#1317](https://github.com/HKUDS/Vibe-Trading/pull/1317) 加的混用口径告警校验的是标签而不是数据。FMP 同时迁到 Stable 端点,显式 `source="fmp"` 现在会明确失败,而不是把别家的数字挂在 FMP 名下返回([#1276](https://github.com/HKUDS/Vibe-Trading/pull/1276),关闭 [#1270](https://github.com/HKUDS/Vibe-Trading/issues/1270))。**修复:** 全角括号里的代码——`公司名(代码)价格`——会与它自己的数字被切开,未标源符号闸门始终看不到两者在一起([#1326](https://github.com/HKUDS/Vibe-Trading/pull/1326),关闭 [#1260](https://github.com/HKUDS/Vibe-Trading/issues/1260));内置技能里每一条 `references/` 链接现在对 agent 和在 GitHub 上点击它的人都能解析到同一个文件([#1328](https://github.com/HKUDS/Vibe-Trading/pull/1328))。**新增:** 巴西葡萄牙语作为第八种语言加入界面([#1327](https://github.com/HKUDS/Vibe-Trading/pull/1327))。感谢 [@lorenzozanee](https://github.com/lorenzozanee)、[@thisisjun786](https://github.com/thisisjun786)、[@cgycorey](https://github.com/cgycorey)、[@jw232](https://github.com/jw232)、[@ethanstoner](https://github.com/ethanstoner) 和 [@nandofmike](https://github.com/nandofmike)!
- **2026-09-01** 🎯 **期权回测按信号自己算出来的那个价格成交,而裸卖空可以卖出根本无力覆盖的权利金**:日期为 T 的信号用 T 当天的收盘价和 IV 定价——这是每一次期权回测里都存在的虚假收益,不只是刻意构造的场景。信号现在改到下一根 bar 成交,空头腿按 CBOE 口径计提保证金并核对购买力([#1299](https://github.com/HKUDS/Vibe-Trading/pull/1299)、[#1306](https://github.com/HKUDS/Vibe-Trading/pull/1306))。**已修复**:永续资金费在日线上每天只结算一次,而引擎自己的模型是每天 3 次([#1307](https://github.com/HKUDS/Vibe-Trading/pull/1307));1 倍杠杆的空头完全豁免强平([#1298](https://github.com/HKUDS/Vibe-Trading/pull/1298));复合运行丢掉了印度 T+1,且每根 bar 的涨跌停判定都失效放行([#1309](https://github.com/HKUDS/Vibe-Trading/pull/1309))。**新增**:每一份下发的行情都标注价格口径——复权、未复权,或诚实地标为未知——混用口径的运行会明确提示([#1317](https://github.com/HKUDS/Vibe-Trading/pull/1317),关闭 [#1301](https://github.com/HKUDS/Vibe-Trading/issues/1301))。感谢 [@he-yufeng](https://github.com/he-yufeng)、[@cgycorey](https://github.com/cgycorey)、[@lorenzozanee](https://github.com/lorenzozanee)、[@guestccc](https://github.com/guestccc)!
- **2026-08-31** 🧮 **Yahoo 把每一次分红都记成了亏损,而你看到的再平衡次数和实际成交毫无关系**:Yahoo 的两条路径都提供未做分红复权的 OHLC,而链上其余数据源给的是复权价,于是只要 Yahoo 赢下这条链,任何美股回测里的除息缺口都会被读成真实下跌。现在 OHLC 按 Yahoo 的 `adjclose` 缩放,yfinance 路径直接请求复权序列;两边的成交量都保持原始值([#1287](https://github.com/HKUDS/Vibe-Trading/pull/1287))。为核实这一点而实测整条链时,有个结论值得直说:**sina 和 longbridge 至今仍提供完全未复权的价格**,所以你落在哪个源上仍然会改变价格口径——这个缺口现由 [#1301](https://github.com/HKUDS/Vibe-Trading/issues/1301) 追踪。另外,`rebalance_count` 数的是目标权重的*变化*而非执行次数:一个目标恒定的 SPY/BND 策略在 1,269 笔交易的情况下只报告了 1 次再平衡。现在「请求」与「执行」是两组独立指标,后者从不可变的成交记录推导([#1281](https://github.com/HKUDS/Vibe-Trading/pull/1281),关闭 [#1275](https://github.com/HKUDS/Vibe-Trading/issues/1275))。**新增:** `rebalance_mask` 支持按日历或指定日期做部分再平衡,不必每根 bar 都调([#1277](https://github.com/HKUDS/Vibe-Trading/pull/1277),关闭 [#1273](https://github.com/HKUDS/Vibe-Trading/issues/1273));HTML 版 alpha bench 报告现在也带上了 JSON 早就有的幸存者偏差披露,并注明成分股来源与其数据截止日([#1289](https://github.com/HKUDS/Vibe-Trading/pull/1289))。**修复:** 一个符号解析失败不再拖累同批其余符号——回退链现在只重试缺失的那些,且来源信息标注每个符号实际来自哪个源([#1288](https://github.com/HKUDS/Vibe-Trading/pull/1288));紧急停止的清仓扫描可能锁定一个它从未扫过的 episode,两个并发完成也可能互相覆盖记录([#1254](https://github.com/HKUDS/Vibe-Trading/pull/1254));可用的富途 OpenD 连接因健康报告缺少 `connection_state` 而被显示为不可用;桌面端更新器把「权限不足」的进程探测读成了「后端已退出」([#1284](https://github.com/HKUDS/Vibe-Trading/pull/1284));以及会话在回合中途被切到后台后,侧边栏的思考指示器会一直转到标签页关闭为止([#1257](https://github.com/HKUDS/Vibe-Trading/pull/1257),关闭 [#1256](https://github.com/HKUDS/Vibe-Trading/issues/1256))。感谢 [@he-yufeng](https://github.com/he-yufeng), [@cgycorey](https://github.com/cgycorey), [@thisisjun786](https://github.com/thisisjun786), [@bonyohana](https://github.com/bonyohana), [@lorenzozanee](https://github.com/lorenzozanee), 和 [@iagop03](https://github.com/iagop03)!
- **2026-08-30** 🇬🇧 **LSE 英股上线,不再把便士当英镑;闭市时 live trigger 也不再触发**:`.L` 符号现在端到端打通 Yahoo → yfinance → local 行情 fallback、股票档案与财务报表、交易日志与 Shadow 消费端,以及英镑结算回测。Loader 只把 `.L` 当作交易所标识:明确标为 GBp/p 的价格除以 100,GBP 原样通过,USD、其他币种或未知币种在进入静态英镑记账层之前即被拒绝。每个符号的换算来源可完整穿过缓存往返,缓存版本也已提升,旧的不安全条目不会回流;英股执行同时采用整股数量和 `slippage_uk`([#1206](https://github.com/HKUDS/Vibe-Trading/pull/1206),关闭 [#1205](https://github.com/HKUDS/Vibe-Trading/issues/1205))。**修复:** 当所有关联市场都处于闭市时,市场触发的 live tick 会在读取券商之前停止,而仅间隔和事件驱动的通道不受此门控([#1253](https://github.com/HKUDS/Vibe-Trading/pull/1253));Run Detail 可滚动并截断过长 prompt,切换 run 后会重新折叠([#1258](https://github.com/HKUDS/Vibe-Trading/pull/1258));非回测 run 会转到 Studio 而不是空白 dashboard,空的交易产物数组也不再遮住有内容的 `trade_log`([#1259](https://github.com/HKUDS/Vibe-Trading/pull/1259))。感谢 [@cgycorey](https://github.com/cgycorey)、[@he-yufeng](https://github.com/he-yufeng) 和 [@iagop03](https://github.com/iagop03)!
<details>
<summary>更早的新闻</summary>
- **2026-08-30** 🇬🇧 **LSE 英股上线,不再把便士当英镑;闭市时 live trigger 也不再触发**:`.L` 符号现在端到端打通 Yahoo → yfinance → local 行情 fallback、股票档案与财务报表、交易日志与 Shadow 消费端,以及英镑结算回测。Loader 只把 `.L` 当作交易所标识:明确标为 GBp/p 的价格除以 100,GBP 原样通过,USD、其他币种或未知币种在进入静态英镑记账层之前即被拒绝。每个符号的换算来源可完整穿过缓存往返,缓存版本也已提升,旧的不安全条目不会回流;英股执行同时采用整股数量和 `slippage_uk`([#1206](https://github.com/HKUDS/Vibe-Trading/pull/1206),关闭 [#1205](https://github.com/HKUDS/Vibe-Trading/issues/1205))。**修复:** 当所有关联市场都处于闭市时,市场触发的 live tick 会在读取券商之前停止,而仅间隔和事件驱动的通道不受此门控([#1253](https://github.com/HKUDS/Vibe-Trading/pull/1253));Run Detail 可滚动并截断过长 prompt,切换 run 后会重新折叠([#1258](https://github.com/HKUDS/Vibe-Trading/pull/1258));非回测 run 会转到 Studio 而不是空白 dashboard,空的交易产物数组也不再遮住有内容的 `trade_log`([#1259](https://github.com/HKUDS/Vibe-Trading/pull/1259))。感谢 [@cgycorey](https://github.com/cgycorey)、[@he-yufeng](https://github.com/he-yufeng) 和 [@iagop03](https://github.com/iagop03)!
- **2026-08-29** 🛑 **跳过了自己动作的紧急停止开关,以及解析成另一个币的加密货币交易对**:当已停机通道的券商读取失败时——适配器返回的是错误信封而不是抛异常,清仓流程把它当成订单列表来遍历——清仓流程仍然把自己标记为已触发。紧急停止开关本该执行的撤单与平仓,在那次事件里被静默跳过,也没有任何机制重试。现在只有在真正尝试过券商写入之后才会上锁,每次停机事件都会独占声明以免两个 runner 重复平仓,并且不再把包在传输层成功里的券商拒绝当作已接受([#1244](https://github.com/HKUDS/Vibe-Trading/pull/1244))。另外,查询 `ETH-USDT` 会返回 `AETHUSDT-USD`——Aave Ethereum USDT,一个完全不同的资产——因为符号搜索从未覆盖交易所交易对,最终由 Yahoo 的最近似字符串胜出。现在精确交易对会对着交易所目录解析,这些目录是公开的、不需要券商账号([#1242](https://github.com/HKUDS/Vibe-Trading/pull/1242),关闭 [#1234](https://github.com/HKUDS/Vibe-Trading/issues/1234))。**新增:** 内置连接器会公布机器可读的接入合同,因此 `vibe-trading connector setup` 和持仓页的连接中心共用同一套通用流程,密钥按连接分别存放在操作系统钥匙串中([#1250](https://github.com/HKUDS/Vibe-Trading/pull/1250))。**修复:** 流式重试现在会逐次升级并遵守 `Retry-After`([#1208](https://github.com/HKUDS/Vibe-Trading/issues/1208));目标仓位不足一手而被取整为零的腿,现在会被报告出来,而不是一次都不成交却毫无提示([#1235](https://github.com/HKUDS/Vibe-Trading/issues/1235));显式基准现在按评估窗口而不是抓取窗口计算,昨天的预热边界不再拿两段不同的时间作比较。感谢 [@cgycorey](https://github.com/cgycorey)、[@pengpengyi92](https://github.com/pengpengyi92)、[@lorenzozanee](https://github.com/lorenzozanee)、[@goatyyc](https://github.com/goatyyc)、[@ethanstoner](https://github.com/ethanstoner)、[@QG8000](https://github.com/QG8000) 和 [@turtle696966969696](https://github.com/turtle696966969696)!
- **2026-08-28** 📏 **崩掉的回测,和悄悄多算了一年的回测**:v0.1.14 上每一个跨市场回测都会崩——runner 对跨市场篮子刻意传 `bars_per_year=None`,而新的风险 X 光直接对它调用 `math.sqrt`。另有两处消费者存在同样的缺口;四处现在统一走同一个按跨度推导的年化因子([#1239](https://github.com/HKUDS/Vibe-Trading/pull/1239),closes [#1237](https://github.com/HKUDS/Vibe-Trading/issues/1237))。更安静的那个:长回看策略需要**你所要求区间之前**的 K 线,于是 agent 把 `start_date` 前移一年来喂 MA200——然后把这一年也算进了业绩。号称十年的回测实际报了十一年,多出那一年的成交、CAGR 和基准全被折算进去,不报错,指标之间还自洽。现在 `warmup_bars`(或 `evaluation_start_date`)把数据窗口和评估窗口分开:预热 K 线只用来喂指标,其余一概不碰([#1240](https://github.com/HKUDS/Vibe-Trading/issues/1240))。**新增:** `quantlib` 增加 Heston (1993) 随机波动率定价、分层风险平价、高斯与阿基米德 Copula、微观结构估计量(VPIN、Roll、Amihud、Kyle)和有限差分障碍期权 Greeks——23 个模块共 306 个经测试的函数([#1195](https://github.com/HKUDS/Vibe-Trading/pull/1195)–[#1198](https://github.com/HKUDS/Vibe-Trading/pull/1198)、[#1203](https://github.com/HKUDS/Vibe-Trading/pull/1203))。**修复:** 8 条 skill 参考链接指向 `read_file` 打不开的路径,这些文档对 agent 一直在静默加载失败。感谢 [@cgycorey](https://github.com/cgycorey)、[@santhreal](https://github.com/santhreal)、[@turtle696966969696](https://github.com/turtle696966969696) 和 [@wanderkiller](https://github.com/wanderkiller)!
- **2026-08-27** 🛑 **kill-switch 清仓扫单挺过重启,也不再轻信不稳的券商连接**:halt 期间,撤单+平仓扫单把券商的任何响应都当成功——但 MCP 适配层会把失败调用转成 `{"status": "error"}` 信封,于是一次断线就能留下一份看起来合规的审计记录,而挂单其实还活着;现在两个阶段都对错误信封 fail-closed([#1232](https://github.com/HKUDS/Vibe-Trading/pull/1232))。扫单的「只发一次」闩锁原先只在内存里:平仓单还在飞时重启进程,会把整轮扫单重放一遍——每个持仓再来一张市价单,足以把多头账户打成净空头;闩锁现在持久化在 HALT 哨兵旁并绑定该次 halt,清除后再触发仍会重新武装([#1233](https://github.com/HKUDS/Vibe-Trading/pull/1233))。**新增**:每个市场的数据源回退顺序在 *Settings → Data Source Priority* 里可见、可重排——热生效、按市场持久化(`MARKET_DATA_ORDER_*`),且只允许重排:增删数据源一律拒绝,不设覆盖时默认顺序分毫不动([#1231](https://github.com/HKUDS/Vibe-Trading/pull/1231));Binance USD-M 对账结果落为防篡改的漂移证据产物——严格 JSON,快照不完整或来源不支持即 fail-closed,无任何下单面([#1230](https://github.com/HKUDS/Vibe-Trading/pull/1230),推进 [#1030](https://github.com/HKUDS/Vibe-Trading/issues/1030))。感谢 [@he-yufeng](https://github.com/he-yufeng)、[@sambazhu](https://github.com/sambazhu)、[@honginp](https://github.com/honginp)!