docs(readme): 2026-09-24 news in seven languages, and CHANGELOG

This commit is contained in:
Haozhe Wu committed 2026-09-24 18:55:24 +08:00
1 parent 993e3e21fd
commit e65832d348
8 files changed
+102 -16

No files matched your search

+74 -2
View File
@@ -7,6 +7,21 @@ This project adheres to [Semantic Versioning](https://semver.org/).
### Added
- **Stock profiles carry the listing's own identity** (#1577). `get_stock_profile`
returns a `listing` block beside the issuer's fundamentals: Yahoo's symbol,
exchange, quote type and quote currency, plus the financial currency and
underlying symbol when Yahoo declares them. A secondary listing no longer
reads as the primary one. `GOOGL.BA` is an ARS line in Buenos Aires carrying
Alphabet's USD financials, and `GGALD.BA` is a USD line whose issuer reports
in ARS. Nothing is inferred from the ticker.
- **Volume statistics in `technical_indicators`** (#1571). The tool returns the
latest volume, its 20-bar mean and their ratio, computed from the bars it
already fetched. The mean needs a complete 20-bar window. `volume.unit` is
the unit the serving source declares (board lots on the A-share sources,
shares on the Yahoo family, `null` when undeclared), because the two are
100x apart and nothing in the numbers tells them apart.
- **Argentina (BYMA) market data** (#1543). A `.BA` symbol — a BYMA listing or a
locally traded CEDEAR — is its own market `ar_equity`, quoted in ARS, served
by `yahoo` → `yfinance` → `local`, and reported as market `ar` by
@@ -44,8 +59,8 @@ This project adheres to [Semantic Versioning](https://semver.org/).
`~/.vibe-trading/agent.json` atomically at mode 0600; a YAML config is shown
read-only. Reloads of one channel are serialized in `ChannelManager`, and
`stop_all` cancels a reload's start that is still connecting.
- **Email and WebSocket join the guided Web UI channel setup** (a follow-up
to #1519). Both channels get hand-written field metadata — localized
- **Email and WebSocket join the guided Web UI channel setup** (#1544, after
#1519). Both channels get hand-written field metadata — localized
labels, masked secrets — plus connection tests and per-channel hot apply.
Email's test probes the real IMAP login, mailbox select and SMTP login
without ever sending a message; WebSocket is a server channel with no
@@ -202,6 +217,63 @@ This project adheres to [Semantic Versioning](https://semver.org/).
### Fixed
- **A dollar-quoted BYMA or TSX line no longer enters a peso or Canadian-dollar
backtest** (#1576, after #1543). Both venues list USD lines beside their
home-currency ones. On 2026-09-24 Yahoo declared USD for GGALD.BA (4.20),
SPYD.BA and AAPLD.BA, and for DLR-U.TO and XUS-U.TO. `ar_equity` and
`ca_equity` are each one static-currency pool, so such a line was priced as
pesos or Canadian dollars. As on the LSE, the loaders now read the declared
currency. They admit a `.BA` line only in ARS and a `.TO` / `.V` line only
in CAD. A trailing `D` does not decide it: YPFD.BA is a peso line. Every
other declared quote currency is recorded in market-data provenance, and the
grounding gate asks an answer to name that currency rather than the one the
suffix implies. Hong Kong RMB counters are unchanged (80700.HK is declared
CNY), because the Hong Kong chain starts with sources that declare no
currency.
- **Grounding identity and symbol search know every market the data layer
routes** (#1565, #1575). `.BA`, `.L` and `.VN` symbols had no
canonical-symbol scan, venue or currency in grounding. Symbol search
labelled Indian, Korean, British, Vietnamese and Argentine results `global`.
A parity test now takes the market list from the backtest's own currency
table. An answer may write £, ₫ or AR$ for the currency it has to name.
- **An explicit provider header survives an ambient twin** (#1573, #1568).
When `OPENAI_CUSTOM_HEADERS` names a header the provider also sets (a
`user-agent` beside the Kimi / NVIDIA / OpenCode `User-Agent`), openai 3.x's
case-insensitive merge dropped the provider's value. That turned CI red for
every PR on 2026-09-24. The first fix proposed would have sent both headers
under openai 2.53, the version the lock file and the Docker image install.
Every ambient spelling is now omitted and the explicit value re-set after
the omits, which holds under both.
- **Backtests align calendars at any timestamp resolution** (#1560). The engine
merged symbol calendars and placed prices through raw nanosecond integers,
but a local duckdb source serves microseconds. Such a run was dated
1970-01-21, and beside a nanosecond source one symbol's closes came back
empty. The rebalance mask had the same unit mismatch.
- **A research goal that is an order is still refused** (#1562). The execution
filter no longer rejects research that mentions shares or coins ("should the
fund sell its GOOGL shares"). It refuses an objective that opens with buy or
sell, puts a quantity right after the verb, or writes 买入 / 卖出 with a
quantity and a unit. The first version of the change had made "Buy 100
shares of NVDA" an accepted goal.
- **A strict-bench OOS split needs two IC observations on each side** (#1559).
A split outside the loaded prices is refused. An alpha whose IC series
leaves fewer than two observations on either side is skipped, with the
counts in the reason. The IC series ends one forward-return horizon before
the prices, so a split one bar from the end used to publish verdicts
measured on nothing.
- **Quant inputs are checked before they are used** (#1555-#1558). HRP aligns a
supplied correlation matrix, and the covariance's own rows, to the
covariance's column labels; swapping two rows used to move the weights with
no error. Purged cross-validation refuses an unordered or duplicated
timestamp index, and a label that ends before it starts. Impact models and
every fixed-income entry point refuse NaN and infinities instead of
returning NaN prices, durations and curves.
- **Shadow-account overtrading uses the whole trading window** (#1563). A long
hold that closed before later short trades no longer shrinks the span.
- **Asset growth is year over year on the daily panel** (#1564). Derived
fundamentals run on a panel densified to the price calendar, where a one-row
lag compared yesterday with today: 0% on ordinary days and a one-day spike
at each filing. The lag is now 365 days, as-of.
- **A tail-risk figure names its own field once a session holds more than one**
(#1425, after #1444). A call- or tool-scoped ref (`ref x1`) pooled every
tail-risk field that call returned, and an undeclared tail-risk percent pooled
+4 -2
View File
@@ -52,15 +52,17 @@
> ⚠️ **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-24** 💱 **A dollar line priced as pesos, Email and WebSocket in the Web UI, and a CI break from an SDK update**: BYMA and the TSX list US-dollar lines beside their home-currency ones (GGALD.BA, DLR-U.TO), and an Argentine or Canadian backtest priced them in its single peso or Canadian-dollar pool. The loaders now admit a line only in its market's currency, as LSE lines already were, and every other declared quote currency travels with the data, so an answer names the right one ([#1576](https://github.com/HKUDS/Vibe-Trading/pull/1576)). Stock profiles carry the listing's own venue and currency beside the issuer's fundamentals ([#1577](https://github.com/HKUDS/Vibe-Trading/pull/1577)), grounding and symbol search know every market the data layer routes ([#1575](https://github.com/HKUDS/Vibe-Trading/pull/1575)), and `technical_indicators` reports volume with the unit its source declares — board lots or shares, 100× apart ([#1571](https://github.com/HKUDS/Vibe-Trading/pull/1571)). Email and WebSocket join the guided channel setup, with mail-server certificates now verified and settings writes closed to cross-site pages ([#1544](https://github.com/HKUDS/Vibe-Trading/pull/1544)). **Fixed:** an explicit provider header lost to an ambient twin under openai 3.x, which had turned every PR's CI red ([#1568](https://github.com/HKUDS/Vibe-Trading/pull/1568)); a backtest from a microsecond-resolution source was dated 1970 ([#1560](https://github.com/HKUDS/Vibe-Trading/pull/1560)); a research goal that is plainly an order is refused again ([#1562](https://github.com/HKUDS/Vibe-Trading/pull/1562)); a strict-bench OOS split could leave one side empty ([#1559](https://github.com/HKUDS/Vibe-Trading/pull/1559)); HRP label alignment, cross-validation label order and non-finite quant inputs ([#1555](https://github.com/HKUDS/Vibe-Trading/pull/1555), [#1556](https://github.com/HKUDS/Vibe-Trading/pull/1556), [#1557](https://github.com/HKUDS/Vibe-Trading/pull/1557), [#1558](https://github.com/HKUDS/Vibe-Trading/pull/1558)); the shadow-account overtrading window ([#1563](https://github.com/HKUDS/Vibe-Trading/pull/1563)); and asset growth was read day over day ([#1564](https://github.com/HKUDS/Vibe-Trading/pull/1564)). Thanks [@Shizoqua](https://github.com/Shizoqua), [@zeus229](https://github.com/zeus229) and [@shadowinlife](https://github.com/shadowinlife)!
- **2026-09-23** 🇦🇷 **Argentine listings, a short book sized upside down, and the last half of the tail-risk gate**: `.BA` symbols — BYMA equities and CEDEARs — route to Yahoo as their own ARS market, and the Web UI groups and labels them like any other; an Argentine backtest still fails closed until BYMA execution rules are modelled ([#1543](https://github.com/HKUDS/Vibe-Trading/pull/1543)). The mean-variance and turnover-aware optimizers scored every position as if it were held long, so the strongest shorts got the least capital. Both now size on position returns, where a long and a short of two correlated names hedge each other instead of reading as correlated — on a +0.92 correlated pair the old objective put the whole book on the long, the new one splits it 0.51 / -0.49 ([#1548](https://github.com/HKUDS/Vibe-Trading/pull/1548)). And a tail-risk figure now has to name its own field once a session holds more than one measure or confidence level, so an ES 95% can no longer quote the VaR 95% value under a call id ([#1425](https://github.com/HKUDS/Vibe-Trading/issues/1425)). **Fixed:** Monte-Carlo validation annualises at the venue's bars per year instead of a hardcoded 252, so its Sharpe agrees with the rest of the same report ([#1546](https://github.com/HKUDS/Vibe-Trading/pull/1546)); a futures order on a negative-price bar is no longer rejected outright ([#1547](https://github.com/HKUDS/Vibe-Trading/pull/1547)); a factor's IC ratio is left unset for a negative baseline instead of reading real decay as healthy improvement ([#1549](https://github.com/HKUDS/Vibe-Trading/pull/1549)); and two memories sharing a title under different types keep their own index rows and link targets ([#1545](https://github.com/HKUDS/Vibe-Trading/pull/1545)). Thanks [@zeus229](https://github.com/zeus229), [@Shizoqua](https://github.com/Shizoqua) and [@he-yufeng](https://github.com/he-yufeng)!
- **2026-09-22** 📅 **Weekly and monthly bars, and a compaction replay that could lose evidence**: `get_market_data` and backtests take `1W` and `1M` (rejected since 09-20 so `1M` would not fetch minute bars). Every source still serves daily bars and the period bar is built from them, dated on the last trading day of its week or month, so a 21-month review is one call of 21 bars ([#1479](https://github.com/HKUDS/Vibe-Trading/issues/1479)). A price index is stamped unadjusted instead of by what its source does to a stock ([#1541](https://github.com/HKUDS/Vibe-Trading/issues/1541)). A read-only tool result that context compaction removed is restored from the run's own memory instead of fetched again, capped per run, and a write empties that memory so a regenerated file is read afresh ([#1488](https://github.com/HKUDS/Vibe-Trading/pull/1488)). A tail-risk figure declared with a field ref is checked against that field, so a VaR 99% quoting the 95% value is caught ([#1444](https://github.com/HKUDS/Vibe-Trading/pull/1444)). QVeris refuses stock and ETF bars, whose adjustment its search-ranked pick cannot state, and quotes priced per result ([#1494](https://github.com/HKUDS/Vibe-Trading/issues/1494)). Thanks [@sambazhu](https://github.com/sambazhu), [@zeus229](https://github.com/zeus229), [@he-yufeng](https://github.com/he-yufeng), [@jw232](https://github.com/jw232) and [@cgycorey](https://github.com/cgycorey)!
- **2026-09-22** 💸 **A backtest that died when funding pushed cash below zero, and three more tools that read a rejected query as no data**: a crypto funding debit can leave free cash below zero, and the next position the strategy wanted then found no size that fit, not even zero, so the run aborted with "planned order … exceeds available capital" (or "insufficient capital for position rebalance"). That open is now skipped and reported once as `insufficient_capital`, the bar's reductions still run, and a close whose loss exceeds its margin still aborts the bar as before ([#1542](https://github.com/HKUDS/Vibe-Trading/issues/1542)). Block trades, margin trading and financial statements now tell Eastmoney rejecting a stale query apart from a genuinely empty answer, through the same check shareholder count, dragon-tiger and lockup expiry use. Answers in Spanish, German and other decimal-comma locales now ground `17,93 %` or `1.410,00 CNY` against the tool results, while two unspaced numbers like `1400,1777` stay two numbers, and a figure has to match its evidence to the precision it is written at ([#1517](https://github.com/HKUDS/Vibe-Trading/pull/1517)). Thanks [@turtle696966969696](https://github.com/turtle696966969696) for a trace reconciled to the cent, and [@zeus229](https://github.com/zeus229)!
<details>
<summary>Earlier news</summary>
- **2026-09-22** 💸 **A backtest that died when funding pushed cash below zero, and three more tools that read a rejected query as no data**: a crypto funding debit can leave free cash below zero, and the next position the strategy wanted then found no size that fit, not even zero, so the run aborted with "planned order … exceeds available capital" (or "insufficient capital for position rebalance"). That open is now skipped and reported once as `insufficient_capital`, the bar's reductions still run, and a close whose loss exceeds its margin still aborts the bar as before ([#1542](https://github.com/HKUDS/Vibe-Trading/issues/1542)). Block trades, margin trading and financial statements now tell Eastmoney rejecting a stale query apart from a genuinely empty answer, through the same check shareholder count, dragon-tiger and lockup expiry use. Answers in Spanish, German and other decimal-comma locales now ground `17,93 %` or `1.410,00 CNY` against the tool results, while two unspaced numbers like `1400,1777` stay two numbers, and a figure has to match its evidence to the precision it is written at ([#1517](https://github.com/HKUDS/Vibe-Trading/pull/1517)). Thanks [@turtle696966969696](https://github.com/turtle696966969696) for a trace reconciled to the cent, and [@zeus229](https://github.com/zeus229)!
- **2026-09-21** 🔌 **IM channels configured from the Web UI, and 24 alphas that emitted a value computed from a missing bar**: Settings now edits each IM channel with masked secrets, a connection test on the unsaved form, and a per-channel hot apply with no restart; DingTalk and QQ get guided setups ([#1520](https://github.com/HKUDS/Vibe-Trading/pull/1520), [#1529](https://github.com/HKUDS/Vibe-Trading/pull/1529)), and every adapter logs through stdlib again, so diagnostics that a `{}` placeholder used to swallow reach the log ([#1533](https://github.com/HKUDS/Vibe-Trading/pull/1533)). In the Alpha Zoo, a comparison whose operand is NaN because its window holds a missing bar reads False and emits a constant; the #1463 sweep, which nudged the bar by a tick, could not see it. A gap-versus-gap-free check found 24 more alphas, which now mask on their inputs' reach while a correlation undefined on complete data keeps its old verdict ([#1523](https://github.com/HKUDS/Vibe-Trading/pull/1523), [#1534](https://github.com/HKUDS/Vibe-Trading/pull/1534), [#1463](https://github.com/HKUDS/Vibe-Trading/issues/1463)). **Data:** a lockup's `free_shares` is the unlocking quantity, not the float it was read from ([#1513](https://github.com/HKUDS/Vibe-Trading/pull/1513)); dragon-tiger seats are ranked within each listing reason ([#1512](https://github.com/HKUDS/Vibe-Trading/pull/1512)); shareholder-count history returns real periods ([#1518](https://github.com/HKUDS/Vibe-Trading/pull/1518)); Tencent, Eastmoney and AKShare A-share prices are labelled dividend-additive ([#1497](https://github.com/HKUDS/Vibe-Trading/pull/1497)); Gildata joins the A-share chain as a token-gated source ([#1474](https://github.com/HKUDS/Vibe-Trading/pull/1474)); portfolios value any ISO-4217 currency and fail one source, not the snapshot, on a missing rate ([#1510](https://github.com/HKUDS/Vibe-Trading/pull/1510)); `connector account` shows Binance, Futu and Trading 212 balances ([#1539](https://github.com/HKUDS/Vibe-Trading/issues/1539)). **New:** Bahasa Indonesia UI and README ([#1482](https://github.com/HKUDS/Vibe-Trading/pull/1482)). **Removed:** the Requesty provider — point `openrouter` at its base URL instead. Thanks [@shadowinlife](https://github.com/shadowinlife), [@he-yufeng](https://github.com/he-yufeng), [@Shizoqua](https://github.com/Shizoqua), [@lorenzozanee](https://github.com/lorenzozanee), [@cgycorey](https://github.com/cgycorey), [@zeus229](https://github.com/zeus229), [@sambazhu](https://github.com/sambazhu), [@Yoruxyv](https://github.com/Yoruxyv) and [@jastincheis](https://github.com/jastincheis)!
- **2026-09-20** 🛠️ **Clearer data requests and everyday fixes**: monthly `1M` requests are now explicitly rejected instead of silently fetching one-minute bars ([#1487](https://github.com/HKUDS/Vibe-Trading/pull/1487)); weekly/monthly support remains tracked in [#1479](https://github.com/HKUDS/Vibe-Trading/issues/1479). Welcome quick actions highlight the selected chip ([#1500](https://github.com/HKUDS/Vibe-Trading/pull/1500)), DingTalk sanitizes downloaded filenames ([#1506](https://github.com/HKUDS/Vibe-Trading/pull/1506)), Signal preserves text around mentions after emoji ([#1478](https://github.com/HKUDS/Vibe-Trading/pull/1478)), and credit-spread tables merge equivalent `5` / `5.0` tenor columns ([#1507](https://github.com/HKUDS/Vibe-Trading/pull/1507)).
+4 -2
View File
@@ -52,15 +52,17 @@
> ⚠️ **تحذير أمني:** حساب X باسم `VibeTrading_HKU`، ومشروع Virtuals رقم `101845`، وعقد التوكن `0x640BDBF77b6447E8b7DB7894cED84BD1c40571f4` كلّها غير رسمية ولا تتبع Vibe-Trading. لم نُطلق أو نؤيد مطلقًا أي توكن أو عملة ميم. لا تشترِ هذا التوكن، ولا تربط محفظتك، ولا توقّع أي شيء. [التفاصيل](SECURITY.md#official-channels--impersonation).
- **2026-09-24** 💱 **أوراق مسعّرة بالدولار حُسبت بالبيزو، وEmail وWebSocket في واجهة الويب، وعطل في CI سببه تحديث SDK**: تُدرج BYMA وبورصة تورنتو أوراقًا مسعّرة بالدولار الأمريكي إلى جانب أوراقها بالعملة المحلية (GGALD.BA وDLR-U.TO)، وكان الاختبار الرجعي الأرجنتيني أو الكندي يسعّرها في مجمّعه الوحيد بالبيزو أو بالدولار الكندي. صارت أدوات التحميل تقبل الورقة فقط إذا كانت مسعّرة بعملة سوقها، كما هو الحال مع أوراق LSE، وتنتقل عملة التسعير المعلنة لغيرها مع البيانات فيذكر الجواب العملة الصحيحة ([#1576](https://github.com/HKUDS/Vibe-Trading/pull/1576)). ملفات الأسهم تحمل بورصة الإدراج وعملته إلى جانب البيانات الأساسية للمُصدر ([#1577](https://github.com/HKUDS/Vibe-Trading/pull/1577))، ويعرف التحقق من الأرقام والبحث عن الرموز كل سوق تدعمه طبقة البيانات ([#1575](https://github.com/HKUDS/Vibe-Trading/pull/1575))، وتعيد `technical_indicators` حجم التداول مع الوحدة التي يعلنها المصدر — لوت أو سهم، والفرق 100 ضعف ([#1571](https://github.com/HKUDS/Vibe-Trading/pull/1571)). وينضم Email وWebSocket إلى الإعداد الموجَّه للقنوات، مع التحقق من شهادات خادم البريد ورفض كتابة الإعدادات من صفحات عابرة للمواقع ([#1544](https://github.com/HKUDS/Vibe-Trading/pull/1544)). **إصلاحات:** ترويسة المزوّد الصريحة كانت تُستبدل بترويسة بيئية بالاسم نفسه في openai 3.x، ما جعل CI يفشل لكل PR ([#1568](https://github.com/HKUDS/Vibe-Trading/pull/1568))؛ واختبار رجعي من مصدر بدقة الميكروثانية كان مؤرخًا بعام 1970 ([#1560](https://github.com/HKUDS/Vibe-Trading/pull/1560))؛ وهدف بحثي هو أمر تداول صريح يُرفض مجددًا ([#1562](https://github.com/HKUDS/Vibe-Trading/pull/1562))؛ وتقسيم OOS في strict bench كان قد يترك أحد الجانبين فارغًا ([#1559](https://github.com/HKUDS/Vibe-Trading/pull/1559))؛ ومحاذاة تسميات HRP وترتيب تسميات التحقق المتقاطع والمدخلات غير المنتهية ([#1555](https://github.com/HKUDS/Vibe-Trading/pull/1555) و[#1556](https://github.com/HKUDS/Vibe-Trading/pull/1556) و[#1557](https://github.com/HKUDS/Vibe-Trading/pull/1557) و[#1558](https://github.com/HKUDS/Vibe-Trading/pull/1558))؛ ونافذة الإفراط في التداول في الحساب الظلي ([#1563](https://github.com/HKUDS/Vibe-Trading/pull/1563))؛ ونمو الأصول الذي كان يُحسب يومًا بيوم ([#1564](https://github.com/HKUDS/Vibe-Trading/pull/1564)). شكرًا [@Shizoqua](https://github.com/Shizoqua) و[@zeus229](https://github.com/zeus229) و[@shadowinlife](https://github.com/shadowinlife)!
- **2026-09-23** 🇦🇷 **أسهم أرجنتينية، ومحفظة بيع على المكشوف كان حجمها مقلوبًا، والنصف الأخير من بوابة مخاطر الذيل**: رموز `.BA` (أسهم BYMA وشهادات CEDEAR) تُوجَّه إلى Yahoo كسوق بعملة ARS خاصة بها، وواجهة الويب تجمعها وتسمّيها مثل أي سوق آخر؛ ويظل الاختبار الرجعي للأرجنتين يفشل صراحةً حتى تُنمذَج قواعد التنفيذ في BYMA ([#1543](https://github.com/HKUDS/Vibe-Trading/pull/1543)). كان مُحسِّنا المتوسط-التباين ومراعاة الدوران يقيّمان كل مركز كأنه شراء، فحصلت أقوى مراكز البيع على أقل رأس مال. الاثنان الآن يحدّدان الحجم على عوائد المركز، حيث يتحوّط شراء وبيع لورقتين مترابطتين بدل أن يُقرآ كمترابطتين — على زوج بترابط +0.92 كان الهدف القديم يضع المحفظة كلها في الشراء، والجديد يقسمها 0.51 / -0.49 ([#1548](https://github.com/HKUDS/Vibe-Trading/pull/1548)). وصار رقم مخاطر الذيل مُلزَمًا بتسمية حقله بعد أن تحتفظ الجلسة بأكثر من مقياس أو مستوى ثقة، فلا يمكن لـ ES 95% أن يقتبس قيمة VaR 95% تحت معرّف نداء ([#1425](https://github.com/HKUDS/Vibe-Trading/issues/1425)). **إصلاحات:** تحقّق مونت كارلو يحوّل إلى أساس سنوي بعدد أشرطة المنصة لا بالرقم الثابت 252، فيتوافق شارب مع بقية التقرير نفسه ([#1546](https://github.com/HKUDS/Vibe-Trading/pull/1546)); أمر العقود المستقبلية على شريط بسعر سالب لم يعد يُرفض كليًا ([#1547](https://github.com/HKUDS/Vibe-Trading/pull/1547)); ونسبة IC للعامل تُترك غير محددة عندما يكون الأساس سالبًا بدل قراءة التدهور الحقيقي كتحسّن سليم ([#1549](https://github.com/HKUDS/Vibe-Trading/pull/1549)); وذاكرتان تتشاركان العنوان تحت نوعين مختلفين تحتفظان بسطري فهرس ووصلات مستقلة ([#1545](https://github.com/HKUDS/Vibe-Trading/pull/1545)). شكرًا [@zeus229](https://github.com/zeus229) و[@Shizoqua](https://github.com/Shizoqua) و[@he-yufeng](https://github.com/he-yufeng)!
- **2026-09-22** 📅 **أشرطة أسبوعية وشهرية، وإعادة تشغيل كانت قد تُفقد الأدلة بعد ضغط السياق**: يقبل `get_market_data` والاختبار الرجعي الآن `1W` و`1M` (كان `1M` مرفوضًا منذ 09-20 حتى لا يُجلب كأشرطة دقيقة واحدة). لا تزال كل المصادر تقدّم أشرطة يومية، ومنها يُبنى شريط الأسبوع أو الشهر مؤرَّخًا بآخر يوم تداول فيه، فصارت مراجعة شهرية لـ21 شهرًا استدعاءً واحدًا يعيد 21 شريطًا ([#1479](https://github.com/HKUDS/Vibe-Trading/issues/1479)). صار المؤشر السعري يُوسَم غير معدَّل بدل وسمه بما يفعله مصدره بالسهم ([#1541](https://github.com/HKUDS/Vibe-Trading/issues/1541)). نتيجة أداة القراءة التي حذفها ضغط السياق تُستعاد من ذاكرة التشغيل نفسه بدل جلبها من جديد، بسقف لكل تشغيل، وأي عملية كتابة تُفرغ هذه الذاكرة فيُقرأ الملف المُعاد توليده من جديد ([#1488](https://github.com/HKUDS/Vibe-Trading/pull/1488)). رقم مخاطر الذيل المُعلن بمرجع حقل يُطابَق مع ذلك الحقل، فيُكشف VaR 99% الذي ينقل قيمة 95% ([#1444](https://github.com/HKUDS/Vibe-Trading/pull/1444)). يرفض QVeris أشرطة الأسهم وصناديق ETF، إذ لا يستطيع المصدر الذي يختاره بترتيب البحث أن يحدد تعديلها، كما يرفض التسعير لكل نتيجة ([#1494](https://github.com/HKUDS/Vibe-Trading/issues/1494)). شكرًا لـ [@sambazhu](https://github.com/sambazhu), [@zeus229](https://github.com/zeus229), [@he-yufeng](https://github.com/he-yufeng), [@jw232](https://github.com/jw232) and [@cgycorey](https://github.com/cgycorey)!
- **2026-09-22** 💸 **اختبار رجعي كان يتوقف حين تدفع رسوم التمويل النقد تحت الصفر، وثلاث أدوات أخرى كانت تقرأ الاستعلام المرفوض على أنه لا بيانات**: قد تخصم رسوم تمويل العملات المشفرة النقدَ المتاح إلى ما دون الصفر، وعندها لا يتسع أي حجم للمركز التالي الذي تريده الاستراتيجية — ولا حتى الصفر — فيتوقف التشغيل برسالة "planned order … exceeds available capital" (أو "insufficient capital for position rebalance"). صار ذلك الفتح يُتخطّى ويُسجَّل مرة واحدة بوصفه `insufficient_capital`، وتُنفَّذ تخفيضات الشمعة نفسها، ويظل الإغلاق الذي تتجاوز خسارته هامشه يُلغي الشمعة كما كان ([#1542](https://github.com/HKUDS/Vibe-Trading/issues/1542)). وصارت صفقات الكتل والتداول بالهامش والقوائم المالية تميّز رفض Eastmoney لاستعلام قديم عن جواب فارغ فعلًا، بالفحص نفسه الذي تستخدمه أدوات عدد المساهمين وقائمة التنين والنمر وفك الحظر. وصارت الإجابات بالإسبانية والألمانية وسائر اللغات التي تكتب الكسر العشري بفاصلة تُطابق `17,93 %` أو `1.410,00 CNY` مع نتائج الأدوات، بينما يبقى رقمان بلا مسافة مثل `1400,1777` رقمين، ويجب أن يطابق الرقم دليله بالدقة التي كُتب بها ([#1517](https://github.com/HKUDS/Vibe-Trading/pull/1517)). شكرًا لـ [@turtle696966969696](https://github.com/turtle696966969696) على إعادة إنتاج مطابقة حتى السنت، ولـ [@zeus229](https://github.com/zeus229)!
<details>
<summary>أخبار سابقة</summary>
- **2026-09-22** 💸 **اختبار رجعي كان يتوقف حين تدفع رسوم التمويل النقد تحت الصفر، وثلاث أدوات أخرى كانت تقرأ الاستعلام المرفوض على أنه لا بيانات**: قد تخصم رسوم تمويل العملات المشفرة النقدَ المتاح إلى ما دون الصفر، وعندها لا يتسع أي حجم للمركز التالي الذي تريده الاستراتيجية — ولا حتى الصفر — فيتوقف التشغيل برسالة "planned order … exceeds available capital" (أو "insufficient capital for position rebalance"). صار ذلك الفتح يُتخطّى ويُسجَّل مرة واحدة بوصفه `insufficient_capital`، وتُنفَّذ تخفيضات الشمعة نفسها، ويظل الإغلاق الذي تتجاوز خسارته هامشه يُلغي الشمعة كما كان ([#1542](https://github.com/HKUDS/Vibe-Trading/issues/1542)). وصارت صفقات الكتل والتداول بالهامش والقوائم المالية تميّز رفض Eastmoney لاستعلام قديم عن جواب فارغ فعلًا، بالفحص نفسه الذي تستخدمه أدوات عدد المساهمين وقائمة التنين والنمر وفك الحظر. وصارت الإجابات بالإسبانية والألمانية وسائر اللغات التي تكتب الكسر العشري بفاصلة تُطابق `17,93 %` أو `1.410,00 CNY` مع نتائج الأدوات، بينما يبقى رقمان بلا مسافة مثل `1400,1777` رقمين، ويجب أن يطابق الرقم دليله بالدقة التي كُتب بها ([#1517](https://github.com/HKUDS/Vibe-Trading/pull/1517)). شكرًا لـ [@turtle696966969696](https://github.com/turtle696966969696) على إعادة إنتاج مطابقة حتى السنت، ولـ [@zeus229](https://github.com/zeus229)!
- **2026-09-21** 🔌 **ضبط قنوات IM من واجهة الويب، وإصلاح 24 ألفا كانت تُخرج قيمة محسوبة من شمعة مفقودة**: تتيح صفحة الإعدادات الآن تحرير كل قناة IM مع إخفاء الأسرار، واختبار الاتصال على قيم النموذج قبل الحفظ، وتطبيقًا فوريًا للقناة وحدها دون إعادة تشغيل؛ ويحصل DingTalk وQQ على إعداد موجَّه ([#1520](https://github.com/HKUDS/Vibe-Trading/pull/1520)، [#1529](https://github.com/HKUDS/Vibe-Trading/pull/1529))، وعادت كل المحوِّلات إلى سجلّ stdlib فصارت رسائل التشخيص التي كان يبتلعها العنصر النائب `{}` تصل إلى السجل ([#1533](https://github.com/HKUDS/Vibe-Trading/pull/1533)). في Alpha Zoo كانت المقارنة مع طرف قيمته NaN لأن نافذته تحوي شمعة مفقودة تُقرأ False وتُخرج ثابتًا؛ ولم يرَ مسح #1463 ذلك لأنه كان يحرّك الشمعة بمقدار tick واحد. كشفت مقارنة المسار ذي الفجوة بالمسار الكامل 24 ألفا إضافية، وصارت تحجب القيم وفق مدى الرجوع لمدخلاتها، بينما يحتفظ الارتباط غير المعرَّف على بيانات كاملة بحكمه السابق ([#1523](https://github.com/HKUDS/Vibe-Trading/pull/1523)، [#1534](https://github.com/HKUDS/Vibe-Trading/pull/1534)، [#1463](https://github.com/HKUDS/Vibe-Trading/issues/1463)). **البيانات:** صار `free_shares` لفك الحظر هو الكمية المفرج عنها فعلًا لا الأسهم المتداولة ([#1513](https://github.com/HKUDS/Vibe-Trading/pull/1513))؛ وتُرتَّب مقاعد قائمة التنين والنمر داخل كل سبب إدراج ([#1512](https://github.com/HKUDS/Vibe-Trading/pull/1512))؛ ويعيد عدد المساهمين فترات تاريخية حقيقية ([#1518](https://github.com/HKUDS/Vibe-Trading/pull/1518))؛ وتُوسَم أسعار أسهم A المعدَّلة من Tencent وEastmoney وAKShare بأنها تعديل توزيعات جمعي ([#1497](https://github.com/HKUDS/Vibe-Trading/pull/1497))؛ وينضم Gildata مصدرًا لأسهم A يتطلب رمزًا ([#1474](https://github.com/HKUDS/Vibe-Trading/pull/1474))؛ وتقيّم المحافظ أي عملة ISO-4217 ويفشل المصدر وحده عند غياب سعر الصرف ([#1510](https://github.com/HKUDS/Vibe-Trading/pull/1510))؛ ويعرض `connector account` أرصدة Binance وFutu وTrading 212 ([#1539](https://github.com/HKUDS/Vibe-Trading/issues/1539)). **جديد:** واجهة وREADME باللغة الإندونيسية ([#1482](https://github.com/HKUDS/Vibe-Trading/pull/1482)). **أُزيل:** مزوّد Requesty — استخدم `openrouter` مع عنوانه الأساسي. شكرًا لـ [@shadowinlife](https://github.com/shadowinlife), [@he-yufeng](https://github.com/he-yufeng), [@Shizoqua](https://github.com/Shizoqua), [@lorenzozanee](https://github.com/lorenzozanee), [@cgycorey](https://github.com/cgycorey), [@zeus229](https://github.com/zeus229), [@sambazhu](https://github.com/sambazhu), [@Yoruxyv](https://github.com/Yoruxyv) and [@jastincheis](https://github.com/jastincheis)!
- **2026-09-20** 🛠️ **طلبات بيانات أوضح وإصلاحات للاستخدام اليومي**: تُرفض الآن طلبات الشموع الشهرية `1M` برسالة صريحة بدلاً من إرجاع شموع الدقيقة الواحدة بصمت ([#1487](https://github.com/HKUDS/Vibe-Trading/pull/1487))؛ وتظل إضافة الشموع الأسبوعية والشهرية قيد المتابعة في [#1479](https://github.com/HKUDS/Vibe-Trading/issues/1479). تُبرز شاشة الترحيب الإجراء السريع المختار ([#1500](https://github.com/HKUDS/Vibe-Trading/pull/1500))، وينقّي DingTalk أسماء الملفات المنزّلة من محارف المسارات ([#1506](https://github.com/HKUDS/Vibe-Trading/pull/1506)). ويحافظ Signal على النص المحيط بالإشارات بعد الرموز التعبيرية ([#1478](https://github.com/HKUDS/Vibe-Trading/pull/1478))، وتدمج جداول فروق الائتمان أعمدة الآجال المتكافئة مثل `5` و`5.0` ([#1507](https://github.com/HKUDS/Vibe-Trading/pull/1507)).
+4 -2
View File
@@ -52,15 +52,17 @@
> ⚠️ **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-24** 💱 **Una línea en dólares valuada en pesos, Email y WebSocket en la Web UI, y una rotura de CI por una actualización del SDK**: BYMA y la TSX listan líneas en dólares junto a las de su moneda local (GGALD.BA, DLR-U.TO), y un backtest argentino o canadiense las valuaba en su único pool en pesos o en dólares canadienses. Los loaders ahora admiten una línea solo en la moneda de su mercado, como ya ocurría con las líneas de la LSE, y cualquier otra moneda de cotización declarada viaja con los datos, de modo que la respuesta nombra la correcta ([#1576](https://github.com/HKUDS/Vibe-Trading/pull/1576)). Los perfiles de acciones incluyen el mercado y la moneda del propio listado junto a los fundamentales del emisor ([#1577](https://github.com/HKUDS/Vibe-Trading/pull/1577)), el grounding y la búsqueda de símbolos conocen todos los mercados que enruta la capa de datos ([#1575](https://github.com/HKUDS/Vibe-Trading/pull/1575)) y `technical_indicators` informa el volumen con la unidad que declara su fuente — lotes o acciones, a 100× de distancia ([#1571](https://github.com/HKUDS/Vibe-Trading/pull/1571)). Email y WebSocket se suman a la configuración guiada de canales, con verificación de certificados del servidor de correo y escrituras de configuración cerradas a páginas de otros sitios ([#1544](https://github.com/HKUDS/Vibe-Trading/pull/1544)). **Corregido:** una cabecera explícita del proveedor que perdía frente a su gemela del entorno con openai 3.x y había puesto en rojo el CI de todos los PR ([#1568](https://github.com/HKUDS/Vibe-Trading/pull/1568)); un backtest de una fuente con resolución de microsegundos fechado en 1970 ([#1560](https://github.com/HKUDS/Vibe-Trading/pull/1560)); un objetivo de investigación que es claramente una orden vuelve a rechazarse ([#1562](https://github.com/HKUDS/Vibe-Trading/pull/1562)); una división OOS del strict bench que podía dejar un lado vacío ([#1559](https://github.com/HKUDS/Vibe-Trading/pull/1559)); alineación de etiquetas en HRP, orden de etiquetas en la validación cruzada y entradas no finitas ([#1555](https://github.com/HKUDS/Vibe-Trading/pull/1555), [#1556](https://github.com/HKUDS/Vibe-Trading/pull/1556), [#1557](https://github.com/HKUDS/Vibe-Trading/pull/1557), [#1558](https://github.com/HKUDS/Vibe-Trading/pull/1558)); la ventana de sobreoperación de la cuenta sombra ([#1563](https://github.com/HKUDS/Vibe-Trading/pull/1563)); y el crecimiento de activos, que se medía día contra día ([#1564](https://github.com/HKUDS/Vibe-Trading/pull/1564)). ¡Gracias [@Shizoqua](https://github.com/Shizoqua), [@zeus229](https://github.com/zeus229) y [@shadowinlife](https://github.com/shadowinlife)!
- **2026-09-23** 🇦🇷 **Cotizaciones argentinas, un libro de cortos dimensionado al revés y la última mitad de la puerta de riesgo de cola**: los símbolos `.BA` —acciones de BYMA y CEDEARs— se enrutan a Yahoo como mercado propio en ARS, y la interfaz web los agrupa y etiqueta como a cualquier otro; un backtest argentino sigue fallando de forma explícita hasta que se modelen las reglas de ejecución de BYMA ([#1543](https://github.com/HKUDS/Vibe-Trading/pull/1543)). Los optimizadores de media-varianza y de rotación puntuaban cada posición como si fuera larga, así que los mejores cortos recibían el menor capital. Ahora ambos dimensionan sobre retornos de la posición, donde un largo y un corto de dos nombres correlacionados se cubren entre sí en vez de leerse como correlacionados: en un par con correlación +0,92 el objetivo anterior ponía todo el libro en el largo y el nuevo lo reparte 0,51 / -0,49 ([#1548](https://github.com/HKUDS/Vibe-Trading/pull/1548)). Y una cifra de riesgo de cola debe nombrar su propio campo en cuanto una sesión contiene más de una medida o nivel de confianza, de modo que un ES 95% ya no puede citar el valor del VaR 95% bajo el id de una llamada ([#1425](https://github.com/HKUDS/Vibe-Trading/issues/1425)). **Corregido:** la validación Monte Carlo anualiza con las barras por año del mercado en lugar de un 252 fijo, así su Sharpe concuerda con el resto del mismo informe ([#1546](https://github.com/HKUDS/Vibe-Trading/pull/1546)); una orden de futuros en una barra de precio negativo ya no se rechaza sin más ([#1547](https://github.com/HKUDS/Vibe-Trading/pull/1547)); el IC ratio de un factor queda sin definir cuando la línea base es negativa, en vez de leer un deterioro real como mejora ([#1549](https://github.com/HKUDS/Vibe-Trading/pull/1549)); y dos memorias que comparten título bajo tipos distintos conservan sus propias filas de índice y enlaces ([#1545](https://github.com/HKUDS/Vibe-Trading/pull/1545)). ¡Gracias [@zeus229](https://github.com/zeus229), [@Shizoqua](https://github.com/Shizoqua) y [@he-yufeng](https://github.com/he-yufeng)!
- **2026-09-22** 📅 **Barras semanales y mensuales, y una reproducción tras la compactación que podía perder evidencia**: `get_market_data` y los backtests aceptan `1W` y `1M` (rechazado desde el 09-20 para que `1M` no trajera barras de un minuto). Todas las fuentes siguen sirviendo barras diarias y la barra del periodo se construye a partir de ellas, fechada en el último día hábil de su semana o mes, así que una revisión mensual de 21 meses es una llamada de 21 barras ([#1479](https://github.com/HKUDS/Vibe-Trading/issues/1479)). Un índice de precios se marca sin ajustar en lugar de por lo que su fuente hace con una acción ([#1541](https://github.com/HKUDS/Vibe-Trading/issues/1541)). El resultado de una herramienta de solo lectura que la compactación del contexto eliminó se restaura desde la memoria de la propia ejecución en lugar de volver a descargarse, con un tope por ejecución, y una escritura vacía esa memoria para que un archivo regenerado se lea de nuevo ([#1488](https://github.com/HKUDS/Vibe-Trading/pull/1488)). Una cifra de riesgo de cola declarada con una ref de campo se contrasta con ese campo, así que un VaR 99% que cita el valor al 95% se detecta ([#1444](https://github.com/HKUDS/Vibe-Trading/pull/1444)). QVeris rechaza barras de acciones y ETF, cuyo ajuste no puede indicar la fuente que elige por ranking de búsqueda, y las cotizaciones por resultado ([#1494](https://github.com/HKUDS/Vibe-Trading/issues/1494)). ¡Gracias [@sambazhu](https://github.com/sambazhu), [@zeus229](https://github.com/zeus229), [@he-yufeng](https://github.com/he-yufeng), [@jw232](https://github.com/jw232) and [@cgycorey](https://github.com/cgycorey)!
- **2026-09-22** 💸 **Un backtest que se detenía cuando el funding dejaba la caja en negativo, y tres herramientas más que leían una consulta rechazada como falta de datos**: un cargo de funding cripto puede dejar la caja disponible por debajo de cero, y entonces la siguiente posición que quería la estrategia no cabía con ningún tamaño —ni siquiera con cero—, así que la ejecución abortaba con "planned order … exceeds available capital" (o "insufficient capital for position rebalance"). Ahora esa apertura se omite y se reporta una sola vez como `insufficient_capital`, las reducciones de la barra se ejecutan igual, y un cierre cuya pérdida supera su margen sigue abortando la barra como antes ([#1542](https://github.com/HKUDS/Vibe-Trading/issues/1542)). Operaciones en bloque, trading con margen y estados financieros ya distinguen que Eastmoney rechace una consulta obsoleta de una respuesta realmente vacía, con la misma comprobación que usan número de accionistas, dragon-tiger y desbloqueos. Las respuestas en español, alemán y otros idiomas con coma decimal ya contrastan `17,93 %` o `1.410,00 CNY` con los resultados de las herramientas, mientras dos números sin espacio como `1400,1777` siguen siendo dos, y una cifra debe coincidir con su evidencia a la precisión con que se escribe ([#1517](https://github.com/HKUDS/Vibe-Trading/pull/1517)). ¡Gracias [@turtle696966969696](https://github.com/turtle696966969696) por una traza cuadrada al céntimo, y a [@zeus229](https://github.com/zeus229)!
<details>
<summary>Noticias anteriores</summary>
- **2026-09-22** 💸 **Un backtest que se detenía cuando el funding dejaba la caja en negativo, y tres herramientas más que leían una consulta rechazada como falta de datos**: un cargo de funding cripto puede dejar la caja disponible por debajo de cero, y entonces la siguiente posición que quería la estrategia no cabía con ningún tamaño —ni siquiera con cero—, así que la ejecución abortaba con "planned order … exceeds available capital" (o "insufficient capital for position rebalance"). Ahora esa apertura se omite y se reporta una sola vez como `insufficient_capital`, las reducciones de la barra se ejecutan igual, y un cierre cuya pérdida supera su margen sigue abortando la barra como antes ([#1542](https://github.com/HKUDS/Vibe-Trading/issues/1542)). Operaciones en bloque, trading con margen y estados financieros ya distinguen que Eastmoney rechace una consulta obsoleta de una respuesta realmente vacía, con la misma comprobación que usan número de accionistas, dragon-tiger y desbloqueos. Las respuestas en español, alemán y otros idiomas con coma decimal ya contrastan `17,93 %` o `1.410,00 CNY` con los resultados de las herramientas, mientras dos números sin espacio como `1400,1777` siguen siendo dos, y una cifra debe coincidir con su evidencia a la precisión con que se escribe ([#1517](https://github.com/HKUDS/Vibe-Trading/pull/1517)). ¡Gracias [@turtle696966969696](https://github.com/turtle696966969696) por una traza cuadrada al céntimo, y a [@zeus229](https://github.com/zeus229)!
- **2026-09-21** 🔌 **Canales IM configurables desde la Web UI y 24 alphas que emitían un valor calculado con una barra ausente**: Settings ahora edita cada canal IM con secretos enmascarados, prueba de conexión sobre el formulario sin guardar y aplicación en caliente por canal sin reiniciar; DingTalk y QQ incluyen configuración guiada ([#1520](https://github.com/HKUDS/Vibe-Trading/pull/1520), [#1529](https://github.com/HKUDS/Vibe-Trading/pull/1529)), y todos los adaptadores vuelven a registrar con logging de stdlib, así que los diagnósticos que se tragaba un marcador `{}` llegan al log ([#1533](https://github.com/HKUDS/Vibe-Trading/pull/1533)). En el Alpha Zoo, una comparación con un operando que es NaN porque su ventana contiene una barra ausente da False y emite una constante; el barrido de #1463, que movía la barra un tick, no podía verlo. Comparar la serie con hueco y sin él encontró 24 alphas más, que ahora enmascaran según el alcance de sus entradas, mientras una correlación indefinida con datos completos conserva su veredicto ([#1523](https://github.com/HKUDS/Vibe-Trading/pull/1523), [#1534](https://github.com/HKUDS/Vibe-Trading/pull/1534), [#1463](https://github.com/HKUDS/Vibe-Trading/issues/1463)). **Datos:** el `free_shares` de un desbloqueo es la cantidad que se libera, no el capital flotante ([#1513](https://github.com/HKUDS/Vibe-Trading/pull/1513)); los puestos de dragon-tiger se clasifican dentro de cada motivo ([#1512](https://github.com/HKUDS/Vibe-Trading/pull/1512)); el número de accionistas devuelve periodos reales ([#1518](https://github.com/HKUDS/Vibe-Trading/pull/1518)); los precios de acciones A de Tencent, Eastmoney y AKShare se etiquetan con ajuste aditivo de dividendos ([#1497](https://github.com/HKUDS/Vibe-Trading/pull/1497)); Gildata se suma como fuente de acciones A con token ([#1474](https://github.com/HKUDS/Vibe-Trading/pull/1474)); las carteras valoran cualquier divisa ISO-4217 y, si falta un tipo de cambio, falla solo esa fuente ([#1510](https://github.com/HKUDS/Vibe-Trading/pull/1510)); `connector account` muestra los saldos de Binance, Futu y Trading 212 ([#1539](https://github.com/HKUDS/Vibe-Trading/issues/1539)). **Nuevo:** interfaz y README en bahasa indonesio ([#1482](https://github.com/HKUDS/Vibe-Trading/pull/1482)). **Eliminado:** el proveedor Requesty — usa `openrouter` con su URL base. ¡Gracias [@shadowinlife](https://github.com/shadowinlife), [@he-yufeng](https://github.com/he-yufeng), [@Shizoqua](https://github.com/Shizoqua), [@lorenzozanee](https://github.com/lorenzozanee), [@cgycorey](https://github.com/cgycorey), [@zeus229](https://github.com/zeus229), [@sambazhu](https://github.com/sambazhu), [@Yoruxyv](https://github.com/Yoruxyv) and [@jastincheis](https://github.com/jastincheis)!
- **2026-09-20** 🛠️ **Solicitudes de datos más claras y mejoras cotidianas**: las solicitudes mensuales `1M` ahora se rechazan explícitamente en lugar de devolver velas de un minuto sin avisar ([#1487](https://github.com/HKUDS/Vibe-Trading/pull/1487)); el soporte semanal y mensual sigue en [#1479](https://github.com/HKUDS/Vibe-Trading/issues/1479). La pantalla de bienvenida resalta la acción rápida seleccionada ([#1500](https://github.com/HKUDS/Vibe-Trading/pull/1500)), DingTalk sanea los nombres de los archivos descargados ([#1506](https://github.com/HKUDS/Vibe-Trading/pull/1506)), Signal conserva el texto alrededor de las menciones tras un emoji ([#1478](https://github.com/HKUDS/Vibe-Trading/pull/1478)) y las tablas de diferenciales de crédito unifican columnas de plazos equivalentes como `5` / `5.0` ([#1507](https://github.com/HKUDS/Vibe-Trading/pull/1507)).
+4 -2
View File
@@ -53,15 +53,17 @@
> ⚠️ **Peringatan keamanan:** Akun X `VibeTrading_HKU`, proyek Virtuals `101845`, dan kontrak token `0x640BDBF77b6447E8b7DB7894cED84BD1c40571f4` bukan aset resmi Vibe-Trading. Kami tidak pernah meluncurkan atau mendukung token maupun memecoin apa pun. Jangan membeli, menghubungkan wallet, atau menandatangani apa pun. [Detail](SECURITY.md#official-channels--impersonation).
- **2026-09-24** 💱 **Saham berdenominasi dolar yang dihitung dalam peso, Email dan WebSocket di Web UI, dan CI yang rusak karena pembaruan SDK**: BYMA dan TSX mencatatkan saham berdenominasi dolar AS di samping saham bermata uang lokal (GGALD.BA, DLR-U.TO), dan backtest Argentina atau Kanada menilainya dalam satu-satunya pool peso atau dolar Kanada. Loader kini hanya menerima saham yang dikutip dalam mata uang pasarnya, seperti yang sudah berlaku untuk saham LSE, dan mata uang kuotasi lain yang dideklarasikan sumber ikut terbawa bersama data sehingga jawaban menyebut mata uang yang benar ([#1576](https://github.com/HKUDS/Vibe-Trading/pull/1576)). Profil saham membawa bursa dan mata uang pencatatan itu sendiri di samping fundamental penerbit ([#1577](https://github.com/HKUDS/Vibe-Trading/pull/1577)), grounding dan pencarian simbol mengenali setiap pasar yang dirutekan lapisan data ([#1575](https://github.com/HKUDS/Vibe-Trading/pull/1575)), dan `technical_indicators` melaporkan volume beserta satuan yang dideklarasikan sumbernya — lot atau lembar saham, selisih 100× ([#1571](https://github.com/HKUDS/Vibe-Trading/pull/1571)). Email dan WebSocket bergabung ke pengaturan channel terpandu, dengan sertifikat server email kini diverifikasi dan penulisan pengaturan tertutup bagi halaman lintas situs ([#1544](https://github.com/HKUDS/Vibe-Trading/pull/1544)). **Diperbaiki:** header provider eksplisit yang kalah oleh header lingkungan bernama sama di openai 3.x dan sempat membuat CI setiap PR merah ([#1568](https://github.com/HKUDS/Vibe-Trading/pull/1568)); backtest dari sumber beresolusi mikrodetik yang bertanggal 1970 ([#1560](https://github.com/HKUDS/Vibe-Trading/pull/1560)); target riset yang jelas-jelas berupa order kembali ditolak ([#1562](https://github.com/HKUDS/Vibe-Trading/pull/1562)); pembagian OOS strict bench yang bisa membuat satu sisi kosong ([#1559](https://github.com/HKUDS/Vibe-Trading/pull/1559)); penyelarasan label HRP, urutan label validasi silang, dan input kuant yang tidak hingga ([#1555](https://github.com/HKUDS/Vibe-Trading/pull/1555), [#1556](https://github.com/HKUDS/Vibe-Trading/pull/1556), [#1557](https://github.com/HKUDS/Vibe-Trading/pull/1557), [#1558](https://github.com/HKUDS/Vibe-Trading/pull/1558)); jendela overtrading akun bayangan ([#1563](https://github.com/HKUDS/Vibe-Trading/pull/1563)); serta pertumbuhan aset yang dihitung hari ke hari ([#1564](https://github.com/HKUDS/Vibe-Trading/pull/1564)). Terima kasih [@Shizoqua](https://github.com/Shizoqua), [@zeus229](https://github.com/zeus229), dan [@shadowinlife](https://github.com/shadowinlife)!
- **2026-09-23** 🇦🇷 **Saham Argentina, buku short yang disizing terbalik, dan separuh terakhir gerbang risiko ekor**: simbol `.BA` — saham BYMA dan CEDEAR — dirutekan ke Yahoo sebagai pasar ARS sendiri, dan Web UI mengelompokkan serta melabelinya seperti pasar lain; backtest Argentina tetap gagal secara eksplisit sampai aturan eksekusi BYMA dimodelkan ([#1543](https://github.com/HKUDS/Vibe-Trading/pull/1543)). Optimizer mean-variance dan turnover-aware menilai setiap posisi seolah long, sehingga short terbaik mendapat modal paling sedikit. Keduanya kini disizing pada return posisi, di mana long dan short dua nama berkorelasi saling melindungi alih-alih terbaca berkorelasi — pada pasangan berkorelasi +0,92 objektif lama menaruh seluruh buku di long, yang baru membaginya 0,51 / -0,49 ([#1548](https://github.com/HKUDS/Vibe-Trading/pull/1548)). Selain itu, angka risiko ekor kini harus menyebut fieldnya sendiri begitu satu sesi memuat lebih dari satu ukuran atau tingkat keyakinan, sehingga ES 95% tidak bisa lagi mengutip nilai VaR 95% dengan id panggilan ([#1425](https://github.com/HKUDS/Vibe-Trading/issues/1425)). **Diperbaiki:** validasi Monte Carlo menyetahunkan dengan bar per tahun bursa, bukan 252 yang dipaku, sehingga Sharpe-nya sejalan dengan bagian lain laporan yang sama ([#1546](https://github.com/HKUDS/Vibe-Trading/pull/1546)); order futures pada bar berharga negatif tidak lagi ditolak seluruhnya ([#1547](https://github.com/HKUDS/Vibe-Trading/pull/1547)); IC ratio sebuah faktor dibiarkan kosong bila baseline-nya negatif, alih-alih membaca pelemahan nyata sebagai perbaikan ([#1549](https://github.com/HKUDS/Vibe-Trading/pull/1549)); dan dua memori dengan judul sama di tipe berbeda mempertahankan baris indeks serta target tautannya masing-masing ([#1545](https://github.com/HKUDS/Vibe-Trading/pull/1545)). Terima kasih [@zeus229](https://github.com/zeus229), [@Shizoqua](https://github.com/Shizoqua), dan [@he-yufeng](https://github.com/he-yufeng)!
- **2026-09-22** 📅 **Bar mingguan dan bulanan, serta replay setelah kompaksi yang bisa kehilangan bukti**: `get_market_data` dan backtest menerima `1W` dan `1M` (ditolak sejak 09-20 agar `1M` tidak mengambil bar satu menit). Setiap sumber tetap menyajikan bar harian dan bar periode dibangun darinya, bertanggal hari perdagangan terakhir dalam minggu atau bulan itu, sehingga tinjauan bulanan 21 bulan cukup satu panggilan berisi 21 bar ([#1479](https://github.com/HKUDS/Vibe-Trading/issues/1479)). Indeks harga kini ditandai tanpa penyesuaian, bukan menurut perlakuan sumbernya terhadap saham ([#1541](https://github.com/HKUDS/Vibe-Trading/issues/1541)). Hasil tool baca-saja yang dihapus oleh kompaksi konteks dipulihkan dari memori run itu sendiri alih-alih diambil ulang, dengan batas per run, dan setiap penulisan mengosongkan memori itu sehingga file yang dibuat ulang dibaca kembali ([#1488](https://github.com/HKUDS/Vibe-Trading/pull/1488)). Angka risiko ekor yang dideklarasikan dengan ref field dicocokkan dengan field itu, sehingga VaR 99% yang memakai nilai 95% tertangkap ([#1444](https://github.com/HKUDS/Vibe-Trading/pull/1444)). QVeris menolak bar saham dan ETF, yang penyesuaiannya tidak bisa dinyatakan oleh sumber pilihan peringkat pencariannya, serta kuotasi per hasil ([#1494](https://github.com/HKUDS/Vibe-Trading/issues/1494)). Terima kasih [@sambazhu](https://github.com/sambazhu), [@zeus229](https://github.com/zeus229), [@he-yufeng](https://github.com/he-yufeng), [@jw232](https://github.com/jw232) and [@cgycorey](https://github.com/cgycorey)!
- **2026-09-22** 💸 **Backtest yang berhenti saat funding membuat kas negatif, dan tiga tool lain yang membaca query yang ditolak sebagai tidak ada data**: potongan funding kripto dapat membuat kas tersedia di bawah nol, lalu posisi berikutnya yang diinginkan strategi tidak muat di ukuran apa pun — bahkan nol — sehingga run berhenti dengan "planned order … exceeds available capital" (atau "insufficient capital for position rebalance"). Kini pembukaan itu dilewati dan dilaporkan sekali sebagai `insufficient_capital`, pengurangan pada bar yang sama tetap dijalankan, dan penutupan yang kerugiannya melebihi margin tetap membatalkan bar seperti sebelumnya ([#1542](https://github.com/HKUDS/Vibe-Trading/issues/1542)). Block trade, margin trading, dan laporan keuangan kini membedakan penolakan Eastmoney atas query usang dari jawaban yang memang kosong, dengan pemeriksaan yang sama seperti jumlah pemegang saham, dragon-tiger, dan lockup expiry. Jawaban dalam bahasa Spanyol, Jerman, dan bahasa lain yang memakai koma desimal kini mencocokkan `17,93 %` atau `1.410,00 CNY` dengan hasil tool, sementara dua angka tanpa spasi seperti `1400,1777` tetap dua angka, dan sebuah angka harus cocok dengan buktinya pada presisi yang ditulis ([#1517](https://github.com/HKUDS/Vibe-Trading/pull/1517)). Terima kasih [@turtle696966969696](https://github.com/turtle696966969696) atas trace yang cocok hingga sen, dan [@zeus229](https://github.com/zeus229)!
<details>
<summary>Berita sebelumnya</summary>
- **2026-09-22** 💸 **Backtest yang berhenti saat funding membuat kas negatif, dan tiga tool lain yang membaca query yang ditolak sebagai tidak ada data**: potongan funding kripto dapat membuat kas tersedia di bawah nol, lalu posisi berikutnya yang diinginkan strategi tidak muat di ukuran apa pun — bahkan nol — sehingga run berhenti dengan "planned order … exceeds available capital" (atau "insufficient capital for position rebalance"). Kini pembukaan itu dilewati dan dilaporkan sekali sebagai `insufficient_capital`, pengurangan pada bar yang sama tetap dijalankan, dan penutupan yang kerugiannya melebihi margin tetap membatalkan bar seperti sebelumnya ([#1542](https://github.com/HKUDS/Vibe-Trading/issues/1542)). Block trade, margin trading, dan laporan keuangan kini membedakan penolakan Eastmoney atas query usang dari jawaban yang memang kosong, dengan pemeriksaan yang sama seperti jumlah pemegang saham, dragon-tiger, dan lockup expiry. Jawaban dalam bahasa Spanyol, Jerman, dan bahasa lain yang memakai koma desimal kini mencocokkan `17,93 %` atau `1.410,00 CNY` dengan hasil tool, sementara dua angka tanpa spasi seperti `1400,1777` tetap dua angka, dan sebuah angka harus cocok dengan buktinya pada presisi yang ditulis ([#1517](https://github.com/HKUDS/Vibe-Trading/pull/1517)). Terima kasih [@turtle696966969696](https://github.com/turtle696966969696) atas trace yang cocok hingga sen, dan [@zeus229](https://github.com/zeus229)!
- **2026-09-21** 🔌 **Channel IM dikonfigurasi dari Web UI, dan 24 alpha yang mengeluarkan nilai dari bar yang hilang**: Settings kini mengedit setiap channel IM dengan secret yang disamarkan, uji koneksi pada formulir yang belum disimpan, dan hot apply per channel tanpa restart; DingTalk dan QQ mendapat setup terpandu ([#1520](https://github.com/HKUDS/Vibe-Trading/pull/1520), [#1529](https://github.com/HKUDS/Vibe-Trading/pull/1529)), dan semua adapter kembali memakai logging stdlib sehingga diagnostik yang dulu hilang karena placeholder `{}` masuk ke log ([#1533](https://github.com/HKUDS/Vibe-Trading/pull/1533)). Di Alpha Zoo, perbandingan dengan operand yang NaN karena jendelanya memuat bar yang hilang bernilai False dan mengeluarkan konstanta; sweep #1463, yang menggeser bar satu tick, tidak dapat melihatnya. Perbandingan deret ber-gap dengan deret lengkap menemukan 24 alpha lagi, yang kini di-mask berdasarkan jangkauan input-nya, sementara korelasi yang tidak terdefinisi pada data lengkap mempertahankan putusan lamanya ([#1523](https://github.com/HKUDS/Vibe-Trading/pull/1523), [#1534](https://github.com/HKUDS/Vibe-Trading/pull/1534), [#1463](https://github.com/HKUDS/Vibe-Trading/issues/1463)). **Data:** `free_shares` pada lockup kini adalah jumlah saham yang dibuka, bukan saham beredar ([#1513](https://github.com/HKUDS/Vibe-Trading/pull/1513)); kursi dragon-tiger diurutkan per alasan listing ([#1512](https://github.com/HKUDS/Vibe-Trading/pull/1512)); jumlah pemegang saham mengembalikan periode historis yang nyata ([#1518](https://github.com/HKUDS/Vibe-Trading/pull/1518)); harga A-share dari Tencent, Eastmoney, dan AKShare diberi label penyesuaian dividen aditif ([#1497](https://github.com/HKUDS/Vibe-Trading/pull/1497)); Gildata bergabung sebagai sumber A-share berbasis token ([#1474](https://github.com/HKUDS/Vibe-Trading/pull/1474)); portofolio menilai mata uang ISO-4217 apa pun dan hanya sumber terkait yang gagal jika kurs tidak tersedia ([#1510](https://github.com/HKUDS/Vibe-Trading/pull/1510)); `connector account` menampilkan saldo Binance, Futu, dan Trading 212 ([#1539](https://github.com/HKUDS/Vibe-Trading/issues/1539)). **Baru:** UI dan README berbahasa Indonesia ([#1482](https://github.com/HKUDS/Vibe-Trading/pull/1482)). **Dihapus:** provider Requesty — arahkan `openrouter` ke base URL-nya. Terima kasih [@shadowinlife](https://github.com/shadowinlife), [@he-yufeng](https://github.com/he-yufeng), [@Shizoqua](https://github.com/Shizoqua), [@lorenzozanee](https://github.com/lorenzozanee), [@cgycorey](https://github.com/cgycorey), [@zeus229](https://github.com/zeus229), [@sambazhu](https://github.com/sambazhu), [@Yoruxyv](https://github.com/Yoruxyv) and [@jastincheis](https://github.com/jastincheis)!
- **2026-09-20** 🛠️ **Request data yang lebih jelas dan perbaikan sehari-hari**: request bulanan `1M` sekarang ditolak secara eksplisit alih-alih diam-diam mengambil bar satu menit ([#1487](https://github.com/HKUDS/Vibe-Trading/pull/1487)); dukungan interval weekly/monthly tetap dilacak di [#1479](https://github.com/HKUDS/Vibe-Trading/issues/1479). Welcome quick actions sekarang menyorot chip yang dipilih ([#1500](https://github.com/HKUDS/Vibe-Trading/pull/1500)), DingTalk menyanitasi nama file yang diunduh ([#1506](https://github.com/HKUDS/Vibe-Trading/pull/1506)), Signal mempertahankan teks di sekitar mention setelah emoji ([#1478](https://github.com/HKUDS/Vibe-Trading/pull/1478)), dan tabel credit spread menggabungkan kolom tenor `5` / `5.0` yang ekuivalen ([#1507](https://github.com/HKUDS/Vibe-Trading/pull/1507)).
+4 -2
View File
@@ -52,15 +52,17 @@
> ⚠️ **セキュリティ警告:** Xアカウント `VibeTrading_HKU`、Virtualsプロジェクト `101845`、およびトークンコントラクト `0x640BDBF77b6447E8b7DB7894cED84BD1c40571f4` は、いずれもVibe-Trading公式のものではありません。Vibe-Tradingはこれまで、いかなるトークンやミームコインも発行・公認していません。購入、ウォレットの接続、署名は行わないでください。[詳細](SECURITY.md#official-channels--impersonation)
- **2026-09-24** 💱 **ペソで計上されていたドル建て銘柄、Web UI に加わった Email と WebSocket、そして SDK 更新による CI 障害**:BYMA とトロント証券取引所には自国通貨建てに加えて米ドル建ての銘柄(GGALD.BA、DLR-U.TO)があり、アルゼンチンやカナダのバックテストはそれらを単一のペソ/カナダドルのプールで評価していました。ローダーは市場の通貨で建値された銘柄だけを受け入れるようになり(LSE 銘柄と同じ規則)、それ以外に申告された建値通貨はデータとともに渡されるため、回答には正しい通貨が書かれます([#1576](https://github.com/HKUDS/Vibe-Trading/pull/1576))。銘柄プロファイルは発行体のファンダメンタルズとは別に、その上場銘柄自身の取引所と通貨を返し([#1577](https://github.com/HKUDS/Vibe-Trading/pull/1577))、グラウンディングと銘柄検索はデータ層が扱うすべての市場を認識し([#1575](https://github.com/HKUDS/Vibe-Trading/pull/1575))、`technical_indicators` は出来高をデータソースが申告する単位(単元か株か、100 倍違う)付きで返します([#1571](https://github.com/HKUDS/Vibe-Trading/pull/1571))。Email と WebSocket がガイド付きチャネル設定に加わり、メールサーバー証明書の検証と、クロスサイトのページからの設定書き込みの拒否も入りました([#1544](https://github.com/HKUDS/Vibe-Trading/pull/1544))。**修正:** openai 3.x で明示したプロバイダーヘッダーが環境側の同名ヘッダーに負け、全 PR の CI が赤くなっていた問題([#1568](https://github.com/HKUDS/Vibe-Trading/pull/1568))、マイクロ秒精度のソースからのバックテストが 1970 年の日付になっていた問題([#1560](https://github.com/HKUDS/Vibe-Trading/pull/1560))、明らかに注文である研究ゴールを再び拒否([#1562](https://github.com/HKUDS/Vibe-Trading/pull/1562))、strict bench の OOS 分割で片側が空になりうる問題([#1559](https://github.com/HKUDS/Vibe-Trading/pull/1559))、HRP のラベル整列・交差検証のラベル順序・非有限な入力([#1555](https://github.com/HKUDS/Vibe-Trading/pull/1555)、[#1556](https://github.com/HKUDS/Vibe-Trading/pull/1556)、[#1557](https://github.com/HKUDS/Vibe-Trading/pull/1557)、[#1558](https://github.com/HKUDS/Vibe-Trading/pull/1558))、シャドーアカウントの過剰取引の期間([#1563](https://github.com/HKUDS/Vibe-Trading/pull/1563))、日次で比較されていた総資産成長率([#1564](https://github.com/HKUDS/Vibe-Trading/pull/1564))。[@Shizoqua](https://github.com/Shizoqua)、[@zeus229](https://github.com/zeus229)、[@shadowinlife](https://github.com/shadowinlife) に感謝します!
- **2026-09-23** 🇦🇷 **アルゼンチン銘柄、逆向きにサイズされていたショート、そしてテールリスク・ゲートの残り半分**:`.BA`(BYMA 株式と CEDEAR)は独自の ARS 市場として Yahoo に接続され、Web UI でも他の市場と同じように分類・表示されます。BYMA の執行ルールをモデル化するまで、アルゼンチンのバックテストは他市場の仮定を流用せず明示的に失敗します([#1543](https://github.com/HKUDS/Vibe-Trading/pull/1543))。平均分散型と回転率考慮型のオプティマイザはすべてのポジションをロングとして評価していたため、最良のショートに最も少ない資金しか配分されませんでした。どちらもポジション収益でサイズを決めるようになり、相関する 2 銘柄のロングとショートは相関ではなくヘッジとして読まれます(相関 +0.92 の組で、旧目的関数はロングに全額、新しい配分は 0.51 / -0.49)([#1548](https://github.com/HKUDS/Vibe-Trading/pull/1548))。さらに、1 つのセッションが複数のテールリスク指標(VaR と ES、95% と 99%)を保持した時点で、テールリスクの数値は自分のフィールドを明示しなければならず、ES 95% が VaR 95% の値を借りることはできません([#1425](https://github.com/HKUDS/Vibe-Trading/issues/1425))。**修正:**モンテカルロ検証は 252 固定ではなく取引所の年間バー数で年率化し、同じレポート内のシャープと矛盾しなくなりました([#1546](https://github.com/HKUDS/Vibe-Trading/pull/1546))。負値バーでの先物発注が一律に拒否されなくなりました([#1547](https://github.com/HKUDS/Vibe-Trading/pull/1547))。ベースライン IC が負の場合、ファクターの IC ratio は未設定になり、実際の劣化が健全な改善として読まれることはありません([#1549](https://github.com/HKUDS/Vibe-Trading/pull/1549))。タイトルが同じでタイプが異なる 2 つのメモリは、それぞれの索引行とリンク先を保ちます([#1545](https://github.com/HKUDS/Vibe-Trading/pull/1545))。[@zeus229](https://github.com/zeus229)、[@Shizoqua](https://github.com/Shizoqua)、[@he-yufeng](https://github.com/he-yufeng) に感謝します!
- **2026-09-22** 📅 **週足・月足、そしてコンテキスト圧縮後に証拠を失いかねなかったリプレイ**:`get_market_data` とバックテストが `1W` と `1M` を受け付けます(09-20 以降、`1M` が 1 分足として取得されないよう拒否していたもの)。どのソースも引き続き日足を返し、週・月のバーはそこから組み立て、その週または月の最終取引日の日付を付けるので、21 か月の月次レビューは 1 回の呼び出しで 21 本になります([#1479](https://github.com/HKUDS/Vibe-Trading/issues/1479))。価格指数は、ソースが個別株に施す調整ではなく未調整として記録されます([#1541](https://github.com/HKUDS/Vibe-Trading/issues/1541))。コンテキスト圧縮で消えた読み取り専用ツールの結果は、再取得せずその実行自身のメモリから復元します。実行ごとに上限があり、書き込みがあればメモリを空にするので、再生成したファイルは読み直されます([#1488](https://github.com/HKUDS/Vibe-Trading/pull/1488))。フィールド ref 付きで宣言したテールリスクの数値はそのフィールドと照合され、95% の値を VaR 99% として書くと検出されます([#1444](https://github.com/HKUDS/Vibe-Trading/pull/1444))。QVeris は、検索順位で選ぶ提供元では調整方法を示せない個別株・ETF のバーと、結果単位で課金される見積もりを拒否します([#1494](https://github.com/HKUDS/Vibe-Trading/issues/1494))。[@sambazhu](https://github.com/sambazhu), [@zeus229](https://github.com/zeus229), [@he-yufeng](https://github.com/he-yufeng), [@jw232](https://github.com/jw232) and [@cgycorey](https://github.com/cgycorey) に感謝します!
- **2026-09-22** 💸 **資金調達費で現金がマイナスになるとバックテストが停止していた問題、そして拒否されたクエリを「データなし」と読んでいた 3 つのツール**:暗号資産の資金調達費で利用可能な現金がマイナスになると、次に建てたいポジションはどのサイズでも(ゼロでさえ)収まらず、実行は「planned order … exceeds available capital」(または「insufficient capital for position rebalance」)で停止していました。現在はその新規建てをスキップして `insufficient_capital` として一度だけ記録し、同じバーの縮小は実行されます。損失が証拠金を上回る決済は従来どおりバーごと中止します([#1542](https://github.com/HKUDS/Vibe-Trading/issues/1542))。大口取引・信用取引・財務諸表も、Eastmoney が古いクエリを拒否した場合と本当に空の場合を区別するようになり、株主数・龍虎榜・ロックアップ解除と同じ判定を使います。スペイン語やドイツ語など小数点にカンマを使う回答でも、`17,93 %` や `1.410,00 CNY` をツール結果と照合できるようになりました。一方 `1400,1777` のように空白のない 2 つの数は 2 つの数のまま扱い、数値は書かれた精度で根拠と一致する必要があります([#1517](https://github.com/HKUDS/Vibe-Trading/pull/1517))。セント単位まで照合した再現をくださった [@turtle696966969696](https://github.com/turtle696966969696)、そして [@zeus229](https://github.com/zeus229) に感謝します!
<details>
<summary>過去のニュース</summary>
- **2026-09-22** 💸 **資金調達費で現金がマイナスになるとバックテストが停止していた問題、そして拒否されたクエリを「データなし」と読んでいた 3 つのツール**:暗号資産の資金調達費で利用可能な現金がマイナスになると、次に建てたいポジションはどのサイズでも(ゼロでさえ)収まらず、実行は「planned order … exceeds available capital」(または「insufficient capital for position rebalance」)で停止していました。現在はその新規建てをスキップして `insufficient_capital` として一度だけ記録し、同じバーの縮小は実行されます。損失が証拠金を上回る決済は従来どおりバーごと中止します([#1542](https://github.com/HKUDS/Vibe-Trading/issues/1542))。大口取引・信用取引・財務諸表も、Eastmoney が古いクエリを拒否した場合と本当に空の場合を区別するようになり、株主数・龍虎榜・ロックアップ解除と同じ判定を使います。スペイン語やドイツ語など小数点にカンマを使う回答でも、`17,93 %` や `1.410,00 CNY` をツール結果と照合できるようになりました。一方 `1400,1777` のように空白のない 2 つの数は 2 つの数のまま扱い、数値は書かれた精度で根拠と一致する必要があります([#1517](https://github.com/HKUDS/Vibe-Trading/pull/1517))。セント単位まで照合した再現をくださった [@turtle696966969696](https://github.com/turtle696966969696)、そして [@zeus229](https://github.com/zeus229) に感謝します!
- **2026-09-21** 🔌 **IM チャネルを Web UI で設定可能に、欠損バーから値を出していた 24 個の alpha を修正**:Settings で各 IM チャネルを編集できるようになりました。シークレットはマスク表示、未保存のフォームでも接続テストが可能、保存はそのチャネルだけをホットスワップし再起動は不要です。DingTalk と QQ にはガイド付きセットアップがあります([#1520](https://github.com/HKUDS/Vibe-Trading/pull/1520)、[#1529](https://github.com/HKUDS/Vibe-Trading/pull/1529))。全アダプターが stdlib のロギングに戻り、`{}` プレースホルダーで失われていた診断がログに届きます([#1533](https://github.com/HKUDS/Vibe-Trading/pull/1533))。Alpha Zoo では、ウィンドウに欠損バーを含むために NaN になったオペランドとの比較が False となり定数を出力していました。バーを 1 tick 動かす #1463 のスイープではこれを検出できません。欠損あり/なしの比較で新たに 24 個が見つかり、入力の参照範囲でマスクするよう修正しました。完全なデータで未定義となる相関は従来の判定を保ちます([#1523](https://github.com/HKUDS/Vibe-Trading/pull/1523)、[#1534](https://github.com/HKUDS/Vibe-Trading/pull/1534)、[#1463](https://github.com/HKUDS/Vibe-Trading/issues/1463))。**データ:**ロックアップの `free_shares` は流通株数ではなく解除数量に([#1513](https://github.com/HKUDS/Vibe-Trading/pull/1513))、龍虎榜の席位は上榜理由ごとに順位付け([#1512](https://github.com/HKUDS/Vibe-Trading/pull/1512))、株主数は実際の履歴期間を返却([#1518](https://github.com/HKUDS/Vibe-Trading/pull/1518))、Tencent・Eastmoney・AKShare の A 株前復権は配当加算調整と明記([#1497](https://github.com/HKUDS/Vibe-Trading/pull/1497))、Gildata をトークン制の A 株ソースとして追加([#1474](https://github.com/HKUDS/Vibe-Trading/pull/1474))、ポートフォリオは任意の ISO-4217 通貨に対応し為替欠落時はそのソースだけを失敗扱いに([#1510](https://github.com/HKUDS/Vibe-Trading/pull/1510))、`connector account` が Binance・Futu・Trading 212 の残高を表示([#1539](https://github.com/HKUDS/Vibe-Trading/issues/1539))。**新規:**インドネシア語の UI と README([#1482](https://github.com/HKUDS/Vibe-Trading/pull/1482))。**削除:**Requesty プロバイダー(`openrouter` にそのベース URL を指定してください)。[@shadowinlife](https://github.com/shadowinlife), [@he-yufeng](https://github.com/he-yufeng), [@Shizoqua](https://github.com/Shizoqua), [@lorenzozanee](https://github.com/lorenzozanee), [@cgycorey](https://github.com/cgycorey), [@zeus229](https://github.com/zeus229), [@sambazhu](https://github.com/sambazhu), [@Yoruxyv](https://github.com/Yoruxyv) and [@jastincheis](https://github.com/jastincheis) に感謝します!
- **2026-09-20** 🛠️ **データ要求の明確化と日常操作の修正**:月足を指定する `1M` は、誤って1分足を取得する代わりに未対応として明示的に拒否します([#1487](https://github.com/HKUDS/Vibe-Trading/pull/1487))。週足・月足対応は引き続き [#1479](https://github.com/HKUDS/Vibe-Trading/issues/1479) で追跡しています。ウェルカム画面では選択したクイックアクションを強調表示([#1500](https://github.com/HKUDS/Vibe-Trading/pull/1500))、DingTalkではダウンロード名のパス文字を無害化([#1506](https://github.com/HKUDS/Vibe-Trading/pull/1506))。Signalでは絵文字の後のメンション周辺の文字を保持し([#1478](https://github.com/HKUDS/Vibe-Trading/pull/1478))、信用スプレッド表では `5` / `5.0` のような同一期限を一列に統合します([#1507](https://github.com/HKUDS/Vibe-Trading/pull/1507))。
+4 -2
View File
@@ -52,15 +52,17 @@
> ⚠️ **보안 경고:** X 계정 `VibeTrading_HKU`, Virtuals 프로젝트 `101845`, 토큰 컨트랙트 `0x640BDBF77b6447E8b7DB7894cED84BD1c40571f4`는 모두 Vibe-Trading 공식과 무관합니다. Vibe-Trading은 어떠한 토큰이나 밈코인도 발행하거나 공식적으로 지지한 적이 없습니다. 해당 토큰을 구매하거나 지갑을 연결하거나 어떠한 서명도 하지 마세요. [자세히 보기](SECURITY.md#official-channels--impersonation).
- **2026-09-24** 💱 **페소로 계산되던 달러 종목, Web UI에 들어온 Email과 WebSocket, 그리고 SDK 업데이트로 깨진 CI**: BYMA와 토론토 증권거래소에는 자국 통화 종목 옆에 미국 달러 종목(GGALD.BA, DLR-U.TO)도 상장되어 있는데, 아르헨티나·캐나다 백테스트는 이를 하나뿐인 페소·캐나다 달러 풀에서 평가했습니다. 이제 로더는 해당 시장 통화로 호가되는 종목만 받아들이고(LSE 종목과 같은 규칙), 그 밖에 소스가 선언한 호가 통화는 데이터와 함께 전달되어 답변에 올바른 통화가 적힙니다([#1576](https://github.com/HKUDS/Vibe-Trading/pull/1576)). 종목 프로필은 발행사 펀더멘털과 별도로 해당 상장 종목의 거래소와 통화를 담고([#1577](https://github.com/HKUDS/Vibe-Trading/pull/1577)), 그라운딩과 종목 검색은 데이터 계층이 다루는 모든 시장을 인식하며([#1575](https://github.com/HKUDS/Vibe-Trading/pull/1575)), `technical_indicators`는 거래량을 소스가 선언한 단위(매매 단위 lot 또는 주, 100배 차이)와 함께 반환합니다([#1571](https://github.com/HKUDS/Vibe-Trading/pull/1571)). Email과 WebSocket이 가이드형 채널 설정에 합류했고, 메일 서버 인증서를 검증하며 크로스사이트 페이지의 설정 쓰기를 막습니다([#1544](https://github.com/HKUDS/Vibe-Trading/pull/1544)). **수정:** openai 3.x에서 명시한 provider 헤더가 환경 변수의 같은 이름 헤더에 밀려 모든 PR의 CI가 빨갛게 되던 문제([#1568](https://github.com/HKUDS/Vibe-Trading/pull/1568)), 마이크로초 해상도 소스의 백테스트가 1970년으로 찍히던 문제([#1560](https://github.com/HKUDS/Vibe-Trading/pull/1560)), 명백한 주문인 리서치 목표를 다시 거부([#1562](https://github.com/HKUDS/Vibe-Trading/pull/1562)), strict bench의 OOS 분할이 한쪽을 비울 수 있던 문제([#1559](https://github.com/HKUDS/Vibe-Trading/pull/1559)), HRP 라벨 정렬·교차검증 라벨 순서·유한하지 않은 퀀트 입력([#1555](https://github.com/HKUDS/Vibe-Trading/pull/1555), [#1556](https://github.com/HKUDS/Vibe-Trading/pull/1556), [#1557](https://github.com/HKUDS/Vibe-Trading/pull/1557), [#1558](https://github.com/HKUDS/Vibe-Trading/pull/1558)), 섀도 계정의 과잉 매매 기간([#1563](https://github.com/HKUDS/Vibe-Trading/pull/1563)), 일 단위로 계산되던 자산 성장률([#1564](https://github.com/HKUDS/Vibe-Trading/pull/1564)). [@Shizoqua](https://github.com/Shizoqua), [@zeus229](https://github.com/zeus229), [@shadowinlife](https://github.com/shadowinlife) 님 감사합니다!
- **2026-09-23** 🇦🇷 **아르헨티나 종목, 거꾸로 사이징되던 숏 북, 그리고 테일리스크 게이트의 마지막 절반**: `.BA`(BYMA 주식과 CEDEAR)는 자체 ARS 시장으로 Yahoo에 연결되고 웹 UI도 다른 시장과 같이 묶어 표시합니다. BYMA 체결 규칙을 모델링하기 전까지 아르헨티나 백테스트는 다른 시장의 가정을 빌리지 않고 명시적으로 실패합니다([#1543](https://github.com/HKUDS/Vibe-Trading/pull/1543)). 평균-분산 및 회전율 고려 옵티마이저가 모든 포지션을 롱으로 평가해 가장 좋은 숏에 자본이 가장 적게 배분됐습니다. 이제 둘 다 포지션 수익으로 사이징하므로, 상관된 두 종목의 롱과 숏은 상관이 아니라 헤지로 읽힙니다(상관 +0.92인 쌍에서 기존 목적함수는 전액을 롱에, 새 방식은 0.51 / -0.49로 배분)([#1548](https://github.com/HKUDS/Vibe-Trading/pull/1548)). 또한 한 세션이 두 개 이상의 테일리스크 측정치(VaR와 ES, 95%와 99%)를 보유하면 테일리스크 수치는 자신의 필드를 지정해야 하며, ES 95%가 VaR 95% 값을 빌려 쓸 수 없습니다([#1425](https://github.com/HKUDS/Vibe-Trading/issues/1425)). **수정:** 몬테카를로 검증이 하드코딩된 252가 아니라 거래소의 연간 바 수로 연율화해 같은 리포트의 샤프와 어긋나지 않습니다([#1546](https://github.com/HKUDS/Vibe-Trading/pull/1546)). 음수 가격 바에서 선물 주문이 전부 거부되지 않습니다([#1547](https://github.com/HKUDS/Vibe-Trading/pull/1547)). 베이스라인 IC가 음수면 팩터의 IC ratio를 비워 두어 실제 감쇠를 건강한 개선으로 읽지 않습니다([#1549](https://github.com/HKUDS/Vibe-Trading/pull/1549)). 제목이 같고 타입이 다른 두 메모리는 각자의 색인 행과 링크 대상을 유지합니다([#1545](https://github.com/HKUDS/Vibe-Trading/pull/1545)). [@zeus229](https://github.com/zeus229), [@Shizoqua](https://github.com/Shizoqua), [@he-yufeng](https://github.com/he-yufeng) 님 감사합니다!
- **2026-09-22** 📅 **주봉과 월봉, 그리고 컨텍스트 압축 뒤 증거를 잃을 수 있던 리플레이**: `get_market_data`와 백테스트가 `1W`와 `1M`을 받습니다(09-20부터 `1M`이 1분봉으로 조회되지 않도록 거부하던 값입니다). 모든 소스는 여전히 일봉을 제공하고 주·월 봉은 그 일봉으로 만들며, 각 봉에는 그 주 또는 그 달의 마지막 거래일 날짜가 붙어 21개월 월간 리뷰가 한 번의 호출로 21개 봉이 됩니다([#1479](https://github.com/HKUDS/Vibe-Trading/issues/1479)). 가격 지수는 소스가 개별 종목에 적용하는 조정이 아니라 무조정으로 표시됩니다([#1541](https://github.com/HKUDS/Vibe-Trading/issues/1541)). 컨텍스트 압축으로 지워진 읽기 전용 도구 결과는 다시 가져오지 않고 그 실행의 메모리에서 복원하며, 실행당 상한이 있고 쓰기가 있으면 메모리를 비워 다시 만든 파일을 새로 읽습니다([#1488](https://github.com/HKUDS/Vibe-Trading/pull/1488)). 필드 ref로 선언한 꼬리 위험 수치는 그 필드와 대조되어, 95% 값을 VaR 99%로 쓰면 걸러집니다([#1444](https://github.com/HKUDS/Vibe-Trading/pull/1444)). QVeris는 검색 순위로 고른 소스가 조정 방식을 밝힐 수 없는 개별 종목·ETF 봉과, 결과 단위로 과금되는 견적을 거부합니다([#1494](https://github.com/HKUDS/Vibe-Trading/issues/1494)). [@sambazhu](https://github.com/sambazhu), [@zeus229](https://github.com/zeus229), [@he-yufeng](https://github.com/he-yufeng), [@jw232](https://github.com/jw232) and [@cgycorey](https://github.com/cgycorey)에게 감사드립니다!
- **2026-09-22** 💸 **펀딩비로 현금이 마이너스가 되면 멈추던 백테스트, 그리고 거부된 쿼리를 "데이터 없음"으로 읽던 도구 3개**: 암호화폐 펀딩비 차감으로 가용 현금이 0 아래로 내려가면, 전략이 원한 다음 포지션은 어떤 크기로도(0조차) 맞지 않아 실행이 "planned order … exceeds available capital"(또는 "insufficient capital for position rebalance")로 중단됐습니다. 이제 그 신규 진입은 건너뛰고 `insufficient_capital`로 한 번만 기록하며, 같은 봉의 축소는 그대로 실행됩니다. 손실이 증거금을 넘는 청산은 이전처럼 해당 봉 전체를 중단합니다([#1542](https://github.com/HKUDS/Vibe-Trading/issues/1542)). 블록딜, 신용거래, 재무제표도 이제 Eastmoney가 오래된 쿼리를 거부한 경우와 실제로 비어 있는 경우를 구분하며, 주주 수·룽후방·보호예수 해제와 같은 판정을 사용합니다. 스페인어·독일어 등 소수점에 쉼표를 쓰는 답변도 이제 `17,93 %`, `1.410,00 CNY`를 도구 결과와 대조하며, `1400,1777`처럼 공백 없는 두 숫자는 두 숫자로 유지하고, 수치는 적힌 정밀도대로 근거와 일치해야 합니다([#1517](https://github.com/HKUDS/Vibe-Trading/pull/1517)). 센트 단위까지 맞춘 재현을 제공해 주신 [@turtle696966969696](https://github.com/turtle696966969696)님과 [@zeus229](https://github.com/zeus229)님께 감사드립니다!
<details>
<summary>이전 뉴스</summary>
- **2026-09-22** 💸 **펀딩비로 현금이 마이너스가 되면 멈추던 백테스트, 그리고 거부된 쿼리를 "데이터 없음"으로 읽던 도구 3개**: 암호화폐 펀딩비 차감으로 가용 현금이 0 아래로 내려가면, 전략이 원한 다음 포지션은 어떤 크기로도(0조차) 맞지 않아 실행이 "planned order … exceeds available capital"(또는 "insufficient capital for position rebalance")로 중단됐습니다. 이제 그 신규 진입은 건너뛰고 `insufficient_capital`로 한 번만 기록하며, 같은 봉의 축소는 그대로 실행됩니다. 손실이 증거금을 넘는 청산은 이전처럼 해당 봉 전체를 중단합니다([#1542](https://github.com/HKUDS/Vibe-Trading/issues/1542)). 블록딜, 신용거래, 재무제표도 이제 Eastmoney가 오래된 쿼리를 거부한 경우와 실제로 비어 있는 경우를 구분하며, 주주 수·룽후방·보호예수 해제와 같은 판정을 사용합니다. 스페인어·독일어 등 소수점에 쉼표를 쓰는 답변도 이제 `17,93 %`, `1.410,00 CNY`를 도구 결과와 대조하며, `1400,1777`처럼 공백 없는 두 숫자는 두 숫자로 유지하고, 수치는 적힌 정밀도대로 근거와 일치해야 합니다([#1517](https://github.com/HKUDS/Vibe-Trading/pull/1517)). 센트 단위까지 맞춘 재현을 제공해 주신 [@turtle696966969696](https://github.com/turtle696966969696)님과 [@zeus229](https://github.com/zeus229)님께 감사드립니다!
- **2026-09-21** 🔌 **Web UI에서 IM 채널 설정, 누락된 봉으로 값을 내던 알파 24개 수정**: Settings에서 IM 채널을 하나씩 편집할 수 있습니다. 시크릿은 마스킹되고, 저장 전 폼 값으로 연결을 테스트할 수 있으며, 저장 시 해당 채널만 재시작 없이 핫스왑됩니다. DingTalk과 QQ는 단계별 설정 가이드를 제공합니다([#1520](https://github.com/HKUDS/Vibe-Trading/pull/1520), [#1529](https://github.com/HKUDS/Vibe-Trading/pull/1529)). 모든 어댑터가 다시 stdlib 로깅을 사용해 `{}` 플레이스홀더에 묻히던 진단이 로그에 남습니다([#1533](https://github.com/HKUDS/Vibe-Trading/pull/1533)). Alpha Zoo에서는 윈도우에 누락된 봉이 있어 NaN이 된 피연산자와의 비교가 False가 되어 상수를 출력했습니다. 봉을 1틱 움직여 보던 #1463 스윕으로는 보이지 않던 문제입니다. 결측 유무 비교로 24개를 더 찾았고, 이제 입력의 참조 범위로 마스킹하며 완전한 데이터에서 정의되지 않는 상관계수는 기존 판정을 유지합니다([#1523](https://github.com/HKUDS/Vibe-Trading/pull/1523), [#1534](https://github.com/HKUDS/Vibe-Trading/pull/1534), [#1463](https://github.com/HKUDS/Vibe-Trading/issues/1463)). **데이터:** 보호예수 `free_shares`는 유통주식 수가 아니라 실제 해제 수량([#1513](https://github.com/HKUDS/Vibe-Trading/pull/1513)), 룽후방 좌석은 상장 사유별 순위([#1512](https://github.com/HKUDS/Vibe-Trading/pull/1512)), 주주 수는 실제 과거 기간 반환([#1518](https://github.com/HKUDS/Vibe-Trading/pull/1518)), Tencent·Eastmoney·AKShare A주 전방 수정주가는 배당 가산 조정으로 표기([#1497](https://github.com/HKUDS/Vibe-Trading/pull/1497)), Gildata를 토큰 기반 A주 소스로 추가([#1474](https://github.com/HKUDS/Vibe-Trading/pull/1474)), 포트폴리오는 모든 ISO-4217 통화를 지원하고 환율이 없으면 해당 소스만 실패 처리([#1510](https://github.com/HKUDS/Vibe-Trading/pull/1510)), `connector account`가 Binance·Futu·Trading 212 잔고를 표시([#1539](https://github.com/HKUDS/Vibe-Trading/issues/1539)). **신규:** 인도네시아어 UI와 README([#1482](https://github.com/HKUDS/Vibe-Trading/pull/1482)). **제거:** Requesty provider — `openrouter`에 해당 base URL을 지정하세요. [@shadowinlife](https://github.com/shadowinlife), [@he-yufeng](https://github.com/he-yufeng), [@Shizoqua](https://github.com/Shizoqua), [@lorenzozanee](https://github.com/lorenzozanee), [@cgycorey](https://github.com/cgycorey), [@zeus229](https://github.com/zeus229), [@sambazhu](https://github.com/sambazhu), [@Yoruxyv](https://github.com/Yoruxyv) and [@jastincheis](https://github.com/jastincheis)에게 감사드립니다!
- **2026-09-20** 🛠️ **명확한 데이터 요청과 일상 기능 수정**: 월봉을 뜻하는 `1M` 요청은 이제 1분봉을 조용히 반환하는 대신 미지원 오류를 명시합니다 ([#1487](https://github.com/HKUDS/Vibe-Trading/pull/1487)). 주봉·월봉 지원은 [#1479](https://github.com/HKUDS/Vibe-Trading/issues/1479)에서 계속 추적합니다. 환영 화면은 실제 선택한 빠른 작업을 강조하고 ([#1500](https://github.com/HKUDS/Vibe-Trading/pull/1500)), DingTalk은 다운로드 파일명의 경로 문자를 정리합니다 ([#1506](https://github.com/HKUDS/Vibe-Trading/pull/1506)). Signal은 이모지 뒤 멘션 주변의 텍스트를 보존하며 ([#1478](https://github.com/HKUDS/Vibe-Trading/pull/1478)), 신용 스프레드 표는 `5` / `5.0`처럼 같은 만기의 열을 합칩니다 ([#1507](https://github.com/HKUDS/Vibe-Trading/pull/1507)).
+4 -2
View File
@@ -52,15 +52,17 @@
> ⚠️ **安全警告:** X 账号 `VibeTrading_HKU`、Virtuals 项目 `101845` 及代币合约 `0x640BDBF77b6447E8b7DB7894cED84BD1c40571f4` 均非 Vibe-Trading 官方。我们从未发行或背书任何代币或 meme 币。请勿购买、连接钱包或签名。[详细说明](SECURITY.md#official-channels--impersonation)。
- **2026-09-24** 💱 **美元标的被按比索记账、Email 与 WebSocket 进入 Web UI,以及一次 SDK 升级引发的 CI 故障**:BYMA 和多伦多交易所在本币标的之外还挂有美元报价的标的(GGALD.BA、DLR-U.TO),阿根廷或加拿大回测却把它们放进唯一的比索或加元资金池计价。现在加载器只接纳以本市场货币报价的标的,与 LSE 标的的既有规则一致;其他由数据源声明的报价货币随数据一起传递,回答写出的就是正确的货币([#1576](https://github.com/HKUDS/Vibe-Trading/pull/1576))。个股概况在发行人基本面之外给出该上市标的自己的交易所与货币([#1577](https://github.com/HKUDS/Vibe-Trading/pull/1577)),grounding 与标的搜索认识数据层支持的每个市场([#1575](https://github.com/HKUDS/Vibe-Trading/pull/1575)),`technical_indicators` 返回成交量时附上数据源声明的单位——手或股,相差 100 倍([#1571](https://github.com/HKUDS/Vibe-Trading/pull/1571))。Email 与 WebSocket 加入引导式频道配置,邮件服务器证书现在会被校验,设置写入也不再接受跨站页面的请求([#1544](https://github.com/HKUDS/Vibe-Trading/pull/1544))。**修复:** openai 3.x 下显式的 provider 请求头会被环境里的同名头挤掉,曾让所有 PR 的 CI 变红([#1568](https://github.com/HKUDS/Vibe-Trading/pull/1568));来自微秒精度数据源的回测被标成 1970 年([#1560](https://github.com/HKUDS/Vibe-Trading/pull/1560));明摆着是下单指令的研究目标重新被拒绝([#1562](https://github.com/HKUDS/Vibe-Trading/pull/1562));strict bench 的样本外切分可能让一侧为空([#1559](https://github.com/HKUDS/Vibe-Trading/pull/1559));HRP 标签对齐、交叉验证标签顺序和量化输入里的非有限值([#1555](https://github.com/HKUDS/Vibe-Trading/pull/1555)、[#1556](https://github.com/HKUDS/Vibe-Trading/pull/1556)、[#1557](https://github.com/HKUDS/Vibe-Trading/pull/1557)、[#1558](https://github.com/HKUDS/Vibe-Trading/pull/1558));影子账户过度交易的时间窗口([#1563](https://github.com/HKUDS/Vibe-Trading/pull/1563));以及按日而非按年计算的资产增长率([#1564](https://github.com/HKUDS/Vibe-Trading/pull/1564))。感谢 [@Shizoqua](https://github.com/Shizoqua)、[@zeus229](https://github.com/zeus229) 和 [@shadowinlife](https://github.com/shadowinlife)!
- **2026-09-23** 🇦🇷 **阿根廷标的、方向反了的空头仓位定权,以及尾部风险闸门的最后一半**:`.BA`(BYMA 股票与 CEDEAR)作为独立的 ARS 市场走 Yahoo,Web UI 也按普通市场分组和显示;阿根廷回测在 BYMA 执行规则建模之前仍然直接拒绝,不套用别的市场假设([#1543](https://github.com/HKUDS/Vibe-Trading/pull/1543))。均值方差和考虑换手的优化器把每个仓位都按做多打分,于是最好的空头拿到最少资金。两者现在按仓位收益定权:两只正相关标的一多一空是互相对冲,而不是读成同向相关——在相关性 +0.92 的一对上,旧目标函数把全部资金压在多头,新的分成 0.51 / -0.49([#1548](https://github.com/HKUDS/Vibe-Trading/pull/1548))。另外,一旦一次会话里出现多于一个尾部风险口径(VaR 与 ES,或 95% 与 99%),尾部风险数字必须指明自己的字段,ES 95% 再也不能借用 VaR 95% 的数值([#1425](https://github.com/HKUDS/Vibe-Trading/issues/1425))。**修复:**蒙特卡洛校验按交易场所的年 bar 数折算,而不是硬编码 252,同一份报告里的夏普不再自相矛盾([#1546](https://github.com/HKUDS/Vibe-Trading/pull/1546));负价 bar 上的期货下单不再被整单拒绝([#1547](https://github.com/HKUDS/Vibe-Trading/pull/1547));基准 IC 为负时因子的 IC ratio 留空,不再把真实衰减读成健康改善([#1549](https://github.com/HKUDS/Vibe-Trading/pull/1549));同名但类型不同的两条记忆各自保留索引行和链接目标([#1545](https://github.com/HKUDS/Vibe-Trading/pull/1545))。感谢 [@zeus229](https://github.com/zeus229)、[@Shizoqua](https://github.com/Shizoqua) 和 [@he-yufeng](https://github.com/he-yufeng)!
- **2026-09-22** 📅 **周线和月线;上下文压缩后的结果重放曾可能让证据丢失**:`get_market_data` 和回测支持 `1W`、`1M`(09-20 起为防止 `1M` 被当成一分钟而拒绝)。各数据源仍按日线取数,周/月 bar 由日线合成,日期为该周或该月最后一个交易日,21 个月的月度复盘一次调用即得 21 根 bar([#1479](https://github.com/HKUDS/Vibe-Trading/issues/1479))。价格指数统一标为不复权,不再按数据源对个股的复权方式打标([#1541](https://github.com/HKUDS/Vibe-Trading/issues/1541))。被上下文压缩清掉的只读工具结果从本次运行的缓存中恢复,不再重复拉取;每次运行有上限,任何写操作都会清空缓存,重新生成的文件会被重新读取([#1488](https://github.com/HKUDS/Vibe-Trading/pull/1488))。用字段 ref 声明的尾部风险数字会对照该字段核验,把 95% 的值写成 VaR 99% 会被拦下([#1444](https://github.com/HKUDS/Vibe-Trading/pull/1444))。QVeris 拒绝个股和 ETF 的 bar(它按搜索排名挑选的数据源说不清复权口径),也拒绝按结果计价的报价([#1494](https://github.com/HKUDS/Vibe-Trading/issues/1494))。感谢 [@sambazhu](https://github.com/sambazhu), [@zeus229](https://github.com/zeus229), [@he-yufeng](https://github.com/he-yufeng), [@jw232](https://github.com/jw232) and [@cgycorey](https://github.com/cgycorey)!
- **2026-09-22** 💸 **资金费把现金扣成负数后回测中止;另有三个工具把被拒绝的查询当成没有数据**:加密货币的资金费可能把可用现金扣到负数,此时策略想开的下一个仓位连「一股不开」都放不下,回测就以「planned order … exceeds available capital」(或「insufficient capital for position rebalance」)中止。现在这笔开仓会被跳过,并只记一次 `insufficient_capital`;同一根 bar 的减仓照常执行;亏损超过保证金的平仓仍按原规则整根 bar 中止([#1542](https://github.com/HKUDS/Vibe-Trading/issues/1542))。大宗交易、融资融券和财务报表现在也能区分「东方财富拒绝了过时的查询」和「确实没有数据」,与股东户数、龙虎榜、限售解禁共用同一个判定。西班牙语、德语等以逗号作小数点的回答,现在也能把 `17,93 %`、`1.410,00 CNY` 与工具结果核对;而像 `1400,1777` 这样没有空格的两个数仍按两个数处理,数字须按其书写精度与证据一致([#1517](https://github.com/HKUDS/Vibe-Trading/pull/1517))。感谢 [@turtle696966969696](https://github.com/turtle696966969696) 提供精确到分的复现,也感谢 [@zeus229](https://github.com/zeus229)!
<details>
<summary>更早的新闻</summary>
- **2026-09-22** 💸 **资金费把现金扣成负数后回测中止;另有三个工具把被拒绝的查询当成没有数据**:加密货币的资金费可能把可用现金扣到负数,此时策略想开的下一个仓位连「一股不开」都放不下,回测就以「planned order … exceeds available capital」(或「insufficient capital for position rebalance」)中止。现在这笔开仓会被跳过,并只记一次 `insufficient_capital`;同一根 bar 的减仓照常执行;亏损超过保证金的平仓仍按原规则整根 bar 中止([#1542](https://github.com/HKUDS/Vibe-Trading/issues/1542))。大宗交易、融资融券和财务报表现在也能区分「东方财富拒绝了过时的查询」和「确实没有数据」,与股东户数、龙虎榜、限售解禁共用同一个判定。西班牙语、德语等以逗号作小数点的回答,现在也能把 `17,93 %`、`1.410,00 CNY` 与工具结果核对;而像 `1400,1777` 这样没有空格的两个数仍按两个数处理,数字须按其书写精度与证据一致([#1517](https://github.com/HKUDS/Vibe-Trading/pull/1517))。感谢 [@turtle696966969696](https://github.com/turtle696966969696) 提供精确到分的复现,也感谢 [@zeus229](https://github.com/zeus229)!
- **2026-09-21** 🔌 **IM 频道可在 Web UI 里配置;24 个 alpha 曾用缺失的那根 K 线算出数值**:设置页现在可以逐个编辑 IM 频道:密钥只显示掩码,未保存的表单也能先测连接,保存后只热替换这一个频道、无需重启;钉钉和 QQ 提供分步引导([#1520](https://github.com/HKUDS/Vibe-Trading/pull/1520)、[#1529](https://github.com/HKUDS/Vibe-Trading/pull/1529)),所有适配器改回标准库日志,过去被 `{}` 占位符吞掉的诊断信息重新进入日志([#1533](https://github.com/HKUDS/Vibe-Trading/pull/1533))。Alpha Zoo 里,比较的一侧因窗口含缺失 K 线而为 NaN 时结果是 False,会输出一个常数;#1463 的扫描只把那根 K 线挪动一个 tick,看不到这种情况。改用“有缺口 vs 无缺口”对比后又找出 24 个 alpha,现在按输入的回看范围屏蔽,完整数据上本就无定义的相关系数保持原来的判定([#1523](https://github.com/HKUDS/Vibe-Trading/pull/1523)、[#1534](https://github.com/HKUDS/Vibe-Trading/pull/1534)、[#1463](https://github.com/HKUDS/Vibe-Trading/issues/1463))。**数据:**限售解禁的 `free_shares` 改为真正的解禁数量,而不是流通股本([#1513](https://github.com/HKUDS/Vibe-Trading/pull/1513));龙虎榜席位按上榜原因分别排名([#1512](https://github.com/HKUDS/Vibe-Trading/pull/1512));股东户数返回真实的历史期数([#1518](https://github.com/HKUDS/Vibe-Trading/pull/1518));腾讯、东方财富和 AKShare 的 A 股前复权标记为分红加法调整([#1497](https://github.com/HKUDS/Vibe-Trading/pull/1497));恒生聚源作为需 token 的 A 股数据源加入回退链([#1474](https://github.com/HKUDS/Vibe-Trading/pull/1474));组合估值支持任意 ISO-4217 币种,缺汇率时只让该来源失败而非整张快照([#1510](https://github.com/HKUDS/Vibe-Trading/pull/1510));`connector account` 正确显示 Binance、富途和 Trading 212 的余额([#1539](https://github.com/HKUDS/Vibe-Trading/issues/1539))。**新增:**印尼语界面与 README([#1482](https://github.com/HKUDS/Vibe-Trading/pull/1482))。**移除:**Requesty provider,改用 `openrouter` 并指向其 base URL。感谢 [@shadowinlife](https://github.com/shadowinlife), [@he-yufeng](https://github.com/he-yufeng), [@Shizoqua](https://github.com/Shizoqua), [@lorenzozanee](https://github.com/lorenzozanee), [@cgycorey](https://github.com/cgycorey), [@zeus229](https://github.com/zeus229), [@sambazhu](https://github.com/sambazhu), [@Yoruxyv](https://github.com/Yoruxyv) and [@jastincheis](https://github.com/jastincheis)!
- **2026-09-20** 🛠️ **行情请求更明确,日常交互更可靠**:月线 `1M` 请求现在明确报不支持,不再悄悄返回一分钟 K 线([#1487](https://github.com/HKUDS/Vibe-Trading/pull/1487));周线和月线支持仍由 [#1479](https://github.com/HKUDS/Vibe-Trading/issues/1479) 跟踪。欢迎页快捷操作会高亮实际选中项([#1500](https://github.com/HKUDS/Vibe-Trading/pull/1500));钉钉下载文件名会清理路径字符([#1506](https://github.com/HKUDS/Vibe-Trading/pull/1506));Signal 不再因 emoji 后的提及偏移而误删文字([#1478](https://github.com/HKUDS/Vibe-Trading/pull/1478));信用利差表把 `5` / `5.0` 等相同期限合并为一列([#1507](https://github.com/HKUDS/Vibe-Trading/pull/1507))。