Raw schema
{
"type": "object",
"properties": {
"strategy": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"rules",
"signal_list",
"trade_list"
],
"description": "How the claim is supplied: 'rules' = a catalog strategy re-run by us Β· 'signal_list' = your timestamped BUY/SELL decisions Β· 'trade_list' = your finished round-trips."
},
"name": {
"type": "string",
"description": "Catalog strategy key (type=rules), e.g. 'rsi_sma'."
},
"params": {
"type": "object",
"additionalProperties": {},
"description": "Strategy parameters for type=rules; omit for the audited defaults."
},
"signals": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ts": {
"type": "string",
"description": "ISO timestamp of the decision."
},
"side": {
"type": "string",
"enum": [
"buy",
"sell"
]
}
},
"required": [
"ts",
"side"
],
"additionalProperties": false
},
"description": "type=signal_list: timestamped BUY/SELL signals (paired into round-trips)."
},
"trades": {
"type": "array",
"items": {
"type": "object",
"properties": {
"entry_ts": {
"type": "string"
},
"entry_px": {
"type": "number"
},
"exit_ts": {
"type": "string"
},
"exit_px": {
"type": "number"
},
"side": {
"type": "string",
"enum": [
"long",
"short"
]
}
},
"required": [
"entry_ts",
"entry_px",
"exit_ts",
"exit_px"
],
"additionalProperties": false
},
"description": "type=trade_list: timestamped round-trips with the prices you claim you got."
}
},
"required": [
"type"
],
"additionalProperties": false,
"description": "The claim being validated β supply exactly one of: a catalog strategy (type=rules), your signals (type=signal_list) or your finished trades (type=trade_list)."
},
"market": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Pair / symbol the strategy is claimed to work on, e.g. BTCUSDT."
},
"asset_type": {
"type": "string",
"enum": [
"crypto",
"tokenized_equity",
"tokenized_etf",
"commodities"
],
"description": "Asset class, normally 'crypto'."
},
"interval": {
"type": "string",
"enum": [
"1d",
"2d",
"3d",
"1w",
"1M"
],
"description": "Candle interval the signals refer to. Candle interval: '1d' daily, '2d'/'3d' multi-day, '1w' weekly, '1M' monthly. Multi-day candles (2d/3d) are anchored to the Unix epoch, so one of n possible alignments is used. Measured on our own corpus, the choice of alignment alone moves CAGR by 6.66 pp on average (max 12.30). Treat differences below that as not distinguishable β 1d/2d/3d behaved as one block in our tests, not a ranking."
}
},
"required": [
"symbol",
"asset_type",
"interval"
],
"additionalProperties": false,
"description": "Which market the claim is about β prices are re-fetched from here, not taken from you."
},
"window": {
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "Evaluation start, YYYY-MM-DD."
},
"to": {
"type": "string",
"description": "Evaluation end, YYYY-MM-DD. Default: today."
}
},
"required": [
"from"
],
"additionalProperties": false,
"description": "Period over which the claim is checked."
},
"costs": {
"type": "object",
"properties": {
"fee_bps": {
"type": "number",
"minimum": 0,
"description": "Per-side fee in basis points, e.g. 10 = 0.10%."
}
},
"required": [
"fee_bps"
],
"additionalProperties": false,
"description": "Trading costs. Default 10 bps (crypto) / 5 bps (else) β a gross-only claim usually shrinks once these apply."
},
"oos": {
"type": "object",
"properties": {
"scheme": {
"type": "string",
"enum": [
"split",
"walk_forward"
],
"description": "Out-of-sample scheme: 'split' (one in-sample/out-of-sample cut, default) or 'walk_forward' (rolling re-evaluation)."
},
"split_frac": {
"type": "number",
"minimum": 0.3,
"maximum": 0.9,
"description": "In-sample fraction for scheme=split; default 0.7."
}
},
"additionalProperties": false,
"description": "How the claim is tested out-of-sample. Omit for the default split β the out-of-sample part is what separates a finding from a fit."
},
"context": {
"type": "string",
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""
}
},
"required": [
"strategy",
"market",
"window",
"context"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}