portfolio_check
Protect-your-assets check for one portfolio, from your own bars: measurable conditions on the losing side of the user's positions, with the evidence. Read the playbook first: MCP resource thestrat://playbooks/protect-portfolio (or the prompt protect_portfolio).
Returns (1) the market condition: "Algorithmic buying identified in VIX while algorithmic selling in
4 major indexes" (VIX symbol over its M W D 60 opens, SPY QQQ IWM DIA each under all 4), confirmed or
not at a 60-minute close, plus the VIX futures curve state if given; (2) per position, the opens on
the holder's losing side (long: under the open = buyers on that timeframe are losing; short: over the
open = sellers are losing), reversals in force against the position (buy/sell list rule) and setups
against it (trigger not taken), with trigger, target and level of reclaim; (3) concentration: the %
of the user's basket (and of each ETF basket) whose current bar took the prior bar's low or high,
labelled at 80%+. Each part has `text` to quote and source URLs. Conditions only: not a buy or sell
signal. Quote `footer` at the end.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"positions": "<positions>",
"bars_by_timeframe": "<bars_by_timeframe>"
},
"name": "portfolio_check"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| now | No | Current time, ISO 8601. Decides if the last bar is still open. Default: the server clock. | |
| as_of | No | Optional ISO time. Use only bars that start at or before this time (replay a past bar). | |
| positions | Yes | The user's positions: {"NVDA": "long", "TSLA": "short"} or [{"symbol": "NVDA", "side": "long"}]. Up to 25. Sizes are not needed. | |
| vix_curve | No | Optional VIX futures prices {"front": 18.2, "second": 19.0}. Front over second = backwardation. Leave out if you have no curve data (the reply then says: no data). | |
| etf_baskets | No | Optional, up to 3: the holdings of an ETF the user owns, {"WGMI": {"IREN": [...], ...}}, on etf_timeframe. For the concentration check. | |
| etf_timeframe | No | Timeframe of the etf_baskets bars: D (default) or W. | D |
| bars_by_timeframe | Yes | Bars per timeframe, then per symbol: {"M": {"NVDA": [...], "VIXY": [...], "SPY": [...]}, "W": {...}, "D": {...}, "60": {...}}. Each position on the user's timeframes (investor Y; position trader Q M; swing or day trader W D 60). VIX or a VIX ETN (VIXY, VXX, UVXY) and SPY QQQ IWM DIA on M W D 60 for the market condition. The last bar of each timeframe must be the current bar (its open is the open). 60 symbols and 500 bars per symbol per timeframe; 10 to 50 bars are enough. | |
| position_timeframes | No | The user's timeframes for the positions: ["Y"] investor, ["Q", "M"] position trader, ["W", "D", "60"] swing or day trader. Positions are checked only on these. Ask the user. |