TradeAlertRule trade.alert-rule@1
Generated at from
openvibe-contracts v0.53.0 and
openvibe-sdk v0.11.0.
- Version
- 1.0.0
- Owner
- trade
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/trade/alert-rule.v1.json
trade.alert-rule@1: one alert rule of a person on OpenVibe.Trade (server/domain/alerts.js ruleDto): a threshold on a metric, filings of some form types, or any new document for an instrument. Alerts inform; they never trade.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
id | string | yes | ||
kind | enum | yes |
| |
status | string | yes | ||
instrument | object | yes | ||
instrument.id | string | yes | ||
instrument.symbol | string | |||
instrument.name | string | |||
metric | string | null | |||
operator | enum |
| ||
threshold | string | null | |||
unit | string | null | |||
currency | string | null | |||
form_types | array | null | |||
armed | boolean | null | |||
created_at | string | null |
| ||
updated_at | string | null |
|
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: threshold
{
"id": "alr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"kind": "threshold",
"status": "active",
"instrument": {
"id": "ins_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"symbol": "ACME",
"name": "Acme Corporation"
},
"metric": "close",
"operator": "below",
"threshold": "150",
"unit": "USD",
"currency": "USD",
"form_types": null,
"armed": true,
"created_at": "2026-09-25T10:00:00.000Z",
"updated_at": "2026-09-25T10:00:00.000Z"
}Rejected: bad-operator
{
"id": "alr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"kind": "threshold",
"status": "active",
"instrument": {
"id": "ins_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"symbol": "ACME",
"name": "Acme Corporation"
},
"metric": "close",
"operator": "crosses",
"threshold": "150",
"unit": "USD",
"currency": "USD",
"form_types": null,
"armed": true,
"created_at": "2026-09-25T10:00:00.000Z",
"updated_at": "2026-09-25T10:00:00.000Z"
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('trade.alert-rule@1', value); // { valid, errors: [{ path, message }] }