Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.nexfi.robert.dpdns.org/llms.txt

Use this file to discover all available pages before exploring further.

Quant Strategies and Execution

This page mirrors the detailed design style for Quant APIs, covering strategy administration, backtests, execution, balances, positions, and risk controls.

POST /api/v1/admin/strategies

Purpose

Creates a strategy definition in the admin backend before activation.

Request Body

ParameterTypeRequiredDescriptionExample
strategyIdStringYesUnique strategy ID.cross_arb_btc_01
strategyTypeEnumYesStrategy type.cross_exchange_arbitrage
symbolsString[]YesTrading symbols.["BTC/USDT"]
exchangesEnum[]YesTarget exchanges.["binance","okx"]
paramsObjectYesStrategy parameters.{ "min_profit_rate": 0.002 }
riskProfileIdStringNoLinked risk profile ID.default_profile

Supported First-Wave Strategy Types

  • cross_exchange_arbitrage
  • triangular_arbitrage
  • funding_rate_arbitrage

Example Request

{
  "strategyId": "cross_arb_btc_01",
  "strategyType": "cross_exchange_arbitrage",
  "symbols": ["BTC/USDT"],
  "exchanges": ["binance", "okx"],
  "params": {
    "min_profit_rate": 0.002,
    "base_quantity": 0.01,
    "max_position_size": 0.05
  },
  "riskProfileId": "default_profile"
}

Response Fields

FieldTypeDescriptionExample
data.strategyIdStringStrategy ID.cross_arb_btc_01
data.statusStringInitial strategy status.created

Example Response

{
  "code": 0,
  "msg": "ok",
  "data": {
    "strategyId": "cross_arb_btc_01",
    "status": "created"
  }
}

GET /api/v1/admin/strategies

Purpose

Returns strategy list for the admin strategy management page.

Query Parameters

ParameterTypeRequiredDescriptionExample
statusStringNoStrategy status filter.running
strategyTypeStringNoStrategy type filter.cross_exchange_arbitrage
pageIntegerNoPage number.1
pageSizeIntegerNoPage size.20

Typical Response Fields

FieldTypeDescriptionExample
data.items[].strategyIdStringStrategy ID.cross_arb_btc_01
data.items[].strategyTypeStringStrategy type.cross_exchange_arbitrage
data.items[].symbolsString[]Trading symbols.["BTC/USDT"]
data.items[].exchangesString[]Exchanges.["binance","okx"]
data.items[].statusStringStrategy status.running

GET /api/v1/admin/strategies/{strategyId}

Purpose

Returns detail of one strategy.

Path Parameters

ParameterTypeRequiredDescriptionExample
strategyIdStringYesStrategy ID.cross_arb_btc_01

PUT /api/v1/admin/strategies/{strategyId}

Purpose

Updates strategy parameters or risk-profile binding.

Request Body

ParameterTypeRequiredDescriptionExample
paramsObjectNoUpdated strategy parameters.{ "min_profit_rate": 0.003 }
riskProfileIdStringNoUpdated risk profile ID.conservative_profile

POST /api/v1/admin/strategies/{strategyId}/start

Purpose

Starts a strategy runtime instance.

Response Fields

FieldTypeDescriptionExample
data.strategyIdStringStrategy ID.cross_arb_btc_01
data.statusStringRuntime status after start.running

POST /api/v1/admin/strategies/{strategyId}/pause

Purpose

Pauses a running strategy.

POST /api/v1/admin/strategies/{strategyId}/stop

Purpose

Stops a running strategy.

GET /api/v1/admin/strategies/{strategyId}/runs

Purpose

Returns historical runtime records for troubleshooting and operational review.

Response Fields

FieldTypeDescriptionExample
data.items[].runIdStringRuntime record ID.run_001
data.items[].strategyIdStringStrategy ID.cross_arb_btc_01
data.items[].statusStringRuntime status.stopped
data.items[].startedAtStringStart time.2026-05-11T10:00:00.000Z
data.items[].endedAtStringEnd time.2026-05-11T12:00:00.000Z

POST /api/v1/admin/backtests

Purpose

Creates a backtest job for strategy validation and parameter exploration.

Request Body

ParameterTypeRequiredDescriptionExample
strategyTypeStringYesStrategy type.cross_exchange_arbitrage
symbolsString[]YesBacktest symbols.["BTC/USDT"]
timeRangeObjectYesBacktest time range.{ "from": "2026-01-01", "to": "2026-03-01" }
paramsObjectYesBacktest parameters.{ "min_profit_rate": 0.002 }

Response Fields

FieldTypeDescriptionExample
data.backtestIdStringBacktest job ID.bt_001
data.statusStringBacktest status.queued

GET /api/v1/admin/backtests/{backtestId}

Purpose

Returns backtest result payload, including summary metrics and trade list.

Response Fields

FieldTypeDescriptionExample
data.backtestIdStringBacktest ID.bt_001
data.statusStringBacktest status.completed
data.metricsObjectMetrics such as pnl, Sharpe ratio, and drawdown.{ "sharpe": 1.8 }
data.tradesArrayTrade result list.[]

POST /api/v1/execution/orders

Purpose

Places an order on the target exchange.

Request Body

ParameterTypeRequiredDescriptionExample
exchangeEnumYesTarget exchange.binance
symbolStringYesTrading symbol.BTCUSDT
sideStringYesOrder side.buy
typeStringYesOrder type.limit
priceNumberNoLimit price.65000
quantityNumberYesOrder quantity.0.01
strategyIdStringNoSource strategy ID.cross_arb_btc_01

Example Request

{
  "exchange": "binance",
  "symbol": "BTCUSDT",
  "side": "buy",
  "type": "limit",
  "price": 65000,
  "quantity": 0.01,
  "strategyId": "cross_arb_btc_01"
}

Response Fields

FieldTypeDescriptionExample
data.clientOrderIdStringPlatform order ID.ord_20260511_0001
data.exchangeOrderIdStringExchange order ID.789123456
data.exchangeStringExchange.binance
data.symbolStringTrading symbol.BTCUSDT
data.statusStringOrder status.new

Example Response

{
  "code": 0,
  "msg": "ok",
  "data": {
    "clientOrderId": "ord_20260511_0001",
    "exchangeOrderId": "789123456",
    "exchange": "binance",
    "symbol": "BTCUSDT",
    "status": "new"
  }
}

GET /api/v1/execution/orders

Purpose

Returns execution order list.

Query Parameters

ParameterTypeRequiredDescriptionExample
exchangeEnumNoExchange filter.binance
symbolStringNoSymbol filter.BTCUSDT
statusStringNoStatus filter.filled

GET /api/v1/execution/orders/{clientOrderId}

Purpose

Returns detail of one execution order.

POST /api/v1/execution/orders/{clientOrderId}/cancel

Purpose

Cancels an existing execution order.

GET /api/v1/execution/positions

Purpose

Returns current exchange positions.

Typical Response Fields

FieldTypeDescriptionExample
data.items[].exchangeStringExchange.binance
data.items[].symbolStringTrading symbol.BTCUSDT
data.items[].positionSideStringPosition side.long
data.items[].netQuantityNumberNet position quantity.0.5

GET /api/v1/execution/balances

Purpose

Returns exchange balance list.

Typical Response Fields

FieldTypeDescriptionExample
data.items[].exchangeStringExchange.okx
data.items[].assetStringAsset symbol.USDT
data.items[].availableNumberAvailable balance.100000
data.items[].frozenNumberFrozen balance.5000

GET /api/v1/risk/config

Purpose

Returns current risk configuration.

Typical Response Fields

FieldTypeDescriptionExample
data.maxPositionNumberMaximum per-symbol position.2
data.maxTotalExposureNumberMaximum total exposure.1000000
data.maxOrderSizeNumberMaximum single order size.100000
data.maxOrdersPerSecondIntegerMaximum orders per second.5
data.maxDailyLossNumberMaximum daily loss.20000
data.maxDrawdownNumberMaximum drawdown threshold.0.15
data.killSwitchBooleanGlobal kill switch.false

PUT /api/v1/risk/config

Purpose

Updates risk thresholds and kill-switch settings.

GET /api/v1/risk/events

Purpose

Returns risk events for audit and troubleshooting.

Typical Response Fields

FieldTypeDescriptionExample
data.items[].eventIdStringRisk event ID.risk_evt_001
data.items[].eventTypeStringRisk event type.MAX_DRAWDOWN_EXCEEDED
data.items[].levelStringSeverity level.critical
data.items[].messageStringEvent message.Drawdown threshold exceeded
data.items[].createdAtStringEvent time.2026-05-11T10:00:00.000Z

Notes

  • Strategy, execution, and risk APIs are operational APIs and should be treated as admin-grade surfaces.
  • Backtest output is analytical and should not be interpreted as production-trading guarantees.
  • Risk configuration changes should be audited together with operator identity and change reason.