list_strategies
The compiled native strategy names a profile's strategy.name can resolve on the datahub you are pointed at.
Asks the remote vike-datahub server which compiled native backtest strategies it offers —
the names a profile's strategy.name can resolve. Takes no arguments, requires a reachable
datahub at --addr, and answers from a compile-time constant rather than from the store.
Input and output
The input schema is an empty object. tool_list_strategies connects like the run tools and calls
DatahubClient::list_strategies, which sends the ListStrategies verb and reads back
Response::Strategies — vike_backtest::harness::STRATEGIES, over RPC, in its declared order.
That order is a documented wire property, so the answer is stable across calls rather than
alphabetized by whoever rendered it.
{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"list_strategies","arguments":{}}}The result is { "strategies": [ … ] } — a flat list of names. As the const stands in this
workspace, in declared order:
{ "strategies": [
"buy_hold", "rotation_top_k", "bracket_per_symbol", "gated_weights", "caps_sizers_mask",
"tick_pair_mse", "cheap_catch_updown_fair_value", "sport_copy_follower", "grid",
"dca_accumulate", "spread_maker", "gueant_maker", "trailing_scalper", "momentum",
"funding_carry", "funding_capture", "pairs_zscore"
] }Call the tool rather than copying that list: the roster belongs to the server's build, and this tool exists so an agent can discover it instead of assuming it.
What the roster is, and is not
STRATEGIES is the union of two registry halves. The portable half lives in
vike_strategy::registry and is generic over the broker, so the same strategy a backtest ran can
be mounted by the live daemon. The simulator half stays in vike-backtest for two reasons that
vike_strategy::SIMULATOR_ONLY keeps apart: five names are impl Strategy<SimBroker> reference
strategies that reach the simulator's own machinery, and two are portable in principle but reach
that crate's internal modules. Either way, vike-backtest is the crate the live daemon
deliberately does not depend on, so those names backtest and do not mount.
The portable registry and
simulator-only strategies are the two pages; each portable
name also has its own template page with its parameter keys.
rhai is not in this list, and that is deliberate
The registry has a "rhai" arm, and it is the one a script runs through — but it needs a src
param, so it is not resolvable with default params. Listing it would break every consumer that
enumerates this roster and resolves each name with empty params. Scripts are the other route to
the same engine: hand your source to run_backtest's script
argument under name = "rhai", and use list_templates for
starters.
A user strategy the server can run is not in this answer
strategy_by_name tries the built-in arms first and then consults the user registry compiled from
user_data/strategies/rust, so a user name resolves — but the wire verb returns
harness::STRATEGIES and nothing else. The list is the built-in roster, not everything the server
will accept. The harness's own "unknown strategy" error does name both sets, so a typo's message
is more complete than this tool's answer.
Failure modes
An unknown strategy.name is a validation error at profile load — the harness fails fast rather
than silently no-opping on a typo, which is why checking against this list before authoring a
profile is worth one call.
Unlike the three run verbs, ListStrategies is observe scope on the server: it returns a
compile-time const roster, not store contents, and is served on every build, DataFusion or not. It
is still reached here through DatahubClient::connect, so a datahub that advertises the auth
feature refuses at connect like every other tool on this plane. An unreachable server is a clean
tool error, never a panic —
list_strategies_without_a_reachable_datahub_is_a_clean_error is the pin, and
list_strategies_is_advertised_read_only holds its readOnlyHint.
The prompt
Which built-in strategies can I name in a profile on this server?
Then pair the name with list_series to pick a [data] range,
and run_backtest to run it.
list_indicators
The host-bound indicators a Rhai strategy can actually call — a compact roster by default, detail pulled per name or per family.
list_series
Enumerate every stored data series the remote vike-datahub server holds, each with its cheap coverage, so an agent can pick a real date range before it writes a profile.