{"ok":true,"site":{"host":"quantmcp.vercel.app","url":"https://quantmcp.vercel.app/","type":"live","desc":"QuantMCP","tools":[{"name":"get_workspace_state","kind":"answer","impl":"imperative","description":"Read a compact snapshot of the human researcher’s current QuantMCP workspace without returning the full OHLCV dataset.","title":"Get workspace state","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_active_asset","kind":"act","impl":"imperative","description":"Load an available continuous-futures asset into the shared workspace so the human chart, metrics, and subsequent tools operate on it.","title":"Set active asset","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"asset":{"type":"string","minLength":1,"maxLength":12,"description":"Available futures symbol, for example NQ."}},"required":["asset"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_timeframe","kind":"act","impl":"imperative","description":"Switch the shared human-agent workspace to a deterministic derived timeframe. The chart and metrics update; incompatible bar-indexed research state is cleared.","title":"Set active timeframe","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"timeframe":{"type":"string","enum":["1m","5m","15m","30m","1h"],"description":"Shared workspace aggregation timeframe."}},"required":["timeframe"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"focus_chart_range","kind":"act","impl":"imperative","description":"Move the human-visible chart to an explicit loaded-data time range or around a current market event without reloading the dataset.","title":"Focus chart range","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"start":{"type":"number","description":"Inclusive Unix timestamp in milliseconds."},"end":{"type":"number","description":"Inclusive Unix timestamp in milliseconds."},"eventId":{"type":"string","minLength":1,"maxLength":160}},"oneOf":[{"required":["eventId"]},{"required":["start","end"]}]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_market_data","kind":"answer","impl":"imperative","description":"Return a bounded set of real OHLCV bars from the active loaded dataset. Use it when raw market values are needed; it never returns the entire source file.","title":"Get bounded market data","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"asset":{"type":"string","minLength":1,"maxLength":12},"start":{"type":"number","description":"Inclusive Unix timestamp in milliseconds."},"end":{"type":"number","description":"Inclusive Unix timestamp in milliseconds."},"maxBars":{"type":"integer","minimum":1,"maximum":500,"default":250}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"calculate_indicator","kind":"act","impl":"imperative","description":"Calculate a supported indicator from the active real OHLCV dataset with QuantMCP’s deterministic quantitative engine. Use the explicit indicator enum and period.","title":"Calculate deterministic indicator","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"asset":{"type":"string","minLength":1,"maxLength":12},"indicator":{"type":"string","enum":["SMA","EMA","RSI","ATR","ROLLING_VOLATILITY","ROLLING_STANDARD_DEVIATION","ROLLING_Z_SCORE","MOMENTUM"]},"period":{"type":"integer","minimum":1,"maximum":10000},"start":{"type":"number","description":"Inclusive Unix timestamp in milliseconds."},"end":{"type":"number","description":"Inclusive Unix timestamp in milliseconds."},"maxValues":{"type":"integer","minimum":1,"maximum":500,"default":250}},"required":["indicator","period"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_dataset_summary","kind":"answer","impl":"imperative","description":"Read compact metadata and validation information for the active loaded dataset, without returning OHLCV bars.","title":"Get dataset summary","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"asset":{"type":"string","minLength":1,"maxLength":12}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"query_market_conditions","kind":"answer","impl":"imperative","description":"Search the active OHLCV dataset for historical bars matching structured AND-combined quantitative conditions using only information available at or before each bar. Matching events become visible on the human chart.","title":"Query historical market conditions","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"asset":{"type":"string","minLength":1,"maxLength":12},"conditions":{"type":"array","minItems":1,"maxItems":6,"items":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"kind":{"enum":["sma","ema","previous-high","previous-low"]},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]}},"required":["kind","period","comparator"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"rsi"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number","minimum":0,"maximum":100}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"atr"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"volatility"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"z-score"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"momentum"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"volatility-percentile"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"lookback":{"type":"integer","minimum":1,"maximum":100000},"threshold":{"type":"number","minimum":0,"maximum":100}},"required":["kind","period","comparator","lookback","threshold"]}]}}},"required":["conditions"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"calculate_forward_returns","kind":"act","impl":"imperative","description":"Run a deterministic forward-return event study for current or supplied market-event IDs and update the human workspace study panel.","title":"Calculate forward returns","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"asset":{"type":"string","minLength":1,"maxLength":12},"eventIds":{"type":"array","minItems":1,"maxItems":1000,"items":{"type":"string","minLength":1,"maxLength":160}},"horizons":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"integer","minimum":1,"maximum":10000}}},"required":["horizons"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"annotate_chart","kind":"act","impl":"imperative","description":"Create a safe plain-text annotation on a current-dataset bar or market event so the human researcher can see the agent’s context on the chart.","title":"Annotate chart","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"eventId":{"type":"string","minLength":1,"maxLength":160},"timestamp":{"type":"number","description":"A Unix-millisecond timestamp of an active-dataset bar."},"type":{"type":"string","enum":["note","line","range","marker"]},"label":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","minLength":1,"maxLength":500}},"required":["type","label"],"oneOf":[{"required":["eventId"]},{"required":["timestamp"]}]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_research_finding","kind":"act","impl":"imperative","description":"Persist a concise historical research observation in the shared workspace. Findings are observations, not trade recommendations.","title":"Create research finding","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string","minLength":1,"maxLength":120},"summary":{"type":"string","minLength":1,"maxLength":600},"confidence":{"type":"string","enum":["low","medium","high"]},"relatedEventIds":{"type":"array","maxItems":100,"items":{"type":"string","minLength":1,"maxLength":160}}},"required":["title","summary","confidence"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_selected_event","kind":"answer","impl":"imperative","description":"Read the market event currently selected in the shared human workspace, including its timestamp, bar index, and matched conditions.","title":"Get selected market event","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"compare_timeframes","kind":"act","impl":"imperative","description":"Run the same no-lookahead condition scan and forward-return study across derived timeframes without changing the human-visible chart.","title":"Compare timeframe studies","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"asset":{"type":"string","minLength":1,"maxLength":12},"timeframes":{"type":"array","minItems":1,"maxItems":5,"uniqueItems":true,"items":{"type":"string","enum":["1m","5m","15m","30m","1h"]}},"conditions":{"type":"array","minItems":1,"maxItems":6,"items":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"kind":{"enum":["sma","ema","previous-high","previous-low"]},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]}},"required":["kind","period","comparator"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"rsi"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number","minimum":0,"maximum":100}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"atr"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"volatility"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"z-score"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"momentum"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"volatility-percentile"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"lookback":{"type":"integer","minimum":1,"maximum":100000},"threshold":{"type":"number","minimum":0,"maximum":100}},"required":["kind","period","comparator","lookback","threshold"]}]}},"forwardHorizons":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"integer","minimum":1,"maximum":10000}}},"required":["timeframes","conditions","forwardHorizons"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"run_universe_study","kind":"act","impl":"imperative","description":"Run one no-lookahead condition definition on selected or all assets at one shared timeframe and rank only adequately sampled assets using transparent chronological out-of-sample research scores. The result is visible in Universe Research.","title":"Run cross-asset universe study","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"assets":{"oneOf":[{"type":"string","const":"all"},{"type":"array","minItems":1,"maxItems":8,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":12}}]},"timeframe":{"type":"string","enum":["1m","5m","15m","30m","1h"]},"conditions":{"type":"array","minItems":1,"maxItems":6,"items":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"kind":{"enum":["sma","ema","previous-high","previous-low"]},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]}},"required":["kind","period","comparator"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"rsi"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number","minimum":0,"maximum":100}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"atr"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"volatility"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"z-score"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"momentum"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"volatility-percentile"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"lookback":{"type":"integer","minimum":1,"maximum":100000},"threshold":{"type":"number","minimum":0,"maximum":100}},"required":["kind","period","comparator","lookback","threshold"]}]}},"forwardHorizons":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"integer","minimum":1,"maximum":10000}},"minimumEvents":{"type":"integer","minimum":1,"maximum":1000,"default":30}},"required":["timeframe","conditions","forwardHorizons"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"optimize_parameters","kind":"act","impl":"imperative","description":"Search a bounded grid only on chronological training data, validate candidates out of sample, and favor stable neighboring parameter regions over isolated historical peaks. It does not change the active chart.","title":"Search robust parameters","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"asset":{"type":"string","minLength":1,"maxLength":12},"timeframe":{"type":"string","enum":["1m","5m","15m","30m","1h"]},"conditions":{"type":"array","minItems":1,"maxItems":6,"items":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"kind":{"enum":["sma","ema","previous-high","previous-low"]},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]}},"required":["kind","period","comparator"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"rsi"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number","minimum":0,"maximum":100}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"atr"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"volatility"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"z-score"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"momentum"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"volatility-percentile"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"lookback":{"type":"integer","minimum":1,"maximum":100000},"threshold":{"type":"number","minimum":0,"maximum":100}},"required":["kind","period","comparator","lookback","threshold"]}]}},"parameterSpace":{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"rsiPeriod":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"number","exclusiveMinimum":0}},"rsiThreshold":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"number","exclusiveMinimum":0}},"smaPeriod":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"number","exclusiveMinimum":0}},"emaPeriod":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"number","exclusiveMinimum":0}},"volatilityPeriod":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"number","exclusiveMinimum":0}},"volatilityPercentileThreshold":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"number","exclusiveMinimum":0}},"volatilityLookback":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"number","exclusiveMinimum":0}}}},"forwardHorizon":{"type":"integer","minimum":1,"maximum":10000},"trainRatio":{"type":"number","exclusiveMinimum":0.5,"exclusiveMaximum":0.9,"default":0.7},"minimumEvents":{"type":"integer","minimum":1,"maximum":1000,"default":30}},"required":["timeframe","conditions","parameterSpace","forwardHorizon"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"optimize_universe","kind":"act","impl":"imperative","description":"Evaluate one bounded parameter space across the selected universe. Scores use median cross-asset out-of-sample quality and penalize asset failures, rather than letting one market dominate. The best shared region is persisted in the workspace for the next trade simulation.","title":"Search universal parameter regions","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"assets":{"oneOf":[{"type":"string","const":"all"},{"type":"array","minItems":1,"maxItems":8,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":12}}]},"timeframe":{"type":"string","enum":["1m","5m","15m","30m","1h"]},"conditions":{"type":"array","minItems":1,"maxItems":6,"items":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"kind":{"enum":["sma","ema","previous-high","previous-low"]},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]}},"required":["kind","period","comparator"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"rsi"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number","minimum":0,"maximum":100}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"atr"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"volatility"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"z-score"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"momentum"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"threshold":{"type":"number"}},"required":["kind","period","comparator","threshold"]},{"type":"object","additionalProperties":false,"properties":{"kind":{"const":"volatility-percentile"},"period":{"type":"integer","minimum":1,"maximum":10000},"comparator":{"type":"string","enum":["above","below"]},"lookback":{"type":"integer","minimum":1,"maximum":100000},"threshold":{"type":"number","minimum":0,"maximum":100}},"required":["kind","period","comparator","lookback","threshold"]}]}},"parameterSpace":{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"rsiPeriod":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"number","exclusiveMinimum":0}},"rsiThreshold":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"number","exclusiveMinimum":0}},"smaPeriod":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"number","exclusiveMinimum":0}},"emaPeriod":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"number","exclusiveMinimum":0}},"volatilityPeriod":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"number","exclusiveMinimum":0}},"volatilityPercentileThreshold":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"number","exclusiveMinimum":0}},"volatilityLookback":{"type":"array","minItems":1,"maxItems":20,"uniqueItems":true,"items":{"type":"number","exclusiveMinimum":0}}}},"forwardHorizon":{"type":"integer","minimum":1,"maximum":10000},"minimumEvents":{"type":"integer","minimum":1,"maximum":1000,"default":30}},"required":["timeframe","conditions","parameterSpace","forwardHorizon"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"simulate_trades","kind":"act","impl":"imperative","description":"Simulate deterministic historical trades from current events using explicit entry, stop, target, maximum-hold, and OHLC collision rules. This updates the visible Trade Study; it never sends orders.","title":"Simulate historical trades","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"asset":{"type":"string","minLength":1,"maxLength":12},"timeframe":{"type":"string","enum":["1m","5m","15m","30m","1h"]},"eventIds":{"type":"array","minItems":1,"maxItems":1000,"items":{"type":"string","minLength":1,"maxLength":160}},"direction":{"type":"string","enum":["long","short"]},"entryRule":{"type":"string","enum":["event_close","next_bar_open"],"default":"next_bar_open"},"stop":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"const":"fixed_percent"},"percent":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["type","percent"]},{"type":"object","additionalProperties":false,"properties":{"type":{"const":"atr"},"period":{"type":"integer","minimum":1,"maximum":10000},"multiplier":{"type":"number","exclusiveMinimum":0,"maximum":100}},"required":["type","period","multiplier"]}]},"target":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"type":{"const":"fixed_percent"},"percent":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["type","percent"]},{"type":"object","additionalProperties":false,"properties":{"type":{"const":"atr"},"period":{"type":"integer","minimum":1,"maximum":10000},"multiplier":{"type":"number","exclusiveMinimum":0,"maximum":100}},"required":["type","period","multiplier"]},{"type":"object","additionalProperties":false,"properties":{"type":{"const":"r_multiple"},"multiple":{"type":"number","exclusiveMinimum":0,"maximum":100}},"required":["type","multiple"]}]},"maxHoldingBars":{"type":"integer","minimum":1,"maximum":10000},"collisionPolicy":{"type":"string","enum":["stop_first","target_first","ambiguous"],"default":"stop_first"}},"required":["direction","stop","target","maxHoldingBars"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"focus_trade","kind":"act","impl":"imperative","description":"Select a simulated historical trade, focus its chart window, and show the full entry/stop/target risk-reward overlay.","title":"Focus historical trade","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"tradeId":{"type":"string","minLength":1,"maxLength":220}},"required":["tradeId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Finance & Crypto","apiSurface":"spec","toolCount":18}}