Model SDK, launch-profile AI providers, and one strategy lifecycle across Tester and Launcher.
Breaking platform and exchange changes:
- XTester, Launcher, and MCP Host now require Windows 10 version 2004 (build 19041) or newer and an x64 process. Windows 7 and 32-bit builds are no longer supported. The applications target
.NET 10withnet10.0-windows10.0.26100.0. - BitMEX support has been retired. It is removed from exchange selection, history/symbol/fee/account operations, Launcher bundles, and Research Lab overrides. Legacy BitMEX accounts, symbols, chart layouts, and launch-profile selections are removed or reset during settings normalization.
Model SDK and ONNX:
- Added project-managed ONNX inference through the safe
XTester.ModelsAPI. Import.onnxor portable.xtmodelschema-v2 artifacts, inspect their feature/output contracts, export them again, or install the bundled synthetic demo model. - Models are immutable project artifacts rather than machine-local paths. ONNX bytes, ordered features, normalization, output shapes, and
TrainingDataEndUtcare validated and protected by SHA-256; future-trained or tampered artifacts fail beforeOnInit. - Tester, bundle/headless verification, Paper, and Live use the same pinned CPU execution path:
CPUExecutionProvider, sequential execution, one intra/inter-op thread, and extended graph optimization. Model SDK v1 performs inference only; training, GPU/NPU selection, and hot replacement remain outside this release. - Launcher bundles carry the exact model payload and contract. Strategy versions, Research Lab versions, reports, project sync, readiness checks, and restore operations now preserve and validate model fingerprints.
Strategy AI Provider SDK:
- Strategies can call an existing local provider such as Ollama or LM Studio, or a configured cloud provider, through logical launch-profile slots and the host-managed
XTester.AiProvidersAPI. Provider IDs, models, endpoints, credentials, and transport objects are never exposed to strategy code. - Launch profiles now configure exact slot bindings,
ReplayOnly,RecordMissing, orLiveNoRecordaccess, timeout and rate limits, per-run call/token budgets, and explicit consent tied to the exact remote provider endpoint. - Provider calls are non-blocking inside strategy callbacks. Results become visible only after simulated time advances and must pass strict local JSON/schema validation; transport retries, redirects, endpoint fallback, and oversized responses are blocked.
- Added bounded DPAPI-encrypted record/replay for reproducible runs. Bundle/headless verification and Research Lab never call a provider over the network, and bundles never contain endpoints, keys, prompts, inputs, responses, replay bodies, or transferred remote consent.
- Bundle schema v3 carries only stable strategy/profile identities and a non-secret binding snapshot. Callable AI modes on another machine require an explicit local rebind, validation, consent, and controlled worker restart.
Strategy lifecycle and runtime parity:
- Added the modern lifecycle
OnInit(StrategyContext), keyedOnBar(ISymbolKey, IKline), and exactly-onceOnFinish(StrategyFinishContext)with an explicit completion reason. Existing strategies continue through the legacy compatibility bridge. - The primary instrument is subscribed automatically; additional callbacks use
SubscribeOnBar, while data-only history usesDeclareDataDependencywith a required closed-bar depth. - GUI backtests, bundle/headless runs, Research Lab, Paper, and Live now use the shared runtime dispatcher. Catch-up bars are dispatched at their real close boundaries, multi-feed Live execution advances by the slowest required watermark, and partial initialization, replacement, pause/resume, cancellation, and errors finish the correct run exactly once.
Launcher, MCP, and documentation:
- Launcher can select a launch profile per bot and applies profile changes through a controlled restart. The statistics window now shows safe local-model diagnostics and Strategy AI slot states/counters without exposing provider identity or request contents.
- Added metadata-only MCP/Copilot discovery through
list_strategy_modelsandlist_strategy_ai_slots. The release pipeline now tests before publishing, isolates the self-contained MCP Host, runs its self-test, validates x64 native runtime inventories, and runs model self-tests in both Tester and Launcher. - Added a bilingual Strategy SDK Handbook covering Quickstart, lifecycle, multi-timeframe data, signals, orders, risk, services, ONNX, provider AI, testing, Launcher, recipes, and a generated public API reference. Copilot knowledge, IntelliSense, compiler guidance, sandbox checks, MCP documentation, and platform specifications were updated to the same contract.
Chart and UI polish:
- The last-price marker now shows simulated time remaining until the current bar closes, stays inside the plot, and is drawn above dense order/indicator labels.
- Readiness and compilation work that can take noticeable time now runs away from the UI thread, and the telemetry consent dialog correctly fits localized content at higher DPI settings.
Validation status:
- Automated coverage now includes real ONNX inference, artifact tampering and causality, provider transport/replay/privacy, lifecycle behavior, bundle compatibility, platform guards, and retired-exchange migration.
- The two platform golden acceptance runs now pass in Release: a deterministic synthetic model-enabled strategy and an exact DPAPI-encrypted
ReplayOnlyStrategy AI fixture produce identical decisions, pinned order-trace SHA-256 values, fills, statistics, and model/AI fingerprints through the ordinary TesterSimulationRunner, directBundleBacktestRunner, and an actualXTester.Launcher.exe --workerprocess. These fixtures prove the platform paths; each production strategy and arbitrary ONNX graph still requires its own calibration and acceptance.