{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://stock-trek.com/docs/schemas/signal/v0.3/schema.json",
"title": "Stock-Trek Event",
"description": "Schema for crypto trading signals with market regime context and probabilistic predictions",
"type": "object",
"properties": {
"metadata": {
"$ref": "#/definitions/metadata"
},
"signal": {
"$ref": "#/definitions/StockTrekSignal"
}
},
"additionalProperties": false,
"required": [
"metadata",
"signal"
],
"definitions": {
"confidence_probabilities": {
"type": "object",
"properties": {
"p01": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"p05": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"p10": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"p25": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"p50": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"p75": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"p90": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"p95": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"p99": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"additionalProperties": false,
"required": [
"p01",
"p05",
"p10",
"p25",
"p50",
"p75",
"p90",
"p95",
"p99"
]
},
"confidence_timings": {
"type": "object",
"properties": {
"p01": {
"type": "integer",
"minimum": 0
},
"p05": {
"type": "integer",
"minimum": 0
},
"p10": {
"type": "integer",
"minimum": 0
},
"p25": {
"type": "integer",
"minimum": 0
},
"p50": {
"type": "integer",
"minimum": 0
},
"p75": {
"type": "integer",
"minimum": 0
},
"p90": {
"type": "integer",
"minimum": 0
},
"p95": {
"type": "integer",
"minimum": 0
},
"p99": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false,
"required": [
"p01",
"p05",
"p10",
"p25",
"p50",
"p75",
"p90",
"p95",
"p99"
]
},
"confidence_percentage_changes": {
"type": "object",
"properties": {
"p01": {
"type": "number",
"minimum": -100
},
"p05": {
"type": "number",
"minimum": -100
},
"p10": {
"type": "number",
"minimum": -100
},
"p25": {
"type": "number",
"minimum": -100
},
"p50": {
"type": "number",
"minimum": -100
},
"p75": {
"type": "number",
"minimum": -100
},
"p90": {
"type": "number",
"minimum": -100
},
"p95": {
"type": "number",
"minimum": -100
},
"p99": {
"type": "number",
"minimum": -100
}
},
"additionalProperties": false,
"required": [
"p01",
"p05",
"p10",
"p25",
"p50",
"p75",
"p90",
"p95",
"p99"
]
},
"generator": {
"type": "object",
"properties": {
"generator_id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string"
},
"version": {
"type": "string"
},
"creator": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"generator_id",
"name",
"version",
"creator"
]
},
"provenance": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"methodology": {
"type": "string"
},
"references": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"additionalProperties": false
}
},
"additionalProperties": false,
"required": [
"description",
"methodology"
]
},
"event": {
"type": "object",
"properties": {
"event_id": {
"type": "string",
"format": "uuid"
},
"generated_timestamp_ms": {
"type": "integer",
"minimum": 0
},
"generated_timezone": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"event_id",
"generated_timestamp_ms",
"generated_timezone"
]
},
"instrument": {
"type": "object",
"properties": {
"product": {
"type": "string",
"enum": [
"spot"
]
},
"base": {
"type": "string"
},
"quote": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"product",
"base",
"quote"
]
},
"market_regime": {
"type": "object",
"properties": {
"cycle": {
"type": "object",
"properties": {
"accumulation": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"distribution": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"markup": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"markdown": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"neutral": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"additionalProperties": false,
"required": [
"accumulation",
"distribution",
"markup",
"markdown",
"neutral"
]
},
"classifications": {
"type": "object",
"properties": {
"dominant": {
"type": "string"
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"top_alternatives": {
"type": "object",
"additionalProperties": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"maxProperties": 5
},
"unclassified": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"additionalProperties": false,
"required": [
"dominant",
"confidence",
"top_alternatives",
"unclassified"
]
},
"trend": {
"type": "object",
"properties": {
"bullish": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"bearish": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"sideways": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"additionalProperties": false,
"required": [
"bullish",
"bearish",
"sideways"
]
},
"volatility": {
"type": "object",
"properties": {
"snapshot": {
"type": "object",
"properties": {
"high": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"low": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"additionalProperties": false,
"required": [
"high",
"low"
]
},
"trend": {
"type": "object",
"properties": {
"expansion": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"compression": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"additionalProperties": false,
"required": [
"expansion",
"compression"
]
}
},
"additionalProperties": false,
"required": [
"snapshot",
"trend"
]
}
},
"additionalProperties": false,
"required": [
"cycle",
"classifications",
"trend",
"volatility"
]
},
"regime_persistence": {
"type": "object",
"properties": {
"regime_persistence_confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"remaining_durations_millis": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false,
"required": [
"regime_persistence_confidence",
"remaining_durations_millis"
]
},
"horizon_confidences_by_millis": {
"type": "object",
"additionalProperties": {
"type": "integer",
"minimum": 0
},
"minProperties": 1,
"maxProperties": 20
},
"prediction_risk": {
"type": "object",
"properties": {
"percentage_risks": {
"type": "object",
"properties": {
"cvar_95": {
"type": "number",
"exclusiveMaximum": 0,
"minimum": -100
},
"cvar_99": {
"type": "number",
"exclusiveMaximum": 0,
"minimum": -100
},
"var_95": {
"type": "number",
"exclusiveMaximum": 0,
"minimum": -100
},
"var_99": {
"type": "number",
"exclusiveMaximum": 0,
"minimum": -100
},
"max_drawdown_95": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"max_drawdown_99": {
"type": "number",
"minimum": 0,
"maximum": 100
}
},
"additionalProperties": false,
"required": [
"cvar_95",
"cvar_99",
"var_95",
"var_99",
"max_drawdown_95",
"max_drawdown_99"
]
},
"risk_factors": {
"type": "object",
"additionalProperties": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"maxProperties": 20
}
},
"additionalProperties": false,
"required": [
"percentage_risks",
"risk_factors"
]
},
"market_context": {
"type": "object",
"properties": {
"market_regime": {
"$ref": "#/definitions/market_regime"
},
"regime_persistence": {
"$ref": "#/definitions/regime_persistence"
}
},
"additionalProperties": false,
"required": [
"market_regime",
"regime_persistence"
]
},
"prediction": {
"type": "object",
"properties": {
"horizon_confidences_by_millis": {
"$ref": "#/definitions/horizon_confidences_by_millis"
},
"optimal_horizon_millis": {
"type": "integer",
"minimum": 0
},
"percentage_changes": {
"$ref": "#/definitions/confidence_percentage_changes"
},
"risk": {
"$ref": "#/definitions/prediction_risk"
},
"validity_duration_millis": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false,
"required": [
"horizon_confidences_by_millis",
"optimal_horizon_millis",
"percentage_changes",
"risk",
"validity_duration_millis"
]
},
"metadata": {
"type": "object",
"properties": {
"$schema": {
"type": "string",
"format": "uri"
},
"generator": {
"$ref": "#/definitions/generator"
},
"provenance": {
"$ref": "#/definitions/provenance"
},
"event": {
"$ref": "#/definitions/event"
}
},
"additionalProperties": false,
"required": [
"$schema",
"generator",
"provenance",
"event"
]
},
"StockTrekSignal": {
"type": "object",
"properties": {
"instrument": {
"$ref": "#/definitions/instrument"
},
"market_context": {
"$ref": "#/definitions/market_context"
},
"prediction": {
"$ref": "#/definitions/prediction"
}
},
"additionalProperties": false,
"required": [
"instrument",
"market_context",
"prediction"
]
}
}
}