Skip to main content
POST
Record a trade outcome

Body

application/json

Request model for recording a trade outcome.

trade_status is auto-inferred from provided fields:

  • If is_cancelled=True -> 'cancelled'
  • If exit_time, exit_price, AND pnl_dollars ALL present -> 'closed'
  • If NONE of them present -> 'pending'
  • Partial data -> validation error
symbol
string
required
Required string length: 1 - 10
direction
enum<string>
required

Trade direction: long or short.

Available options:
long,
short
entry_time
string<date-time>
required
entry_price
required
Required range: x > 0
quantity
integer
required
outcome_source
enum<string>
required

Source of trade outcome data.

Available options:
tradestation_api,
manual_cli,
journal_import
exit_time
string<date-time> | null
exit_price
Required range: x > 0
pnl_dollars
pnl_percent
scan_id
string<uuid> | null
action_card_id
string<uuid> | null
position_id
string<uuid> | null
variant_id
string<uuid> | null
tradestation_order_id
string | null
Maximum string length: 50
confluence_tier
enum<string> | null

Confluence tier classification.

Available options:
EXCELLENT,
GOOD,
MODERATE,
WEAK,
POOR
confluence_score
Required range: 0 <= x <= 100
net_confluence

Net confluence (-100 to +100): bullish_confluence - bearish_confluence

Required range: -100 <= x <= 100
directional_bias
string | null

Directional bias: STRONG_LONG, MOD_LONG, NEUTRAL, MOD_SHORT, STRONG_SHORT

Maximum string length: 20
day_type
string | null
Maximum string length: 20
vix_regime
string | null
Maximum string length: 20
account_tier
integer | null
Required range: 1 <= x <= 3
is_cancelled
boolean
default:false

Explicitly mark trade as cancelled (pnl must be None)

Response

Successful Response

Full trade outcome model with server-generated fields.

outcome_id
string<uuid>
required
entry_time
string<date-time>
required
exit_time
string<date-time> | null
required
recorded_at
string<date-time>
required
trade_status
enum<string>
required

Trade lifecycle status.

Available options:
pending,
closed,
cancelled
scan_id
string<uuid> | null
required
action_card_id
string<uuid> | null
required
position_id
string<uuid> | null
required
variant_id
string<uuid> | null
required
tradestation_order_id
string | null
required
symbol
string
required
direction
enum<string>
required

Trade direction: long or short.

Available options:
long,
short
entry_price
string
required
Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
exit_price
string | null
required
Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
quantity
integer
required
pnl_dollars
string | null
required
Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
pnl_percent
string | null
required
Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
is_winner
boolean | null
required
hold_duration_m
integer | null
required
confluence_tier
enum<string> | null
required

Confluence tier classification.

Available options:
EXCELLENT,
GOOD,
MODERATE,
WEAK,
POOR
confluence_score
string | null
required
Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
day_type
string | null
required
vix_regime
string | null
required
account_tier
integer | null
required
outcome_source
enum<string>
required

Source of trade outcome data.

Available options:
tradestation_api,
manual_cli,
journal_import
net_confluence
string | null
Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
directional_bias
string | null