Skip to main content

List custom factors

GET /api/factors/custom

List all user-defined custom factors. Example request
curl https://api.hyperoru.com/api/factors/custom
Example response
[
  { "id": 1, "name": "vol_momentum", "expression": "volume_change * momentum_1d", "created_at": "2026-04-01T00:00:00Z" }
]

Create custom factor

POST /api/factors/custom

Define a new custom factor.
name
string
required
Factor name.
expression
string
required
Factor expression formula.
description
string
Human-readable description.
Example request
curl -X POST https://api.hyperoru.com/api/factors/custom \
  -H "Content-Type: application/json" \
  -d '{"name": "vol_momentum", "expression": "volume_change * momentum_1d", "description": "Volume-weighted momentum"}'
Example response
{
  "id": 1,
  "name": "vol_momentum",
  "expression": "volume_change * momentum_1d"
}

Edit custom factor

PUT /api/factors/custom/

Update a custom factor definition.
factor_id
integer
required
Factor ID.
expression
string
Updated expression.
Example request
curl -X PUT https://api.hyperoru.com/api/factors/custom/1 \
  -H "Content-Type: application/json" \
  -d '{"expression": "volume_change * momentum_1d * 1.5"}'
Example response
{
  "id": 1,
  "expression": "volume_change * momentum_1d * 1.5"
}

Delete custom factor

DELETE /api/factors/custom/

Delete a custom factor.
factor_id
integer
required
Factor ID.
Example request
curl -X DELETE https://api.hyperoru.com/api/factors/custom/1
Example response
{
  "status": "ok"
}

Effectiveness list

GET /api/factors/effectiveness

Get effectiveness metrics for all factors. Example request
curl https://api.hyperoru.com/api/factors/effectiveness
Example response
[
  { "factor_name": "momentum_1d", "ic": 0.12, "rank_ic": 0.15, "win_rate": 0.58 }
]

Effectiveness history

GET /api/factors/effectiveness//history

Get historical effectiveness for a factor.
factor_name
string
required
Factor name.
Example request
curl https://api.hyperoru.com/api/factors/effectiveness/momentum_1d/history
Example response
[
  { "date": "2026-04-01", "ic": 0.10 },
  { "date": "2026-04-08", "ic": 0.14 }
]

Effectiveness by window

GET /api/factors/effectiveness//by-window

Get effectiveness broken down by time window.
factor_name
string
required
Factor name.
Example request
curl https://api.hyperoru.com/api/factors/effectiveness/momentum_1d/by-window
Example response
[
  { "window": "1d", "ic": 0.12 },
  { "window": "7d", "ic": 0.18 },
  { "window": "30d", "ic": 0.15 }
]

Factor library

GET /api/factors/library

List all built-in factors available in the system. Example request
curl https://api.hyperoru.com/api/factors/library
Example response
[
  { "name": "momentum_1d", "category": "momentum", "description": "1-day price momentum" },
  { "name": "volume_change", "category": "volume", "description": "24h volume change" }
]

Factor values

GET /api/factors/values

Get current computed values for all factors across symbols.
symbols
string
Comma-separated symbol filter.
Example request
curl "https://api.hyperoru.com/api/factors/values?symbols=BTC,ETH"
Example response
{
  "BTC": { "momentum_1d": 2.3, "volume_change": 15.0, "rsi_score": 55.0 },
  "ETH": { "momentum_1d": -1.2, "volume_change": 8.0, "rsi_score": 48.0 }
}

Computation status

GET /api/factors/status

Check the status of factor computation jobs. Example request
curl https://api.hyperoru.com/api/factors/status
Example response
{
  "last_computed": "2026-04-09T12:00:00Z",
  "computing": false,
  "factors_count": 12
}

Trigger computation

POST /api/factors/compute

Trigger a factor computation cycle. Example request
curl -X POST https://api.hyperoru.com/api/factors/compute
Example response
{
  "status": "started"
}

Estimate computation

GET /api/factors/compute/estimate

Estimate how long a computation cycle would take. Example request
curl https://api.hyperoru.com/api/factors/compute/estimate
Example response
{
  "estimated_seconds": 45,
  "symbols_count": 50,
  "factors_count": 12
}

Computation progress

GET /api/factors/compute/progress

Check the progress of an ongoing computation. Example request
curl https://api.hyperoru.com/api/factors/compute/progress
Example response
{
  "running": true,
  "progress_pct": 60.0,
  "symbols_done": 30,
  "symbols_total": 50
}

Evaluate expression

POST /api/factors/evaluate

Evaluate a factor expression against current data.
expression
string
required
Factor expression to evaluate.
symbol
string
required
Symbol to evaluate against.
Example request
curl -X POST https://api.hyperoru.com/api/factors/evaluate \
  -H "Content-Type: application/json" \
  -d '{"expression": "momentum_1d * volume_change", "symbol": "BTC"}'
Example response
{
  "result": 34.5,
  "components": { "momentum_1d": 2.3, "volume_change": 15.0 }
}

Validate expression

POST /api/factors/validate-expression

Validate a factor expression for syntax errors.
expression
string
required
Expression to validate.
Example request
curl -X POST https://api.hyperoru.com/api/factors/validate-expression \
  -H "Content-Type: application/json" \
  -d '{"expression": "momentum_1d * volume_change"}'
Example response
{
  "valid": true,
  "errors": [],
  "referenced_factors": ["momentum_1d", "volume_change"]
}

Expression functions

GET /api/factors/expression-functions

List all available functions for use in factor expressions. Example request
curl https://api.hyperoru.com/api/factors/expression-functions
Example response
[
  { "name": "abs", "description": "Absolute value", "example": "abs(momentum_1d)" },
  { "name": "max", "description": "Maximum of two values", "example": "max(rsi, 50)" },
  { "name": "min", "description": "Minimum of two values", "example": "min(rsi, 80)" }
]