OrderStopCheckNotification

Order-check STOP notification (post-verdict pair of order_sync.check). Emitted exactly once per monitored signal when the check resolved TERMINALLY — reason "deleted" (OrderDeletedError: confirmed order-not-found, bypassing the tolerance counter) or "exhausted" (CC_ORDER_CHECK_RETRY_ATTEMPTS consecutive transient failures spent, or the legacy config 0) — right before the teardown: close "closed" for orderType "active", cancel "user" for "schedule". Not throttled (rare terminal event). Live-only. Source: orderStopSubject (OrderStopContract).

type: "order_stop.check"

Discriminator for type-safe union

id: string

Unique notification identifier

timestamp: number

Unix timestamp in milliseconds when the check decision was made

backtest: boolean

Always false: order checks are live-only (kept for cross-channel filter uniformity)

symbol: string

Trading pair symbol (e.g., "BTCUSDT")

strategyName: string

Strategy name that generated this signal

exchangeName: string

Exchange name where signal was executed

signalId: string

Unique signal identifier (UUID v4)

orderType: "schedule" | "active"

Which order was monitored (from OrderStopContract.type):

  • "active" — the order backing an open position; the framework closes it with closeReason "closed"
  • "schedule" — the resting entry order; the framework cancels the scheduled signal (reason "user")
reason: "deleted" | "exhausted"

Which terminal path fired: confirmed not-found ("deleted") or tolerance spent ("exhausted")

attempt: number

Consecutive-failure streak at termination (includes the terminating check)

currentPrice: number

Market price at the moment of the check (VWAP)

position: "long" | "short"

Trade direction: "long" (buy) or "short" (sell)

priceOpen: number

Effective entry price (may differ from original after DCA averaging)

priceTakeProfit: number

Effective take profit price (with trailing if set)

priceStopLoss: number

Effective stop loss price (with trailing if set)

originalPriceTakeProfit: number

Original take profit price before any trailing adjustments

originalPriceStopLoss: number

Original stop loss price before any trailing adjustments

originalPriceOpen: number

Original entry price at signal creation (unchanged by DCA averaging)

cost: number

Cost of the initial position entry in USD (from signal.cost)

totalEntries: number

Total number of DCA entries (_entry.length). 1 = no averaging.

totalPartials: number

Total number of partial closes executed (_partial.length). 0 = no partial closes done.

pnl: IStrategyPnL

Unrealized PNL of the position at the moment of the check

peakProfit: IStrategyPnL

Peak profit achieved during the life of this position up to the moment of the check

maxDrawdown: IStrategyPnL

Maximum drawdown experienced during the life of this position up to the moment of the check

pnlPercentage: number

Profit/loss as percentage (e.g., 1.5 for +1.5%, -2.3 for -2.3%)

pnlPriceOpen: number

Entry price from PNL calculation (effective price adjusted with slippage and fees)

pnlPriceClose: number

Exit price from PNL calculation (adjusted with slippage and fees)

pnlCost: number

Absolute profit/loss in USD

pnlEntries: number

Total invested capital in USD

peakProfitPriceOpen: number

Peak price reached in profit direction during the life of this position

peakProfitPriceClose: number

Exit price for PNL calculation at the moment of peak profit

peakProfitCost: number

Absolute profit/loss in USD at the moment the position reached its peak profit during the life of this position

peakProfitPercentage: number

Profit/loss as percentage at the moment the position reached its peak profit during the life of this position

peakProfitEntries: number

Number of entries executed at the moment the position reached its peak profit during the life of this position

maxDrawdownPriceOpen: number

Maximum drawdown price reached in loss direction during the life of this position

maxDrawdownPriceClose: number

Exit price for PNL calculation at the moment of max drawdown

maxDrawdownCost: number

Absolute profit/loss in USD at the moment the position reached its maximum drawdown during the life of this position

maxDrawdownPercentage: number

Profit/loss as percentage at the moment the position reached its maximum drawdown during the life of this position

maxDrawdownEntries: number

Number of entries executed at the moment the position reached its maximum drawdown during the life of this position

scheduledAt: number

Signal creation timestamp in milliseconds (when signal was first created/scheduled)

pendingAt: number

Pending timestamp in milliseconds (when position became pending/active at priceOpen)

note: string

Optional human-readable description of signal reason

createdAt: number

Unix timestamp in milliseconds when the notification was created