Releases: 79231232393/XTester-releases
Release list
XTester v.0.0.75
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.
XTester v.0.0.73
Opt-in anonymous telemetry, price-chart measurement ruler, fully localized statistics window.
Privacy & telemetry (strictly opt-in):
- XTester can now send anonymous usage statistics and error reports — but only after you explicitly
allow it. A privacy dialog on first launch lists exactly what is sent (features used, app version,
exchange/pair, error types) and what is never sent (strategy code and names, API keys, personal
data, local paths, logs, files). Nothing is collected or transmitted before you answer;
"Ask me later" simply postpones the question. - A new checkbox in Settings → General lets you change the choice at any time. Turning telemetry
off stops sending immediately and deletes any locally queued data. - Crash reports ask for separate approval per crash and are heavily sanitized: no raw logs or dumps,
no exception messages, only XTester's own stack frames. Declining deletes the report locally. - The "application ended unexpectedly" prompt was redesigned: it now appears after the main window
loads, matches the app theme, and can open the local diagnostics folder in one click.
Chart:
- Measurement ruler: hold Ctrl (or Alt) and drag on the price chart to measure any range —
the label shows price change (absolute and percent), elapsed time, and bar count. Green when
measuring up, red when down.
Strategy statistics:
- The statistics window is now fully localized (Russian and English): tabs, metric captions, chart
legends, trades table, loading and error messages. Numbers, dates, and durations follow the
selected locale; capital and position sizes are shown as plain amounts without a currency symbol.
AI Research Lab:
- "Improve in AI Lab" no longer creates duplicate research for the same strategy: if the project
already has one, it opens the existing research and posts the fresh backtest metrics into its chat.
MCP server:
- Unexpected errors during a tool call are returned to the AI assistant as a regular tool error
instead of breaking the protocol; a compile refused during a running backtest/lab job reports
a distinct busy state; fatal host errors are printed clearly instead of dying silently.
Distribution:
- XTester was submitted to the Windows Package Manager: once approved,
winget install Elinesoft.XTesterinstalls the app with no browser download.
XTester v.0.0.72
Telegram control of simulations, smoother AI Copilot chat, Research Lab import, project-metadata sync.
Telegram:
- A simulation can now pause on
Telegram.Ask, wait for a real inline-button answer in wall-clock
time, and automatically resume the accelerated run from the same simulation point. - Launch profiles can instead auto-select button 1, 2, or 3, or leave a question unanswered,
so deterministic backtests can pass Telegram decisions without pausing. - Telegram decisions are restricted to the originating chat/message and authorized user IDs;
callback tokens are session-scoped so stale buttons cannot affect a later run.
AI Copilot:
- Chat rendering goes through a sequential render queue: streaming deltas are merged instead of
piling up, and the latest turn updates atomically without page reloads — long streamed answers
no longer freeze or flicker the chat. - The chat input box keeps its chosen height across window resizes and restarts.
Research Lab:
- Importing a project into the Lab builds the spec from the real strategy code, and fresh backtest
metrics (when available) are included in the context; the spec can be edited in the spec window
before the research starts. - The research title is generated by the LLM from the finished spec, with a deterministic fallback.
- Local reasoning models (LM Studio): thinking output is reliably stripped from answers.
Project sync:
- Project name, description, and version are merged three-way with the on-disk project, and window
captions / explorer labels update when metadata arrives from disk — external edits no longer
clobber each other.
Docs & localization:
- Help updated (Launcher, Projects, Research Lab, window reference) in Russian and English;
continued English localization of new UI messages.
XTester v.0.0.71
Manual price-scale zoom, clickable statistics, and historical data gap repair.
Chart:
- Manual price axis scaling: press and hold the left mouse button on the price scale and drag —
down widens the range, up narrows it. While the manual scale is active, auto-fit is off;
double-click the scale to return to automatic scaling. The chosen scale is remembered
per symbol and timeframe. - The crosshair is now drawn to the right of the current simulation time as well — across
the entire visible area.
Strategy statistics:
- The equity chart legend is clickable: click "Strategy" or "Benchmark" to hide/show the series
(the item turns gray but stays in place). At least one series is always visible — hide the only
visible one and the other turns on automatically. The Y axis fits the actually visible series,
including after auto-refresh. - Removed the empty utility column on the left of the trades table — the table starts right at the data.
Data:
- Minute-gap repair for downloaded history: new tools find gaps in stored data and re-download them
from the exchange; a registry of known exchange-side gaps (delistings/maintenance) avoids
re-downloading them. - History-loss protection on save: data on disk and in memory are merged instead of overwritten.
AI & service:
- AI commit message generation works with reasoning models (including local LM Studio ones):
higher token budget, thinking is stripped from the answer, and an empty answer shows the reason
instead of failing silently. - Removed the false "crash report" prompt when starting after rebuilding from sources.
- English localization of the new messages (gap repair, chart errors).
XTester v.0.0.70
Reliable autonomous strategy research, convenient version navigation, and a new Git diff preview.
AI Research Lab:
- The research loop no longer continues known-dead branches: the base version is chosen by
hard-requirement compliance, runtime telemetry quality and objective progress, and finishing
a research run requires a fresh Walk-Forward / Out-of-Sample check. - Added semantic checks of the generated C# before backtesting: unreachable entries, look-ahead
in Donchian breakouts, wrong funnel counter order, inconsistent ATR units, double risk scaling,
and a missing protective exit. - Plateau mode now truly waits for the user's choice. Auto-continue is allowed only after the
regular iteration limit; questions and ordinary chat messages are not lost, and direct
instructions feed into the next hypothesis. - Restored the cumulative LLM token counter after reopening a research; legacy data is normalized
without resetting. Regular[HALT]risk-stop events are no longer counted as exceptions. - Fixed the false "m15 data unavailable" message after warm-up and an attempt to parse
a PlainText/C# model response as JSON.
Lab navigation & UI:
- "All / Working / Broken" filters above the version tree. Filtering keeps the ancestor path
to a matching strategy while unrelated dead branches are hidden. - Added a sortable table view with summary metrics, Fitness delta and genome parameter search;
switching between the tree and the table adapts the panel width without overlapping buttons. - Fixed the Director chat message queue, selected version persistence, pause state restore,
and premature skipping of the interactive plateau choice.
Git & windows:
- Git history got a colored line-by-line diff preview (WebView2) with correct line numbers
and a stable changed-files table. - Source control keeps a single primary Commit button; "Commit & push" and "Commit to a new
branch" moved into a compact menu. - Improved window geometry restore across monitor and DPI changes.
Reliability:
- The lab's headless backtest reliably restores the shared simulator lifecycle;
step-size/min-notional rejections and real fills are correctly reflected in diagnostics
and candidate selection. - Extended the regression suite for AI Lab, Git diff, localization and window geometry.