Skip to main content
POST
/
v1
/
signals
/
portfolio
Portfolio-aware strategy signal
curl --request POST \
  --url https://api.example.com/v1/signals/portfolio \
  --header 'Content-Type: application/json' \
  --data '
{
  "bankroll_usd": 10000,
  "market_query": "Will the Fed cut rates at the March 2026 meeting?",
  "max_position_pct": 0.05,
  "portfolio": [
    {
      "entry_price": 0.55,
      "market_id": "KXCPI-26MAR",
      "platform": "kalshi",
      "side": "yes",
      "size_usd": 250
    }
  ]
}
'
{
  "adjusted_size_pct": 0.025,
  "adjusted_size_usd": 250,
  "base_size_pct": 0.035,
  "confidence": 0.82,
  "edge": 0.09,
  "expires_at": "2026-03-22T14:30:00Z",
  "generated_at": "2026-03-21T14:30:00Z",
  "hedge_recommendations": [
    {
      "market_id": "KXUNEMP-4.5",
      "platform": "kalshi",
      "rationale": "Negatively correlated — hedges against strong economy scenario",
      "side": "no",
      "suggested_size_usd": 100,
      "title": "Will unemployment exceed 4.5%?"
    }
  ],
  "market_id": "KXFED-26MAR19",
  "platform": "kalshi",
  "portfolio_impact": {
    "concentration_delta": 0.15,
    "correlated_with": "KXCPI-26MAR",
    "max_correlation": 0.73,
    "net_exposure_change": 250,
    "portfolio_risk_level": "medium"
  },
  "recommendation": "BUY_YES",
  "risk_rating": "medium",
  "target_price": 0.62,
  "title": "Will the Fed cut rates at the March 2026 meeting?"
}

Body

application/json

Request body for portfolio-aware strategy signal.

market_query
string
required

Market question to analyze

portfolio
PortfolioPosition · object[]

Current portfolio positions

bankroll_usd
number
default:1000

Total bankroll in USD

Required range: x >= 0
max_position_pct
number
default:0.1

Max single position as fraction of bankroll

Required range: 0.01 <= x <= 0.5

Response

Successful Response

Strategy signal with portfolio context and adjusted sizing.

platform
string
required

kalshi, polymarket, or robinhood

market_id
string
required

Market identifier

title
string
required

Market question

recommendation
string
required

BUY_YES, BUY_NO, NO_TRADE

target_price
number
required

Suggested entry price

Required range: 0 <= x <= 1
edge
number
required

estimated_prob - market_price

confidence
number
required

Confidence in the signal

Required range: 0 <= x <= 1
risk_rating
string
required

low, medium, high

base_size_pct
number
required

Kelly-derived size before portfolio adjustment

Required range: 0 <= x <= 1
adjusted_size_pct
number
required

Size after portfolio correlation adjustment

Required range: 0 <= x <= 1
adjusted_size_usd
number
required

Dollar amount based on adjusted_size_pct * bankroll

Required range: x >= 0
portfolio_impact
PortfolioImpact · object
required

How this trade affects portfolio risk

Example:
{
  "concentration_delta": 0.15,
  "correlated_with": "KXCPI-26MAR",
  "max_correlation": 0.73,
  "net_exposure_change": 350,
  "portfolio_risk_level": "medium"
}
expires_at
string<date-time>
required

Signal staleness window

hedge_recommendations
HedgeRecommendation · object[]

Suggested hedges to reduce portfolio risk

generated_at
string<date-time>

When this signal was produced