UTM Platform User Trading Flows
Audience: End users learning how to trade with UTM Purpose: Step-by-step guide to all trading workflows
Overview: How Trading Works in UTM
UTM provides two ways to trade:
- Direct Orders - Place orders manually through the web interface
- Signal-Based Trading - Create signals (manually or via webhooks) that convert to orders
Both methods result in the same outcome: orders sent to your broker, executions tracked, and trades managed.
The Trading Pipeline
Signal (optional) Order Execution Trade
│ │ │ │
│ "I want to │ "Buy 100 │ "Filled │ "Long position
│ open long │ AAPL at │ 50 @ 175, │ in AAPL,
│ AAPL" │ market" │ 50 @ 176" │ avg cost $175.50"
│ │ │ │
▼ ▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌──────────┐ ┌─────────┐
│ Signal │ ───▶ │ Order │ ───▶ │Execution │ ──▶ │ Trade │
└─────────┘ └─────────┘ └──────────┘ └─────────┘
│
▼
[Broker]
Part 1: Getting Started
1.1 Account Setup
Before trading, you need to connect a broker.
Step 1: Navigate to Settings
- Open Settings from the sidebar (or the nav drawer on mobile), then go to the "Brokers" tab
- Or click your profile in the top-right and select the "Brokers" quick-link to jump straight to the tab
Step 2: Add a Broker
| Broker | Auth Method | Supported Features |
|---|---|---|
| Alpaca | API Key | Full trading, positions, orders |
| TradeStation | OAuth | Positions, orders (read-only trading) |
For Alpaca (Recommended for full trading):
- Click "Add Alpaca"
- Enter your API Key ID and Secret Key
- Choose paper or live environment
- Click "Connect"
Your accounts will sync automatically.
1.2 Paper vs Live Mode
UTM has a mode switcher that controls which accounts you see and can trade.
Paper Mode (Default):
- Shows only paper/demo accounts
- Orders go to paper trading environment
- Safe for testing strategies
- Green indicator in header
Live Mode:
- Shows only live accounts
- Orders go to real brokers with real money
- Irreversible trades
- Red indicator in header
To Switch Modes:
- Click the mode indicator in the header
- Select "Paper" or "Live"
- Confirm if switching to Live
Safety Feature: UTM blocks orders if your selected account doesn't match your mode. You cannot accidentally place live orders while in paper mode.
1.3 Setting Your Primary Account
Each mode (paper/live) has a primary account used as the default for orders.
- Go to Settings → Accounts
- Find your preferred account
- Click "Set as Primary"
The primary account appears first in all account selectors.
Part 2: Direct Order Placement
2.1 Placing a Market Order
The fastest way to enter or exit a position.
Step 1: Open Order Entry
- From Dashboard or Positions page
- Click "Place Order" button
Step 2: Fill Order Details
- Account: Select your trading account
- Symbol: Enter ticker (e.g., AAPL, MSFT)
- Action: Buy or Sell
- Quantity: Number of shares
- Order Type: Select "Market"
- Time in Force: Usually "Day"
Step 3: Review and Submit
- Click "Review Order"
- Verify details on confirmation screen
- Click "Place Order"
What Happens Next:
- Order sent to broker (status: Pending)
- Broker acknowledges receipt (status: Accepted)
- Order fills (status: Filled)
- Trade created/updated automatically
- Position reflects new holdings
2.2 Placing a Limit Order
Get a specific price or better.
Same as Market Order, except:
- Order Type: "Limit"
- Limit Price: Your target price
- For Buy: Order fills at limit price or lower
- For Sell: Order fills at limit price or higher
Example: Buy 100 AAPL at $175 limit
- If AAPL is at $176, order waits
- If AAPL drops to $175, order fills
- Order expires at market close (if DAY)
2.3 Stop and Stop-Limit Orders
Protect positions or enter on breakouts.
Stop Order:
- Becomes market order when stop price is reached
- Stop Price: Trigger price
- Use for: Stop-losses, breakout entries
Stop-Limit Order:
- Becomes limit order when stop price is reached
- Stop Price: Trigger price
- Limit Price: Execution price after trigger
- Use for: Controlled stop-losses with price guarantee
2.4 Time in Force Options
How long your order stays active:
| TIF | Name | Behaviour |
|---|---|---|
| DAY | Day Order | Expires at market close |
| GTC | Good til Cancelled | Stays active until filled or cancelled |
| IOC | Immediate or Cancel | Fill immediately or cancel unfilled portion |
| FOK | Fill or Kill | Fill completely or cancel entirely |
| OPG | Market on Open | Execute at opening auction |
| CLS | Market on Close | Execute at closing auction |
2.5 Extended Hours Trading
Trade before market open (pre-market) or after close (after-hours).
To Enable:
- Toggle "Extended Hours" in order entry
- Only works with Limit orders
- Wider spreads and less liquidity
Extended Hours Sessions:
- Pre-market: 4:00 AM - 9:30 AM ET
- After-hours: 4:00 PM - 8:00 PM ET
Part 3: Signal-Based Trading
Signals are trading intentions that can be processed into orders.
3.1 Why Use Signals?
- Automation: Receive signals from TradingView, custom scripts, etc.
- Review Before Execution: Create signals, review them, then execute
- Quantity Flexibility: Specify shares, % of equity, or dollar amounts
- Strategy Tracking: Link signals to strategies for performance analysis
- Scheduled Execution: Schedule signals for future times
3.2 Signal Actions Explained
Signals use four actions that combine direction and intent:
| Action | Direction | Intent | Resulting Order |
|---|---|---|---|
openLong | Long | Open | Buy |
closeLong | Long | Close | Sell |
openShort | Short | Open | Sell (short) |
closeShort | Short | Close | Buy (cover) |
Why not just "buy" and "sell"?
Because "buy" is ambiguous:
- Buying to open a long position?
- Buying to close a short position?
Signal actions make intent explicit, reducing errors.
3.3 Creating a Manual Signal
Step 1: Navigate to Signals
- Click "Signals" in the navigation
- Click "New Signal"
Step 2: Fill Signal Details
| Field | Description |
|---|---|
| Account | Which account to trade |
| Symbol | Ticker symbol |
| Action | openLong, closeLong, openShort, closeShort |
| Quantity Type | How to interpret quantity |
| Quantity | Amount based on quantity type |
| Strategy | Optional - for tracking |
| Limit Price | Optional - for limit orders |
| Stop Price | Optional - for stop orders |
Quantity Types:
| Type | Quantity Meaning | Example |
|---|---|---|
| Fixed | Number of shares | 100 = 100 shares |
| Percent Equity | % of account equity | 5 = 5% of equity |
| Dollar Amount | Dollar value to invest | 1000 = $1000 worth |
Step 3: Save Signal
- Signal enters "Pending" status
- Ready for processing
3.4 Processing a Signal
Converting a signal to an order.
Single Signal:
- Find signal in the Signals table
- Click "Process" button
- Order is created and sent to broker
- Signal status: Executed
Batch Processing:
- Select multiple pending signals
- Click "Process Selected"
- All signals convert to orders
What Can Go Wrong:
- Rejected: Invalid symbol, account issue
- Expired: Signal passed its validUntil time
- Cancelled: You cancelled before processing
3.5 Webhook Signal Ingestion
Receive signals from external systems (TradingView, custom scripts).
Step 1: Create an API Key
- Settings → API Keys
- Click "Create API Key"
- Select
signals:writescope - Save the key (shown only once!)
Step 2: Send Signals via Webhook
curl -X POST https://api.universaltrademanager.com/api/v1/signals \
-H "Content-Type: application/json" \
-H "X-API-Key: utm_your_api_key" \
-d '{
"symbol": "AAPL",
"action": "openLong",
"accountId": "your-account-uuid",
"quantity": 100
}'
For TradingView:
- Create alert on your indicator/strategy
- Set webhook URL to the ingest endpoint
- Format message as JSON with signal fields
- Add
X-API-Keyheader (requires Pro+ plan)
3.6 Exit Rules (Auto-Close)
Automatically create exit signals when entry fills. Exit fields sit
directly on the signal payload, not nested under an exitRule object.
Example: Close position at market close
{
"symbol": "AAPL",
"action": "openLong",
"accountId": "your-account-uuid",
"quantity": 100,
"exitTriggerType": "minutesBeforeClose",
"exitTriggerMinutes": 5,
"exitOrderType": "moc",
"exitTimeInForce": "cls"
}
See the Exit Rules section in the Signals guide for the full field list and trigger-type behaviours.
Part 4: Managing Positions
4.1 Viewing Positions
Dashboard → Positions Snapshot:
- Quick view of current holdings
- Unrealised P&L for each position
Positions Page:
- Full position details
- Filter by account, symbol
- Sort by various fields
4.2 Understanding Position Data
| Field | Meaning |
|---|---|
| Symbol | Ticker symbol |
| Quantity | Number of shares held |
| Avg Cost | Average entry price |
| Market Value | Current market value |
| Unrealised P&L | Current profit/loss |
| Last Sync | When data was refreshed |
4.3 Closing a Position
From Positions Page:
- Find the position
- Click "Close"
- Opens order entry pre-filled with:
- Action: Sell (for long) / Buy (for short)
- Symbol: Position symbol
- Quantity: Full position size
Partial Close:
- Modify quantity to close only part of position
- Remaining shares stay open
Closing outside the regular session: The Close button on the trades page (single trade or "Close Multiple Trades") always works, even when the US regular session is closed. Each order is placed for the next regular open: as a Market on Open order where your broker supports it, otherwise as a limit order 5% through the last broker-reported price for the position. The confirmation dialog tells you which will happen before you confirm.
Part 5: Managing Trades
5.1 Trade vs Position vs Order
| Concept | What It Represents | Lifecycle |
|---|---|---|
| Order | Single broker command | Pending → Filled/Cancelled |
| Position | Current holdings (broker view) | Snapshot in time |
| Trade | Aggregated position (UTM view) | Open → Closed |
Why Trades?
Positions show what you hold now. Trades show:
- When you entered
- Multiple orders that built the position
- Exit prices and P&L
- Strategy attribution
5.2 Trade Statuses
| Status | Meaning |
|---|---|
| Pending | Trade created, no fills yet |
| Open | Position established |
| Partial Close | Some shares sold |
| Closed | Fully exited |
| Expired | Order never filled |
5.3 Trade Views
Trades Page Tabs:
- Pending: Trades with unfilled orders
- Open: Active positions
- Closed: Completed trades with P&L
- Expired: Orders that expired unfilled
- Net Positions: Aggregated by symbol
- Import Review: Broker executions needing review
5.4 Editing Trades
Limited fields can be edited:
| Field | Always Editable | Notes |
|---|---|---|
| Strategy | ✅ | Re-attribute to different strategy |
| Notes | ✅ | Add trade notes/comments |
| Opened At | Only imported | Fix import date |
| Closed At | Only imported | Fix import date |
Financial fields (price, quantity, P&L) cannot be manually edited - they reflect actual executions.
Part 6: Reconciliation
6.1 What is Reconciliation?
Reconciliation compares:
- UTM's view: Trades and positions tracked in UTM
- Broker's view: Actual positions at the broker
Discrepancies can occur if:
- Orders placed outside UTM (other platforms)
- Sync issues or timing gaps
- Manual broker interventions
6.2 Viewing Discrepancies
Accounts Page → Reconciliation Tab
Shows any mismatches:
- Positions in broker but not UTM
- Positions in UTM but not broker
- Quantity differences
- Side mismatches
6.3 Resolving Discrepancies
Missing in UTM (broker has position, UTM doesn't):
- Click "Import" to create trade from broker position
- Optionally assign to a strategy
- Optionally split across strategies
Missing in Broker (UTM has trade, broker doesn't):
- May indicate closed position not synced
- Click "Close Trade" to mark as closed
- Or "Ignore" if intentional
Quantity Mismatch:
- Review the difference
- Adjust UTM trade or investigate broker
6.4 Pending Imports
Broker executions that don't match any UTM order.
Common Causes:
- Trades placed via broker's platform
- Mobile app orders
- Pre-existing positions before UTM
Resolution:
- Navigate to Trades → Import Review tab
- Review pending imports
- Choose:
- Approve: Create new trade
- Merge: Add to existing trade
- Reject: Ignore this execution
Part 7: Strategies
7.1 What are Strategies?
Strategies let you categorise and track trading approaches.
Examples:
- "Momentum" - Trend following trades
- "Mean Reversion" - Buy dips, sell rallies
- "Earnings Plays" - Around earnings dates
7.2 Creating a Strategy
- Navigate to Strategies page
- Click "New Strategy"
- Fill details:
- Name: Strategy identifier
- Description: What it does
- Type: Category (trend, mean reversion, etc.)
- Auto-Close: Whether to close at market close
7.3 Strategy Tracking
Each strategy shows:
- Total Trades: Number of trades
- Win Rate: Percentage of profitable trades
- Total P&L: Cumulative profit/loss
- Last Trade: Most recent trade date
7.4 Auto-Close Feature
Automatically close positions at market close.
Enable on Strategy:
- Edit strategy
- Toggle "Auto-close at market close"
- Set "Minutes before close" (0-30)
How It Works:
Auto-close uses an event-driven design with a startup failsafe.
Primary path (event-driven):
- A trade linked to this strategy transitions to OPEN.
- UTM schedules a close-position job for the next session whose close has not passed, timed at market close minus the configured minutes.
- When the job fires, UTM creates and submits the close order.
Startup failsafe:
When the API starts up, UTM runs a one-time auto-close-startup-check job. This scans all strategies with auto-close enabled and schedules any close-position jobs that are missing for the upcoming session. The check is idempotent, so it skips strategies that already have a job scheduled. This catches any gaps from a restart or missed trigger during the trading day.
If you switch auto-close off, switch the strategy's Active toggle off, or delete the strategy, a close job that is already queued does not fire.
You can also trigger the startup check manually from Admin > Scheduled Jobs > Scheduled tab > Trigger Auto-Close.
Use Case: Day trading strategies that should not hold overnight.
Part 8: Dashboard Overview
8.1 Dashboard Components
Portfolio Summary:
- Total equity across all accounts
- Day P&L (dollar and percentage)
- Cash available
- Market value of positions
Equity Chart:
- 30-day balance history
- Visual trend of portfolio value
Positions Snapshot:
- Top open positions
- Quick unrealised P&L view
Orders Snapshot:
- Recent order activity
- Quick status check
8.2 Syncing Data
Manual Sync:
- Click sync icon next to broker
- Refreshes positions, orders, balances
Automatic Sync:
- After placing orders: 7-second delay, then sync
- Periodic background sync (when implemented)
Sync Status:
- Green checkmark: Recently synced
- Yellow: Stale data
- Red: Sync error
Part 9: Common Workflows
9.1 Day Trade Workflow
- Morning: Check dashboard for overnight news impact
- Open Positions: Use signals or direct orders
- Monitor: Watch positions page for P&L
- Close Before EOD: Use auto-close or manual exit
- Review: Check closed trades for P&L
9.2 Swing Trade Workflow
- Entry: Place order when setup triggers
- Set Stop: Place stop order for risk management
- Monitor Daily: Check positions
- Adjust: Move stops, take partials
- Exit: When target hit or stop triggered
9.3 Automated Strategy Workflow
- Setup: Create API key, configure webhook
- Signal Source: TradingView alerts, custom scripts
- Ingest: Signals arrive via webhook
- Execute: Signals process immediately (or schedule with
scheduledProcessAt) - Track: View in Signals page
- Analyse: Review strategy performance
Part 10: Troubleshooting
10.1 Order Not Filling
Check:
- Market hours (is market open?)
- Order type (limit price too aggressive?)
- Account has buying power?
- Symbol tradeable on this broker?
Resolution:
- Check order status for rejection reason
- Verify account balances
- Try different order type
10.2 Position Not Showing
Check:
- Sync status (when was last sync?)
- Correct account selected?
- Right trading mode (paper vs live)?
Resolution:
- Click manual sync
- Wait 30 seconds
- Check broker directly
10.3 Trade P&L Looks Wrong
Common Causes:
- Commission not included
- Average cost from multiple fills
- Currency conversion (if applicable)
Check:
- View trade details → Executions
- Verify each fill price
- Check commission field
10.4 Signal Rejected
Common Reasons:
- Invalid symbol
- Account not found
- Insufficient buying power
- Market closed
Check Signal Details:
- Error message field
- Validation details
- Account status
Quick Reference: Keyboard Shortcuts
| Shortcut | Action |
|---|---|
G then D | Go to Dashboard |
G then P | Go to Positions |
G then O | Go to Orders |
G then T | Go to Trades |
G then S | Go to Signals |
N then O | New Order |
N then S | New Signal |
Esc | Close modal |
Glossary
| Term | Definition |
|---|---|
| Signal | Trading intent, can be processed to order |
| Order | Command sent to broker |
| Execution | Filled portion of an order |
| Trade | Aggregated position with P&L tracking |
| Position | Current holdings snapshot |
| Strategy | Category for trade attribution |
| TIF | Time in Force - order duration |
| P&L | Profit and Loss |
| MOC | Market on Close order |
| Reconciliation | Comparing UTM and broker data |
Last updated: 2026-02-23