Skip to main content

POST Enable Strategy

Resume or recreate a previously-disabled strategy NT8​

Enables a NinjaScript strategy previously handled by DisableStrategy. A chart-attached strategy resumes in place, and NT8 routes OnBarUpdate calls back to the existing strategy from the current bar. An account-hosted strategy was terminated and removed when disabled, so enable recreates it from the saved deployment and returns a new strategyId.

Idempotent: enabling an already-enabled strategy is a no-op that returns wasEnabled=true and success=true. If a terminated strategy has no saved deployment to recreate, use StartStrategy to instantiate a fresh copy.

Endpoint​

POST /v1/api/accounts/{account}/strategies/{strategyId}/enable

Headers​

NameValue
Content-Typeapplication/json
AuthorizationBearer <token>

Path parameters​

NameTypeRequiredDescription
accountstringRequiredName of the NT8 account that owns the strategy.
strategyIdstringRequiredID of the strategy as returned by ListStrategies or ListAllStrategies.

Code examples​

import requests

token = 'my-secret-token'

url = "https://dev.crosstrade.io/v1/api/accounts/Sim101/strategies/370780512/enable"
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}

try:
response = requests.post(url, headers=headers, json={})
print(f"Response Code: {response.status_code}, Response Text: {response.text}")
except Exception as e:
print(f"An error occurred: {e}")

Response​

{
"strategyId": "370780640",
"original_strategy_id": "370780512",
"account": "Sim101",
"hostMode": "account",
"engine": "recreate_from_deployment",
"recreated": true,
"deploymentId": "dep_9b3e4cbfac82",
"state": "Realtime",
"verified": true,
"success": true
}

Platform nuances​

Available in CrossTrade NT8 Add-On v1.13.0+.

As of add-on v1.13.6, enable is post-verified against NT8 state: for a strategy still attached to the account (or chart), success: true is returned only after NT8 confirms it (verified: true), otherwise success: false with error: "enable_unconfirmed". Because NT8 removes account-hosted strategies from the account when they are disabled, re-enabling one by its original id recreates it from the saved deployment: the response carries recreated: true, a new strategyId, and original_strategy_id. As a safety guard the recreate is refused with error: "not_resumable_position_open" when the account holds an open position on the strategy's instrument (recreating flat would desync the position) — flatten first, or use StartStrategy deliberately. If no saved deployment exists for the id (for example a strategy attached manually in NT8, not deployed through CrossTrade), enable returns strategy_not_found with guidance to use StartStrategy — or, on add-on v1.13.8+, call AdoptStrategy while the strategy is still running so a deployment record exists before you disable it. Chart-attached strategies resume in place via the enable flag.

WebSocket API​

This request can also be made over the WebSocket API. The account and strategyId path parameters are passed inside args.

{
"action": "rpc",
"id": "my-request-id",
"api": "EnableStrategy",
"args": {
"account": "Sim101",
"strategyId": "370780512"
}
}