Skip to article
XTester Help
XTester Studio

Researches

Work with strategy research, compare versions and inspect experiment results.

Reviewed: Applies to: 1.0.0-preview.1

The tabs

A research window gathers the overview, versions, graph, experiments, environment health and reports. One window per research: reopening reveals the existing one instead of creating a second.

Application screenshotXTester 1.0.0-preview.1
After importing the project, Studio saved version v1 as Compiled. Metrics appear after a backtest.Interface screenshot · XTester 1.0.0-preview.1
  1. Version v1 and its actions

A single refresh reads the whole state at once — specification, run parameters, run state, experiments and reports — so the tabs never disagree with each other.

The version graph

The graph shows versions and where they came from. A node is dragged by hand and the layout is saved; a double click opens the version.

Application screenshotXTester 1.0.0-preview.1
Version v2 came from a manual edit to v1 in this example. Both versions were backtested. Double-click a node to open its version.Interface screenshot · XTester 1.0.0-preview.1

Versions are compared with each other, and the best one is carried into the project by its own command. Recomputing fitness and regenerating documents are separate commands as well.

The research library

The library gathers researches and can import the strategy of the open project as a starting point.

A self-test of the research side runs by its own command and reports whether the environment is ready for runs.

The AI laboratory: how it works

The laboratory researches a strategy for you: it takes a specification, writes the strategy code, measures it on history, proposes hypotheses, tests them and shows what came of it. You set the direction and the limits; the laboratory works inside them.

Steps
  1. Open a strategy folder and create a research, or select an existing one.
  2. Check the session limits: how many ideas, how many experiments at once, how much time and budget. Every field says what it costs you.
  3. Press Start. From there you can leave it alone, or steer the director with messages in the chat.
  4. Mandatory directives must be obeyed; recommendations may be rejected with a reason.
  5. Once a version is measured, its card answers six questions: what changed, what it beats, what confirms it, which checks it passed, what is not proven and why this one.

The work grows in branches. A branch is one idea («enter only in an uptrend», «stop from volatility»). Inside a branch live versions: each version is one changed code with measured metrics. A branch can fork from a version, and two branches can be combined.

The state of the work is visible in three places at once. The tree or the table on the left lists every branch and version. The graph shows how they are connected, and it can be moved into a window of its own; the tab it leaves then shows the card of the selected branch. The chat says what the director is doing right now and why.

On the right there is a summary column: which market and which period the research is measured on, which rates a run is charged, which version is ready to apply and what is being computed right now. Those are the conditions every number in the window was earned under; without them a metric means nothing.

Tree, table and graph

The tree shows origin: which version a branch forked from and what grew out of it. It answers «where did this come from».

Application screenshotXTester 1.0.0-preview.1
The original v1 was backtested in this example. After you fork a branch, the tree shows the source version, the new branch status and details of the selected direction.Interface screenshot · XTester 1.0.0-preview.1
  1. Tree and source version

The table lists every version of the research at once. Any column sorts on a click of its header, and a second click reverses it. The metric columns are chosen by the laboratory — the ones actually measured in this research. A click on a row selects the branch, a double click opens the version.

The graph draws the same branches and versions as connections. It moves into a window of its own with «Separate Window» and comes back with «Return to the Tab». A right click on a node opens its actions; a double click on a version opens its code.

What costs the research is measured with

Every metric of the laboratory depends on the costs the run charged. When the market profile of the exchange is not configured, the laboratory charges that exchange’s standard public base-tier rates and says so in the chat and in the version passport.

Application screenshotXTester 1.0.0-preview.1
The example study summary shows the rate source, maker and taker fees, slippage and half-spread.Interface screenshot · XTester 1.0.0-preview.1
  1. Run costs

Standard rates are real costs, but not yours: your VIP tier, discounts and slippage may differ. Your own values live in Settings → Accounts, where the «Standard Rates» button fills the boxes with the public tariffs so you can adjust them. Your settings always win over the standard ones.

The rates in force are shown in the summary column on the right, under «Run costs»: the source (the exchange standard, an average, or your account), taker and maker, slippage, half-spread and funding. All of them are shown as percent.

The market phase focus narrows the research to one phase: uptrend, downtrend, range or transition. With a focus the strategy opens new positions only while the classifier reports that phase; exits and stops always work. By default the research runs on the whole history.

Actions that change your project

Three actions of the laboratory reach outside it, so each says what it will do first.

Application screenshotXTester 1.0.0-preview.1
Studio offers a new strategy folder or a replacement after reviewing the diff. The screenshot shows the destination picker.Interface screenshot · XTester 1.0.0-preview.1
  1. Choose where the code goes

«Take Into the Project» puts the code of a version either in a new folder beside the strategy (your code is untouched) or over the open folder. In the second case the differences are shown first and you can still cancel.

«Take My Code Edits as a New Version» takes what is open in your editor and records it as a new version of the current branch, measured on the same period and the same costs. The version it came from stays as it was.

If the strategy is registered to another folder, the laboratory asks whether this is the same strategy that moved or a separate copy. The first keeps the research with all its history; the second starts a new strategy and leaves the earlier research with the old folder.

Market screener on historical and simulation time

Open XTester: Open Market Screener from the command palette. Choose a market and any or all downloaded instruments. No strategy project is required for historical replay or a snapshot. The instrument count is not capped at twenty.

Application screenshotXTester 1.0.0-preview.1
Snapshot at End Time shows the UTC time, filters, and calculated metrics for the selected instrument.Interface screenshot · XTester 1.0.0-preview.1

Set the UTC period, timeframe, rolling window, recalculation interval and candidate conditions. Historical Replay calculates consecutive time slices; Snapshot at End Time calculates only the selected end time. Include Forming Candle explicitly uses the ordinary modeled minute path, not recorded intraminute trades. Otherwise only closed bars are considered.

Follow Simulation observes a prepared interactive simulation on its own model steps, including its selected refinement input. Prepare and pause the simulation, choose Use Simulation Period, start screening, wait for input preparation and then advance or resume the simulation. Downloaded pairs not resident in the simulation use owned temporary ranges without changing its loaded universe. A coarser simulation step never fabricates intermediate samples.

Move the historical-sample slider and page through instruments. Show Matches Only filters the visible page; missing coverage and failed reads remain explicit. Results are descriptive observations, not a profitability verdict. A zero volume ratio may be unavailable when no prior volume exists.

Resource Limits controls decompressed source reads, saved results, temporary data and elapsed time. Large gzip prefixes also consume the read budget. Exhaustion or cancellation preserves durable result pages and partial coverage. Closing the panel cancels only its active screener, not the simulation; saved research and result pages remain available through Market Research and MCP.

The opening menu now includes saved definitions, saved snapshots and previous runs. Saved results can be viewed even after raw history has been removed. Save Definition retains the whole instrument set, timeframe, lookback, cadence, forming-candle choice and conditions. Old versions can be selected explicitly; archive/restore preserves them.

Advanced Conditions accepts the common condition JSON: metric/comparison/value, all/any arrays and not. The same value is used in Studio, Copilot/MCP and strategy code. Missing values never become matches just by negating a condition. A selected universe can include multiple markets and venues.

Save Snapshot preserves the complete calculated time slice rather than only the displayed instrument page, with its frozen definition and input hashes. Partial coverage stays explicit. Import/export uses self-contained JSON; imported observations remain unverified, and a hash proves integrity rather than market truth. Closing a viewer does not cancel a run started elsewhere.

Copy C# Code binds the current definition as portable JSON. Register context.Screeners().Create/CreateJson in OnInit, then read Current in OnBar/OnTick; Calculate forces a fresh read, At accepts only earlier/current model time. The Library property saves/reads exact versions and hides future snapshots. Use the same portable JSON in Python, JS/TS, Java, Go, C++, Rust, R or Pine SDKs; the calculations remain in XTester.

For a robot on another host, embed the exported definition JSON in source or a normal strategy parameter. OpenSaved(id,version,sha256) requires that exact document in the destination profile library; it never silently selects a replacement. Definition/snapshot/library budgets are 2 MiB/16 MiB/512 MiB; archive keeps immutable history. No screener operation changes trading permissions.

Related commands

Command Palette reference
Command nameIdentifier

Find these actions by name in the Command Palette; availability depends on the current project and operation state.

Open Strategy Laboratoryxtester.openLab
Compose Specification…xtester.research.buildSpecification
Compose Specification for Research…xtester.research.composeSpec
New Research…xtester.research.create
Delete Research…xtester.research.delete
Improve in Strategy Laboratoryxtester.research.importFromProject
Open Researchxtester.research.open
Open Specification Chat…xtester.research.openSpecificationChat
Strategy Laboratory: Recalculate Fitnessxtester.research.recalcFitness
Refresh Researchesxtester.research.refresh
Strategy Laboratory: Rebuild Version Reportsxtester.research.regenDocs
Rename Research…xtester.research.rename
Strategy Laboratory: Self-Testxtester.research.selftest
Strategy Library of the Labxtester.research.showLibrary
Start: Create or Open…xtester.startPrompt
Open Market Screenerxtester.screener.open