Get strategy performance snapshot
curl --request GET \
--url https://api.itoflow.ai/paper-trading/{strategyId}/status \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.itoflow.ai/paper-trading/{strategyId}/status"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.itoflow.ai/paper-trading/{strategyId}/status', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"current": {
"cash": "<string>",
"cumulativeReturn": 123,
"cumulativeReturnReason": "<string>",
"dailyReturn": 123,
"dailyReturnReason": "<string>",
"date": "<string>",
"totalValue": "<string>"
},
"factorScorecard": {
"asOf": "<string>",
"coverage": {
"cashWeight": "<string>",
"grossWeight": "<string>",
"longWeight": "<string>",
"modeledWeight": "<string>",
"netWeight": "<string>",
"positionsModeled": 123,
"positionsTotal": 123,
"shortWeight": "<string>"
},
"currency": "<string>",
"diagnostics": {
"cashExcluded": 123,
"factorCount": 123,
"symbolCount": 123,
"warnings": [
"<string>"
]
},
"exposures": [
{
"exposure": "<string>",
"factorId": "<string>",
"group": "market",
"name": "<string>",
"proxyScope": "<string>",
"activeRiskContribution": "<string>",
"marginalRiskContribution": "<string>",
"riskContribution": "<string>",
"varianceContribution": "<string>"
}
],
"modelVersion": "<string>",
"portfolioId": "<string>",
"risk": {
"activeRiskComplete": true,
"activeSpecificShare": "<string>",
"activeVariance": "<string>",
"activeVolatility": "<string>",
"annualizationFactor": "<string>",
"factorShare": "<string>",
"factorVariance": "<string>",
"specificRiskContribution": "<string>",
"specificShare": "<string>",
"specificVariance": "<string>",
"totalVariance": "<string>",
"totalVolatility": "<string>",
"volatilityConvention": "daily"
},
"schemaVersion": 123,
"benchmarkRelative": {
"benchmarkSymbol": "<string>",
"coverage": {
"cashWeight": "<string>",
"grossWeight": "<string>",
"longWeight": "<string>",
"modeledWeight": "<string>",
"netWeight": "<string>",
"positionsModeled": 123,
"positionsTotal": 123,
"shortWeight": "<string>"
},
"diagnostics": {
"cashExcluded": 123,
"factorCount": 123,
"symbolCount": 123,
"warnings": [
"<string>"
]
},
"exposures": [
{
"exposure": "<string>",
"factorId": "<string>",
"group": "market",
"name": "<string>",
"proxyScope": "<string>",
"activeRiskContribution": "<string>",
"marginalRiskContribution": "<string>",
"riskContribution": "<string>",
"varianceContribution": "<string>"
}
],
"risk": {
"activeRiskComplete": true,
"activeSpecificShare": "<string>",
"activeVariance": "<string>",
"activeVolatility": "<string>",
"annualizationFactor": "<string>",
"factorShare": "<string>",
"factorVariance": "<string>",
"specificRiskContribution": "<string>",
"specificShare": "<string>",
"specificVariance": "<string>",
"totalVariance": "<string>",
"totalVolatility": "<string>",
"volatilityConvention": "daily"
},
"benchmarkName": "<string>",
"benchmarkSource": "<string>"
},
"holdings": [
{
"symbol": "<string>",
"annualizationFactor": "<string>",
"marginalContribution": "<string>",
"specificVarianceShare": "<string>",
"specificVolatility": "<string>",
"totalRiskContributionShare": "<string>",
"volatilityConvention": "<string>",
"weight": "<string>"
}
],
"holdingsTotal": 123,
"holdingsTruncated": true,
"residualDiagnostics": {
"commonComponentRatioThreshold": "<string>",
"effectiveNumberOfBets": "<string>",
"firstComponentVarianceShare": "<string>",
"meanPairwiseResidualCorrelation": "<string>",
"medianPairwiseResidualCorrelation": "<string>",
"minimumWindowSessions": 123,
"modelSpecificVariance": "<string>",
"realizedResidualVariance": "<string>",
"requestedWindowSessions": 123,
"residualCommonComponentDetected": true,
"residualVarianceRatio": "<string>",
"sufficientHistory": true,
"symbolsMissing": [
"<string>"
],
"symbolsMissingCount": 123,
"symbolsUsed": [
"<string>"
],
"symbolsUsedCount": 123,
"warnings": [
"<string>"
],
"weightMissing": "<string>",
"weightUsed": "<string>",
"windowSessions": 123
},
"view": {
"absoluteRiskRows": [
{
"group": "<string>",
"id": "<string>",
"kind": "factor",
"name": "<string>",
"contribution": "<string>",
"contributionShare": "<string>"
}
],
"benchmarkRelativeRiskRows": [
{
"group": "<string>",
"id": "<string>",
"kind": "factor",
"name": "<string>",
"contribution": "<string>",
"contributionShare": "<string>"
}
],
"coverageSummary": {
"cashWeight": "<string>",
"lookthroughModeledWeight": "<string>",
"lookthroughUnmodeledWeight": "<string>",
"modeledWeight": "<string>",
"returnsFallbackWeight": "<string>",
"unmodeledWeight": "<string>"
},
"holdingRows": [
{
"id": "<string>",
"symbol": "<string>",
"contributionShare": "<string>",
"name": "<string>",
"specificVarianceShare": "<string>",
"weight": "<string>"
}
],
"residualSummary": {
"commonComponentDetected": true,
"effectiveNumberOfBets": "<string>",
"firstComponentVarianceShare": "<string>",
"meanPairwiseResidualCorrelation": "<string>",
"residualVarianceRatio": "<string>",
"sufficientHistory": true,
"symbolsUsed": 123,
"weightMissing": "<string>",
"weightUsed": "<string>",
"windowSessions": 123
}
}
},
"holdings": {},
"pendingFirstExecution": true,
"performanceHistory": [
{
"cumulativeReturn": 123,
"cumulativeReturnReason": "<string>",
"timestamp": "<string>",
"value": "<string>"
}
],
"scorecard": {
"avgTurnover30d": 123,
"benchmarkSymbol": "<string>",
"calculatedAt": "<string>",
"calculationSource": "<string>",
"cumulativeReturn": 123,
"cumulativeReturnReason": "<string>",
"dailyReturn": 123,
"dailyReturnReason": "<string>",
"hasSufficientData": true,
"insight": "<string>",
"maxDrawdown": 123,
"monthlyAlpha": 123,
"overallAlpha": 123,
"sharpe30d": 123,
"sharpeOverall": 123,
"sortino30d": 123,
"volatility": 123,
"weeklyAlpha": 123,
"winRate30d": 123
},
"strategy": {
"constraints": {
"allowed_exchanges": [
"<string>"
],
"blocked_symbols": [
"<string>"
],
"is_strict": true,
"max_drawdown_pct": 123,
"max_position_pct": 123,
"max_positions": 123,
"min_cash_pct": 123,
"min_position_pct": 123,
"stop_loss_pct": 123,
"stop_on_drawdown": true
},
"createdAt": "<string>",
"createdBy": "<string>",
"description": "<string>",
"executionStatus": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"initialCapital": "<string>",
"isActive": true,
"name": "<string>",
"portfolioId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rules": {
"lookback_days": 123,
"model_key": "luna",
"rebalance_frequency": "daily",
"rebalance_time_utc": "<string>"
},
"strategyContent": "<string>",
"universe": [
"<string>"
]
},
"valuationError": {
"code": "PORTFOLIO_VALUE_NOT_POSITIVE",
"message": "<string>"
}
}{
"error": "<string>",
"available": "<string>",
"billing_action": {
"href": "<string>",
"kind": "upgrade",
"label": "<string>"
},
"code": "<string>",
"currentVersion": 123,
"details": "<unknown>",
"expectedVersion": 123,
"message": "<string>",
"requested": "<string>",
"usage": "<unknown>"
}{
"error": "<string>",
"available": "<string>",
"billing_action": {
"href": "<string>",
"kind": "upgrade",
"label": "<string>"
},
"code": "<string>",
"currentVersion": 123,
"details": "<unknown>",
"expectedVersion": 123,
"message": "<string>",
"requested": "<string>",
"usage": "<unknown>"
}{
"error": "<string>",
"available": "<string>",
"billing_action": {
"href": "<string>",
"kind": "upgrade",
"label": "<string>"
},
"code": "<string>",
"currentVersion": 123,
"details": "<unknown>",
"expectedVersion": 123,
"message": "<string>",
"requested": "<string>",
"usage": "<unknown>"
}Strategies
Get strategy performance snapshot
Returns the latest strategy performance, holdings, scorecard, and performance history.
Operation ID: get__paper_trading_strategyId_status.
GET
https://api.itoflow.ai
/
paper-trading
/
{strategyId}
/
status
Get strategy performance snapshot
curl --request GET \
--url https://api.itoflow.ai/paper-trading/{strategyId}/status \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.itoflow.ai/paper-trading/{strategyId}/status"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.itoflow.ai/paper-trading/{strategyId}/status', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"current": {
"cash": "<string>",
"cumulativeReturn": 123,
"cumulativeReturnReason": "<string>",
"dailyReturn": 123,
"dailyReturnReason": "<string>",
"date": "<string>",
"totalValue": "<string>"
},
"factorScorecard": {
"asOf": "<string>",
"coverage": {
"cashWeight": "<string>",
"grossWeight": "<string>",
"longWeight": "<string>",
"modeledWeight": "<string>",
"netWeight": "<string>",
"positionsModeled": 123,
"positionsTotal": 123,
"shortWeight": "<string>"
},
"currency": "<string>",
"diagnostics": {
"cashExcluded": 123,
"factorCount": 123,
"symbolCount": 123,
"warnings": [
"<string>"
]
},
"exposures": [
{
"exposure": "<string>",
"factorId": "<string>",
"group": "market",
"name": "<string>",
"proxyScope": "<string>",
"activeRiskContribution": "<string>",
"marginalRiskContribution": "<string>",
"riskContribution": "<string>",
"varianceContribution": "<string>"
}
],
"modelVersion": "<string>",
"portfolioId": "<string>",
"risk": {
"activeRiskComplete": true,
"activeSpecificShare": "<string>",
"activeVariance": "<string>",
"activeVolatility": "<string>",
"annualizationFactor": "<string>",
"factorShare": "<string>",
"factorVariance": "<string>",
"specificRiskContribution": "<string>",
"specificShare": "<string>",
"specificVariance": "<string>",
"totalVariance": "<string>",
"totalVolatility": "<string>",
"volatilityConvention": "daily"
},
"schemaVersion": 123,
"benchmarkRelative": {
"benchmarkSymbol": "<string>",
"coverage": {
"cashWeight": "<string>",
"grossWeight": "<string>",
"longWeight": "<string>",
"modeledWeight": "<string>",
"netWeight": "<string>",
"positionsModeled": 123,
"positionsTotal": 123,
"shortWeight": "<string>"
},
"diagnostics": {
"cashExcluded": 123,
"factorCount": 123,
"symbolCount": 123,
"warnings": [
"<string>"
]
},
"exposures": [
{
"exposure": "<string>",
"factorId": "<string>",
"group": "market",
"name": "<string>",
"proxyScope": "<string>",
"activeRiskContribution": "<string>",
"marginalRiskContribution": "<string>",
"riskContribution": "<string>",
"varianceContribution": "<string>"
}
],
"risk": {
"activeRiskComplete": true,
"activeSpecificShare": "<string>",
"activeVariance": "<string>",
"activeVolatility": "<string>",
"annualizationFactor": "<string>",
"factorShare": "<string>",
"factorVariance": "<string>",
"specificRiskContribution": "<string>",
"specificShare": "<string>",
"specificVariance": "<string>",
"totalVariance": "<string>",
"totalVolatility": "<string>",
"volatilityConvention": "daily"
},
"benchmarkName": "<string>",
"benchmarkSource": "<string>"
},
"holdings": [
{
"symbol": "<string>",
"annualizationFactor": "<string>",
"marginalContribution": "<string>",
"specificVarianceShare": "<string>",
"specificVolatility": "<string>",
"totalRiskContributionShare": "<string>",
"volatilityConvention": "<string>",
"weight": "<string>"
}
],
"holdingsTotal": 123,
"holdingsTruncated": true,
"residualDiagnostics": {
"commonComponentRatioThreshold": "<string>",
"effectiveNumberOfBets": "<string>",
"firstComponentVarianceShare": "<string>",
"meanPairwiseResidualCorrelation": "<string>",
"medianPairwiseResidualCorrelation": "<string>",
"minimumWindowSessions": 123,
"modelSpecificVariance": "<string>",
"realizedResidualVariance": "<string>",
"requestedWindowSessions": 123,
"residualCommonComponentDetected": true,
"residualVarianceRatio": "<string>",
"sufficientHistory": true,
"symbolsMissing": [
"<string>"
],
"symbolsMissingCount": 123,
"symbolsUsed": [
"<string>"
],
"symbolsUsedCount": 123,
"warnings": [
"<string>"
],
"weightMissing": "<string>",
"weightUsed": "<string>",
"windowSessions": 123
},
"view": {
"absoluteRiskRows": [
{
"group": "<string>",
"id": "<string>",
"kind": "factor",
"name": "<string>",
"contribution": "<string>",
"contributionShare": "<string>"
}
],
"benchmarkRelativeRiskRows": [
{
"group": "<string>",
"id": "<string>",
"kind": "factor",
"name": "<string>",
"contribution": "<string>",
"contributionShare": "<string>"
}
],
"coverageSummary": {
"cashWeight": "<string>",
"lookthroughModeledWeight": "<string>",
"lookthroughUnmodeledWeight": "<string>",
"modeledWeight": "<string>",
"returnsFallbackWeight": "<string>",
"unmodeledWeight": "<string>"
},
"holdingRows": [
{
"id": "<string>",
"symbol": "<string>",
"contributionShare": "<string>",
"name": "<string>",
"specificVarianceShare": "<string>",
"weight": "<string>"
}
],
"residualSummary": {
"commonComponentDetected": true,
"effectiveNumberOfBets": "<string>",
"firstComponentVarianceShare": "<string>",
"meanPairwiseResidualCorrelation": "<string>",
"residualVarianceRatio": "<string>",
"sufficientHistory": true,
"symbolsUsed": 123,
"weightMissing": "<string>",
"weightUsed": "<string>",
"windowSessions": 123
}
}
},
"holdings": {},
"pendingFirstExecution": true,
"performanceHistory": [
{
"cumulativeReturn": 123,
"cumulativeReturnReason": "<string>",
"timestamp": "<string>",
"value": "<string>"
}
],
"scorecard": {
"avgTurnover30d": 123,
"benchmarkSymbol": "<string>",
"calculatedAt": "<string>",
"calculationSource": "<string>",
"cumulativeReturn": 123,
"cumulativeReturnReason": "<string>",
"dailyReturn": 123,
"dailyReturnReason": "<string>",
"hasSufficientData": true,
"insight": "<string>",
"maxDrawdown": 123,
"monthlyAlpha": 123,
"overallAlpha": 123,
"sharpe30d": 123,
"sharpeOverall": 123,
"sortino30d": 123,
"volatility": 123,
"weeklyAlpha": 123,
"winRate30d": 123
},
"strategy": {
"constraints": {
"allowed_exchanges": [
"<string>"
],
"blocked_symbols": [
"<string>"
],
"is_strict": true,
"max_drawdown_pct": 123,
"max_position_pct": 123,
"max_positions": 123,
"min_cash_pct": 123,
"min_position_pct": 123,
"stop_loss_pct": 123,
"stop_on_drawdown": true
},
"createdAt": "<string>",
"createdBy": "<string>",
"description": "<string>",
"executionStatus": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"initialCapital": "<string>",
"isActive": true,
"name": "<string>",
"portfolioId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rules": {
"lookback_days": 123,
"model_key": "luna",
"rebalance_frequency": "daily",
"rebalance_time_utc": "<string>"
},
"strategyContent": "<string>",
"universe": [
"<string>"
]
},
"valuationError": {
"code": "PORTFOLIO_VALUE_NOT_POSITIVE",
"message": "<string>"
}
}{
"error": "<string>",
"available": "<string>",
"billing_action": {
"href": "<string>",
"kind": "upgrade",
"label": "<string>"
},
"code": "<string>",
"currentVersion": 123,
"details": "<unknown>",
"expectedVersion": 123,
"message": "<string>",
"requested": "<string>",
"usage": "<unknown>"
}{
"error": "<string>",
"available": "<string>",
"billing_action": {
"href": "<string>",
"kind": "upgrade",
"label": "<string>"
},
"code": "<string>",
"currentVersion": 123,
"details": "<unknown>",
"expectedVersion": 123,
"message": "<string>",
"requested": "<string>",
"usage": "<unknown>"
}{
"error": "<string>",
"available": "<string>",
"billing_action": {
"href": "<string>",
"kind": "upgrade",
"label": "<string>"
},
"code": "<string>",
"currentVersion": 123,
"details": "<unknown>",
"expectedVersion": 123,
"message": "<string>",
"requested": "<string>",
"usage": "<unknown>"
}Path Parameters
Query Parameters
Response
Strategy performance snapshot