N°696
REPOSITORY DETAIL · 仓库详情
Open Source · GITHUB
Vibe-Trading – HKUDS
HKUDS/Vibe-Trading
AI 智能体 / 自主代理框架
30,854 Stars
5,006 Forks
Python
MIT
2
Views · 浏览
项目简介
Vibe-Trading:您的个人交易智能体
SECTION · 01
关键指标一览
Stars 数
30,854
Forks 数
5,006
Watchers 数
30,854
Issue 数
15
主要语言
Python
许可证
MIT
仓库所有者
HKUDS
创建时间
2026.04.01
更新时间
2026.08.14
最近推送
2026.08.14
SECTION · 02
主题标签
SECTION · 03
README 详细介绍
README 原文为英文,如需阅读完整中文内容,建议使用 浏览器翻译插件(如 Edge 浏览器自带翻译、Google 翻译扩展)进行整页翻译。
English | 中文 | 日本語 | 한국어 | العربية | Español
![]()
Vibe-Trading: Your Personal Trading Agent
One Command to Empower Your Agent with Comprehensive Trading Capabilities
Website ·
Docs ·
News ·
Features ·
Shadow Account ·
Demo ·
Quick Start ·
Examples ·
API / MCP ·
Roadmap ·
Contributing
📰 News
> ⚠️ 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.
- 2026-08-14 ⚙️ A reasoning setting that did nothing, and runs that stopped while they could still recover:
LANGCHAIN_REASONING_EFFORTwas silently a no-op for almost every provider — only direct OpenAI ever received it, so settinghighon DeepSeek changed nothing and said so nowhere. Effort now reaches both transports through each adapter's own field: Chat Completions by default, the Responses API whenLANGCHAIN_USE_RESPONSES_API=true. The providers given a top-levelreasoning_effortare a verified allowlist rather than everything that speaks the OpenAI wire format — an endpoint that validates its request body strictly rejects an unknown key and fails the call, so the cost of guessing wrong is every request, not a missing setting (#1025). The grounding gate also stops handing back "confirm and continue" while a deterministic read-only recovery is still available: an unresolved instrument now drivessearch_symbol→get_market_dataon its own bounded budget instead of spending the run's iterations and failing closed (#1092, closes #1081). New: an Options Lab page — multi-leg payoff diagram, spot × IV scenario matrix, portfolio Greeks and a live chain, computed by the existing payoff tool andquantlibrather than a second implementation of the math (#1096); a backtest tearsheet tab with a monthly-returns heatmap, annual returns and top-N drawdown episodes (#1091); tickerall as the 25th market-data source — hosted MetaTrader 5 forex/metals bars with no local terminal on any OS, explicit-only so a broker key is never a silent fallback target, and a truncated history window is an error rather than a quietly short series (#968, closes #897); and Novita AI plus GitHub Copilot as built-in providers (#1059, #990). eToro gains asset-class browsing by instrument type, and copy trading now refuses a demo account with a stated reason instead of failing obscurely (#1070). Thanks @cgycorey, @Shizoqua, @shadowinlife, @miguelangelo78, @jax-novita, @sykuang, and @ofeksh-tr. - 2026-08-13 🎯 Backtest reports show the book that actually filled:
positions.csvheld the optimiser's target weights, so a report could claim 80% exposure while lot rounding, fees, or a blocked order left the portfolio near 20% — and those targets also fed the invested-weight metrics and the risk x-ray. Fills now go topositions.csv, requests totarget_positions.csv(#1082). Run Detail gains a research dashboard at?view=dashboard(#1084), and Spanish is the sixth UI language (#1087). Also:get_research_reportswas returning HTTP 400 for every A-share symbol (#1077); IBKR quotes separate the tier requested from the one applied (#1075);.env.partialis written atomically (#1086); the Docker workflow pins actions to commits and hash-locks channel SDKs (#1088); and the grounding gate stops reading support/resistance ladders and all-time highs as observed prices (#1060). Thanks @AndyLongest, @daviddaco1, @zzz607, @jay79-boop, @lukiod, @birdxs, and @wiliao. - 2026-08-12 📏 A-share volume no longer jumps 100× when the fallback source changes: Five sources in the A-share fallback chain reported board lots while BaoStock reported shares, and because the serving provenance carried no unit, a fallback could silently rescale every volume-based signal. Loaders now declare volume units per market, provenance exposes the unit of the source that actually served each symbol, BaoStock converts shares to board lots at the loader boundary, cache v4 prevents pre-fix entries from resurfacing, and a live-data cross-source regression requires settled-day values to agree within 1% (#1065, #1067, closes #1062). The ten-PR correctness pass also gives eToro complete runtime status and a five-locale SDK-connected UI (#1051); makes scheduled-run DELETE return a truly empty 204 (#1068); renders Alpaca's direct-SDK account payload in the CLI (#1073); normalizes Ollama roots to
/v1at the credential boundary used by the real model constructor (#1074); turns Docker Codex OAuth stdin EOF into actionable TTY guidance (#1054, closes #1050); stops Markdown ordered-list markers such as1.from becoming unsupported numeric claims (#1063); makes two-character memory queries such asGEbehave the same with or without FTS5 (#1071); and prices zero-volatility European options from discounted forward intrinsic value, restoring exercise-side logic and put-call parity (#1066). Thanks @shadowinlife, @ofeksh-tr, @zhiwuyazhe-fjr, @zzz607, @pengpengyi92, and @Shizoqua.
Earlier news
- 2026-08-11 🧠 Compaction stops dropping conversation content, and a swarm retry can no longer delete its own run: Auto-compaction sliced the serialized history at a hard 80,000 characters before summarizing, so anything past that cut reached neither the summary call nor the preserved tail — it vanished with no error raised, against the function's own "zero info decay" guarantee, and the slice landed mid-object so the summarizer was handed invalid JSON. History is now packed on message boundaries and folded chunk by chunk through the existing iterative template; a single message too large for one chunk becomes labelled fragments instead of a truncation, and an empty model reply no longer wipes the summary accumulated so far (closes #1055). The new retry-time artifact cleanup ran
shutil.rmtreeonrun_dir/artifacts/, whereagent_idarrives unvalidated from a preset and user presets load from~/.vibe-trading/swarm/presets/, so an id of..resolved to the run directory itself — the path is now refused unless it is one safe segment resolving inside that run's artifacts directory. Plustechnical_indicatorsRSI moving to the Wilder-EWM convention its own docstring already claimed, where a plain rolling mean can shift a reading across the 30/70 boundary (#1056);excess_returnre-derived from the corrected benchmark total so the two fields stop contradicting each other inside one metrics dict (#1058); swarm deliverable validation rejectingok/success-keyed raw tool envelopes passed off as analysis (#1052); a retried worker no longer inheriting the failed attempt'sreport.md(#1053); and worker prompts ordered so the agent-invariant blocks form one cache-eligible prefix (#1057). Thanks @Shizoqua and @Echoandelementwebsites. - 2026-08-10 🚀 v0.1.13 released (Release notes,
pip install -U vibe-trading-ai): 408 commits and 162 merged pull requests since 0.1.12 — the largest release so far. The headline is a fix, not a feature: the identity gate stops refusing answers it already had the evidence for. A well-formed question would spend minutes on real tool calls and then return "cannot safely confirm instrument identity or price evidence". The causes:.SSand.SHwere treated as different instruments, so every Shanghai ticker was permanently ambiguous; a failed side query could demote an already-locked identity; Yahoo's HTTP 400 on every CJK query was recorded as a source failure instead of "not listed here"; a hardcoded per-tool whitelist blocked 11 of the 17 documented argument spellings; Chinese answers were rejected for writing雅虎or元rather than the ASCII loader name; and a thousands separator split¥1,309.22so1was compared against the observed range. Conceptual questions and comparison reports no longer dead-end either. A quote outside recorded OHLC evidence is still refused. New:src/quantlib— 249 tested functions across 17 modules (options, bonds, credit, econometrics, VaR/CVaR/EVT, attribution, event studies, purged CV) reachable from the CLI, Web UI, REST API and MCP through the read-onlyquantlib_call, so skills import finance math instead of carrying formulas in markdown; a valuation engine (run_dcf/run_comps/ three-statement) whose one rule is that a missing input makes a model NOT RUNNABLE rather than silently defaulted; an entity + irregular cash-flow spine (XIRR / MOIC / DPI / TVPI, TWR / Modified Dietz viacashflow_performance) kept deliberately parallel to the bar engines; governance in every run — a hash manifest over prompt, skills, tool registry and package versions, plus a hash-chained fsynced audit ledger where even a self-rehashed edit is caught one record later; four read-only data tools on free public sources (SEC 13F with quarter-over-quarter diffs, ETF look-through where a CSI-300 tracker resolves to 342 positions covering 98.66% of net assets instead of the quarterly top ten, prediction markets as labelled implied probability, and arXiv/OpenAlex with source-anchored claims); six institutional commands (/comps/dcf/attrib/memo/earnings/screen); investor lenses as a standalone skill; five scheduled-research playbooks; a desktop Electron shell with checksum-pinned Windows packaging andsafeStorage; eToro as the 13th broker connector; Korea (KRX) as the 9th backtest engine; an OpenBB Workspace bridge; Canadian equities end to end; andsentiment,technical_indicators,options_payoff,orderbook_depth, ModelScope andvibe-trading update. Correctness: SEC periods are keyed on their(start, end)span — annual figures had been returning a single quarter, a 4.2× understatement; Tushare A-share prices are corporate-action adjusted, where a raw return across an ex-date was off by up to 47 percentage points;bar_returnsno longer records a trading halt as a 0% move; annualisation covers all 24 data sources; a sandbox gap is closed where generated code could import the broker layer or reachsocket/subprocessthrough a renamed binding; and mixed-currency composite backtests are refused instead of summed into one equity curve. Thanks @santhreal, @shadowinlife, @Robin1987China, @he-yufeng, @QCYTSN, @Shizoqua, @honginp, @cgycorey, @wiliao, @ngoanpv, @x-lambda, @ofeksh-tr, @00EVA, @zwrong, @yrk111222, @su322, @hhj123123, @dineeshd, @sambazhu, @ddy4633, @tyj147454413-cmd, @y85998607, @JungHoonGhae, @shugaoye, @TSENGCHIENFENG, @darkknight4563, @MuggleJinx, @klmtseng, @ebujinovch, @g0rdonL, @AmirF194, @Echoandelementwebsites, @yagnikpipaliya, @dvirarad and @1anter.
- 2026-08-09 🪟 Secure Windows packaging, Canada markets, ModelScope, and Alpha Zoo over MCP: Windows desktop packaging now assembles a checksum-pinned embedded Python 3.12 runtime and x64 NSIS review/signing paths, plus Electron
safeStoragefor an allowlisted credential set. The renderer can set or clear secrets but never read them; plaintext configuration migrates once; decrypted values reach only the owned backend; and both unsigned review and signed builds fail closed on the wrong signature state. No installer artifact was published from this PR (#1015). Canadian equities now work end to end:.TO/.Vsymbols are classified in CAD, route through Yahoo → yfinance → local fallback, execute under Canada-specific GlobalEquity rules, benchmark againstXIC.TO, and refuse mixed-currency aggregation. Strict USD-M historical backtests can also opt intoposition_adjustment=rebalancewhile preserving collateral, funding, fees, realized P&L, liquidation behavior, and immutable fill evidence across increases and reductions (#1024, #1019, closes #952). ModelScope joins the built-in providers through its official OpenAI-compatible hosted-inference endpoint, withQwen/Qwen3.5-27Bas the default (#1011); the newvibe-trading updatedistinguishes wheel installs from editable/source checkouts, installs the exact release it checked, and verifies fresh metadata without downgrading (#1020); andalpha_zooplus boundedalpha_benchnow reach MCP (64 tools), with horizon/result/output-path limits and safe report creation (#979). Verified Python and frontend lock refreshes also update grouped dependencies,postcss, andakshare(#1021, #1023, #1026, #1027). Thanks @QCYTSN, @wiliao, @honginp, @yrk111222, @zwrong, and @cgycorey. - 2026-08-08 🧱 Desktop shell, eToro, atomic rebalancing, and a broad reliability pass: A source-first Electron host now owns the existing backend lifecycle — random loopback port, per-launch secret, five-locale startup recovery, and owned-process cleanup — while eToro joins with path-separated demo/real profiles; live risk-increasing actions remain mandate-gated and audited, and API capability surfaces are authenticated under enforced CSP (#923, #989, #961). Backtests gain opt-in atomic same-direction rebalancing with immutable fill evidence; Shadow splits mixed markets by settlement currency without invented FX aggregation and honors the configured runtime root; indicators use consecutive unsampled history; negative-equity drawdown and empty insolvent cross accounts are handled correctly (#951, #997, #1017, #1005, #958, #959). OpenAI Codex OAuth gets a separate synchronized credential store and one-shot 401 recovery; proxy opt-out covers sync and async clients; sandboxed runs retain their canonical root; scheduled research isolates malformed records and fixes interval-timezone validation; lowercase
4hrequests return true four-hour bars (#1014, #995, #1012, #1003, #1004, #1013). QQ replies retain source message IDs, long model slugs remain readable, and the agent stops when evidence is sufficient (#1008, #1006, #1010). Thanks @QCYTSN, @Shizoqua, @ngoanpv, @hhj123123, @su322, @Robin1987China, @shadowinlife, @dineeshd, @honginp, @santhreal, @00EVA, @x-lambda, @ofeksh-tr. - 2026-08-07 🛡️ Fewer false refusals, a closed sandbox gap, QVeris on MCP: The grounding gate stops rejecting well-formed answers over numbers that were never prices — confidence scores, indicator readings, moving-average windows, year-less dates like
8/5, percentage ranges, and a trading plan's own trigger levels (close ≥ 6.45is a condition, not a quote) — while a quote outside recorded OHLC evidence is still refused, and a price table dated08-05now matches its evidence instead of every cell coming back unavailable (#1001, #983). Sandbox: generated strategy code can no longer import the broker layer, nor reachsocket/subprocess/os.system/ctypesthrough a renamed binding — both were accepted before, andsrc.quantlibstill imports. QVeris discovery/inspect/execute join the MCP surface (62 tools), with the cost quote read from the marketplace instead of trusted from the caller (#976, closes #964, thanks @shadowinlife). Plus HK market-data fallback routing repaired with a new Tencent HK source, yfinance crypto routed to the crypto engine, memory entries written and recovered with their.mdsuffix, MCP list/dict arguments tolerating JSON-string clients, and Portfolio Studio artifacts surfaced in run detail (#1000, #970, #984, #993, #980, #982, #966, #973, thanks @he-yufeng, @ngoanpv, @sambazhu). - 2026-08-06 🧮 A tested finance-math layer + valuation engine + irregular cash flows + wired-in governance:
src/quantlibreplaces the formulas that lived as markdown inside skills with one tested implementation each — options, bonds, credit, econometrics, VaR/CVaR/EVT, attribution, event studies, multiple-testing control, purged cross-validation — 265 functions, reachable from the CLI, Web UI, REST API and MCP via the new read-onlyquantlib_calltool. A valuation engine (run_dcf/run_comps/ three-statement) refuses to run on a missing input instead of silently defaulting it, and a new entity + cash-flow spine admits NAVs, capital calls, and coupons (XIRR/MOIC/DPI/TVPI and TWR/Modified Dietz viacashflow_performance; crypto L2 impact cost viaorderbook_depth). Every run now writes a hash manifest, the audit ledger is hash-chained so tampering is detectable, and all 30 swarm presets were re-audited — a deliverable no granted tool can compute is now declared as such instead of invented. - 2026-08-05 🔭 Institutional holdings, ETF look-through, prediction markets, research papers: Four read-only data tools, all on free public sources — SEC 13F books with quarter-over-quarter position diffs; ETF constituents across markets (a CSI-300 tracker resolves to 342 positions covering 98.7% of net assets, not the quarterly top ten); event contracts as labelled implied probability; and arXiv/OpenAlex search that marks what a source does not state instead of inferring it. Plus five scheduled-research templates, six institutional commands (
/comps/dcf/attrib/memo/earnings/screen), investor lenses as a standalone skill, and an agent core that traces every number back to the tool that produced it. - 2026-08-04 🔧 Correctness pass: fundamentals, A-share prices, oversized results: SEC reporting periods are now keyed on their
(start, end)span — a 10-Q files the true quarter and the year-to-date frame under the same end date and fiscal period, soperiod="annual"had been returning a single quarter for AAPL FY2018–2020 (a 4.2× understatement) and every fiscal-Q4 slot in a quarterly series carried the full-year figure;get_fundamentals("AAPL.US")no longer answersok:truewith an all-null panel. Tushare A-share prices are now corporate-action adjusted in both the factor bench and backtests — a raw close-to-close return across an ex-date was off by up to 47 percentage points (300750.SZ, 2023-04-26) — and the CSI300 bench masks each date to its point-in-time index membership. Cross-market composite backtests refuse a mixed-currency code set instead of summing CNY, USD and KRW into one equity curve; option legs are marked at the volatility they were opened at, removing a fabricated day-zero P&L of up to +93% of premium; oversized tool results are paged by whole record with an explicit total instead of being cut mid-JSON; andcalc_metricsreports tracking error and benchmark beta. - 2026-08-03 ⏰ Timezone-aware scheduled research + unblocked stock screening: Scheduled jobs now take an optional IANA
timezoneand evaluate cron on that zone's wall clock, so a cadence survives DST — a spring-forward gap is skipped and a fall-back ambiguous time runs once — while cron fields gain comma lists and ranges (1,3-5), jobs without a timezone keep UTC semantics, and the web UI gains a Scheduled page in all five locales where it previously had no scheduling surface at all (#954, closes #953, thanks @ngoanpv). A screening request no longer dead-ends: a many-candidate shortlist counts as an answer rather than a stalled resolution and retires once a candidate is locked, and price validation stops reading ticker digits, localized dates, share counts, and position costs as quoted prices — while still refusing any quote outside recorded OHLC evidence (closes #955). Agent memory also gets exact index-anchor matching and a respected result bound (#956, #957, thanks @santhreal). - 2026-08-02 🧠 Live model discovery, truthful runtime identity, and a verified dependency refresh: Settings now discovers configured-provider models on demand with stable warning codes and five-locale controls, while each reply records and reloads the immutable provider/model/reasoning identity that actually served it—cleared safely when sessions change (#924, thanks @QCYTSN). Nine hash-locked Python updates plus
jsdom/postcssalso landed with exact-version imports, 330 focused tests, the production build, 373 frontend tests, fullmainCI, and Dependency Graph green (#949, #948); the breaking MCP 2.0 bump remains unmerged pending a complete lock/runtime migration (#950). - 2026-08-01 🧮 Options strategy analytics + market sentiment + auditable USD-M research: A new options payoff workflow analytically calculates expiry P&L extrema, exact breakevens—including continuous zero-P&L intervals—engine-aligned entry commissions, and spot × IV scenarios through Agent and MCP (#946, rebuilt from #883, thanks @he-yufeng). The read-only
sentimenttool scores arbitrary text locally and retrieves the crypto Fear & Greed Index without an API key (#939, thanks @Robin1987China). Strict USD-M backtests now persist ordered fill, funding, risk, and liquidation events plus a fidelity summary, while rejecting unsupported 100× intervals (#936, thanks @honginp). Reliability improvements also ensure symbol and venue resolution precedes market-data calls, final quoted prices are checked against recorded OHLC evidence, scheduled research retries transient failures, and nested MCP results serialize cleanly. - 2026-07-31 🔧 USD-M liquidation lifecycle + technical indicators + user-level state dirs: Opt-in
perpetual_strictmode settles historical funding before fills and executes isolated/cross margin breaches as real liquidations (#903, thanks @honginp). A read-onlytechnical_indicatorstool computes RSI/MACD/Bollinger/SMA/EMA through the existing loaders (#921, refs #920, thanks @Robin1987China). Sessions, runs, swarm runs, and uploads now live under~/.vibe-trading(relocatable viaVIBE_TRADING_HOME) with a one-time automatic migration (#925, closes #904, thanks @MuggleJinx). Plus ten correctness fixes — Yahoo.SSclassified as A-share, bare/prefix-style A-share codes, slash-delimited crypto pairs,nan/infguards (#919, #926–#935, thanks @santhreal). - 2026-07-30 🎨 Rebuilt WebUI + Korea (KRX) market + an OpenBB Workspace bridge: The web UI lands its guided-minimalism overhaul — no first-frame flash, one durable activity object per turn with a live reasoning whisper and a reload-safe tool trail, LLM-written session titles, full five-locale parity. Korea equity (KRX: KOSPI/KOSDAQ) becomes the 9th backtest engine — execution-time ±30% band, long-only, 2026 0.20% transaction tax, optional
pykrxloader (#693, thanks @JungHoonGhae) — plus an OpenBB Workspace bridge (#817, thanks @shugaoye) and a read-only Taiwan snapshot tool (#848, thanks @TSENGCHIENFENG). Correctness: daily price bands are judged at execution time, not from the decision bar's close; a session runs one attempt at a time (HTTP 409) and a user stop is its own terminal state (#676, thanks @tyj147454413-cmd). Plus durable traces (#662), secret-scrubbed tool results (#675), fail-closed tool arguments (#913/#911, thanks @santhreal), direct-OpenAIreasoning_effort(#755, thanks @1anter), and numeric guards across the risk x-ray / edge density / options engine (#909/#908/#907). - 2026-07-29 🔧 Gap-safe returns + liquidation risk modeling + a risk x-ray in every run:
bar_returnsno longer erases the real move across a trading halt longer than the forward-fill window — the resumption move was silently recorded as 0, understating volatility and inflating Sharpe — and aninfprior price can no longer read as a clean −100% (#895, thanks @darkknight4563). Annualisation now covers all 24 data sources at every interval, with a coverage test that fails CI when a loader lands without entries (#891, closes #884, thanks @Robin1987China). USD-M perpetual research gains deterministic isolated & cross margin liquidation evaluation (#889, thanks @honginp), and every portfolio backtest now emits risk x-ray artifacts (risk_xray.json/.md) with headline concentration/vol/drawdown metrics (#900, thanks @he-yufeng). TheconnectorCLI now loads~/.vibe-trading/.env, so env-sourced broker credentials resolve again (#902, closes #901, thanks @MuggleJinx). Plus indent-preserving channel message splits and skill-frontmatter parsing at EOF (#867/#861, thanks @santhreal).
- 2026-07-28 🔧 Next-gen Claude models unblocked + sign-safe returns: Claude models that deprecate the
temperaturefield (opus-4-7, opus-5, sonnet-5) now work — the adapter drops the field when the API rejects it, retries once, and remembers the model, so no per-release patch is needed (#890, closes #856, thanks @yagnikpipaliya). Non-interactivevibe-trading runnow injects a host session id: research-goal tools previously failed on every call while the run still reported success (#885). Buy-and-hold returns are sign-safe — a near-zero prior close no longer explodes the compounded benchmark, and an exact-zero close no longer yieldsinf/nan(#872, thanks @darkknight4563). The frontend moves to Node 22 + React Router 8, clearing a high-severity advisory. - 2026-07-27 🔧 Correlation integrity + vn.py 4.0 export repair + an encoding batch: The rolling correlation matrix no longer forward-fills missing closes — a halted session was being scored as a fabricated 0% return against the peer's real move, distorting the matrix (#873, thanks @ddy4633). The vn.py export skill is repaired for the vn.py 4.x layout, where
vnpy.app.cta_strategyno longer exists upstream — templates now import fromvnpy_ctastrategy(#869, thanks @y85998607). Plus a six-fix batch: UTF-16 BOM decoding in the document reader and trade-journal CSVs, currency symbols stripped before numeric coercion,BTCUSDT-style symbols inferred as crypto, lowercase1h/1dintervals annualized correctly, and CJK characters preserved in skill directory slugs (#862, #863, #864, #865, #866, #868, thanks @santhreal). - 2026-07-26 🔒 Dependency lock + universe transparency: Docker’s hash-locked install works again, with a new CI lock check (#858, closes #847).
alpha benchnow discloses CSI300/SP500 sources, counts, degraded fallbacks, and survivorship bias (#859, closes #845). Actions and five frontend dependencies were also refreshed (#850–#852). - 2026-07-25 🔧 Perpetual realism + MCP crash fix + a correctness batch: USD-M perpetuals gain margin state contracts (#798, thanks @honginp) and the engine now consumes historical funding rates instead of fetching-and-ignoring them (#819, thanks @g0rdonL). MCP dataclass results no longer crash on a false
Circular reference detected(#849, thanks @Echoandelementwebsites), andalpha benchCLI/HTML forward the_metasurvivorship disclosure (#841, closes #797, thanks @AmirF194). Plus 12 correctness fixes across journals, connectors, and channels (#799–#810, thanks @santhreal), and a real account label in CLI balances (#843, closes #846, thanks @Robin1987China). - 2026-07-24 🔀 Memory Tier 2, composable optimizer constraints + an interval-handling sweep: Persistent memory gains Tier 2 structural organization (#815, thanks @shadowinlife), and backtest optimizers accept composable weight constraints (#818, thanks @he-yufeng). Correctness: the daily-bar validator can opt in to non-positive prices — opening on negative bars while still rejecting zero (#816, closes #571, thanks @darkknight4563). Plus a 19-PR loader interval-normalization sweep: lowercase
1h/4h/1d/1waliases accepted everywhere, unsupported intervals now fail fast instead of silently returning daily bars, Yahoo4Hmaps to1h, and MT5 accepts1W/1M(#812–#838, thanks @santhreal), a trade-journal fix for Eastmoney Excel-serial dates (#811, thanks @santhreal), and a README nav-anchor fix (#840, thanks @dvirarad). - 2026-07-23 🔧 Reliability sweep + strict alpha-bench surfaced + opt-in memory lifecycle: A 22-PR contributor batch. A broad reliability sweep fixes timeframe handling end to end — yfinance
1M→monthly (not minute), CCXT1W/1M, akshare/india-broker rejecting unsupported intervals instead of silent daily, and the Tiger/Alpaca/OKX/Shoonya/Longbridge connectors keeping1H/4Has hour bars — plus trade-journal Excel-date normalization (eastmoney floatYYYYMMDD, Futu/Tonghuashun serial dates), finite-JSONreport_audit, blankholding_daysvalidation, and Feishu/CLI markdown table edges (#778–#794, thanks @santhreal). MT5trading_historynow coerces numpy scalars so JSON serialization no longer dies onint64(#776, closes #774, thanks @shadowinlife), and PIT fundamentals dedup restated rows and stop the snapshot regressing to an older fiscal period on a late restatement (#772, closes #771, thanks @klmtseng). New:alpha bench --strictfinally wires the strict same-universe random-control + OOS gate that shipped unreachable since 0.1.9 (#796, closes #773, thanks @he-yufeng), an opt-in memory lifecycle (quality scoring, Ebbinghaus decay, archive-only GC — all off by default) (#733, closes #732, thanks @shadowinlife), and backtest rebalance-notes artifacts + turnover metrics (#795, thanks @he-yufeng). - 2026-07-22 🚀 v0.1.12 released (Release notes,
pip install -U vibe-trading-ai): The correlation regime timeline adds aGET /correlation/regimeendpoint + an opt-in Correlation-tab strip — edge density run through a causal hysteresis state machine that marks FUSED market episodes, descriptive risk context rather than a signal (#756, closes #719, thanks @ebujinovch). Provider endpoint resolution now falls back to each provider's canonical base URL and gracefully handles non-SSE endpoints, fixing the native zai provider on glm-5.1 (#758). Plus a strict-JSON / finite-number reliability sweep across metrics, factors, pattern, session, and journal (#761–#770, thanks @santhreal) and a Binance maintenance-bracket decouple that keeps-PERPbacktests zero-credential (#757, thanks @honginp). Rolls up ~90 fixes since 0.1.11. - 2026-07-21 🔧 Data-loader completeness + a reliability fix sweep: Partial market-data results now complete the missing symbols through the fallback chain and fail closed instead of silently shrinking the backtest universe (#689, closes #681, thanks @xkam7ar), and OKX bars use the
history-candlesendpoint with rate-limit retry for deep backfills (#644, thanks @tyj147454413-cmd). Plus a fix sweep: the MCP network guard accepts IPv6 / case-variant hosts (#750, thanks @Robin1987China), trade-journal parsers skip blank/NaN symbol rows (#749, thanks @Robin1987China), the Shadow Account skips the mined entry-hour gate on daily bars (#748, thanks @Robin1987China), and MiniMax regional API endpoints are selectable (#731, thanks @octo-patch). - 2026-07-20 🔀 Providers, MetaTrader 5, and a reliability sweep: Native Anthropic Messages API (optional
[anthropic]extra, #695, thanks @jelech), SiliconFlow (#565, thanks @UNHNQ), and iFlytek Spark (#537, thanks @FenjuFu) join the provider roster, and a MetaTrader 5 (Exness) broker connector +mt5forex/metal data source lands (broker connectors → 12, #481, thanks @StaniellG). Plus a provider-agnosticllm-visionOCR engine (#548, thanks @shadowinlife), an 80× signal-alignment vectorization (#698, thanks @shadowinlife), historical Binance USD-M funding/bracket data (#716, thanks @honginp), a swarm MCP-discovery cache (#704), and a reliability consolidation closing 13 SSE/session/CLI/swarm/scheduler issues (#584, thanks @xkam7ar). Correctness: options partial-close now honors the requested quantity instead of flattening the lot (#577), centralized provider credential resolution (#563), queued-cancel handling (#641), a frontend streaming-DOM race (#717, thanks @Marnie0415), and the connector CLI renderers (#726, thanks @nareshkps).
- 2026-07-19 🔧 Real US/HK stock-news articles + MCP factor-analysis fix + a robustness pass: The stock-news tool now returns real Yahoo Finance articles (title/url/source/published/snippet) for US and HK tickers instead of related-instrument matches, still routed through the frozen IP-throttled client (#730, thanks @yxhuang). The MCP
factor_analysistool is realigned to the registered tool's real CSV contract, so calls no longer die onKeyErrorbefore running (#715, closes #635, thanks @Robin1987China). Plus a robustness pass: the whole Kimi K-series (k2/k3/…/for-coding) now auto-forcestemperature=1as the API requires (#701, thanks @sambazhu), andsplit_message, PDF page ranges, and trade-journal date filters all fail fast on degenerate or inverted input instead of hanging or silently returning nothing (#727–#729, thanks @santhreal).
- 2026-07-18 🔧 Binance crypto fallback + parallel-execution and correctness fixes: A Binance loader joins the crypto historical-data fallback chain (#643, thanks @tyj147454413-cmd), and the IBKR connector moves to a thread-local connection pool with snapshot quotes, fixing hangs under parallel agent runs (#636, thanks @MikeCer). Plus a correctness pass: factor analysis rejects non-positive
n_groups, inverted period ranges and non-positive detection windows fail fast, an unnamedDatetimeIndexin the correlation matrix is handled,equity.csvnav/value column aliases are accepted, and empty A-share codes are no longer coerced to000000.SZ(#709–#714, thanks @santhreal). A correlation-rewiring stability factor joins the academic zoo (#705, thanks @ebujinovch), the fundamental zoo is whitelisted for factor analysis (#707, thanks @sambazhu), persisted run state is now fsync-durable (#645, thanks @tyj147454413-cmd), and the dev extra installs the documented Black/Ruff toolchain (#634, thanks @xkam7ar).
- 2026-07-17 🧩 Correlation-regime skill + a broad backtest / data / live-safety correctness pass: a new correlation-regime detection skill (bundled skills → 88, #557, thanks @ebujinovch), a Longbridge runtime connection card (#569, thanks @fanfpy), and user-defined swarm presets loaded from
~/.vibe-trading(#570, thanks @darkknight4563). Plus hardening across the stack: silent-data-corruption fixes in the Futu / Tencent / CCXT / mootdx loaders, look-ahead-bias and strict-OOS guards in the factor bench and Shadow Account, live-trading safety (signed exposure caps, atomic daily order limits, consent-first mandate commits, fail-closed live state), and journal / QVeris-budget / swarm / CI-gate improvements (#552, thanks @xor-xe; much of the correctness work by @xkam7ar).
- 2026-07-16 🔧 Dependency lock repaired + Windows settings save fix: the hash-verified runtime lock is regenerated so Docker's
pip install --require-hashesresolves cleanly again, fixing the incompatiblecaio/pydantic-core/websocketspins (#564, closes #558, thanks @tianrking). Saving Agent LLM settings from the Web UI no longer returns HTTP 500 on Windows — the POSIX-onlyos.fchmodhard
已复制克隆地址到剪贴板