Portfolio management
List accounts
List all accounts available to the user. This includes FCM accounts, which must be specified when sending orders.
res = await client.list_accounts()
for item in res:
print(item.account.name)[
{
account: {
id: "00000000-0000-0000-0000-000000000000",
name: "STONEX:000000/JDoe",
},
permissions: {
list: true,
reduce_or_close: true,
set_limits: true,
trade: true,
view: true,
},
trader: "00000000-0000-0000-0000-000000000000",
},
{
account: {
id: "00000000-0000-0000-0000-000000000001",
name: "STONEX:000001/JDoe",
},
permissions: {
list: true,
reduce_or_close: true,
set_limits: true,
trade: true,
view: true,
},
trader: "00000000-0000-0000-0000-000000000000",
},
]Account permissions
list
Trader is allowed to know about the account but not its balances or positions
reduce_or_close
Trader can send orders only to reduce or close (risk manager)
set_limits
Trader allowed to set or change risk limits on the account
trade
Trader allowed to send orders
view
Read-only view of account, including balances and positions
Get account summary
Get an account summary for a specified account.
Account summary fields
account
Account ID
timestamp
Snapshot timestamp
equity
Total account equity or net liquidation value
cash_excess
Withdrawable cash
purchasing_power
Total purchasing power of the account
unrealized_pnl
Unrealized P&L
realized_pnl
Realized P&L
yesterday_equity
Yesterday account equity or net liquidation value; not provided on all venues
total_margin
Margin usage including open orders and positions
position_margin
Margin usage including only positions
balances
Map of products/assets to their quantities
positions
See "Account Positions" table
Get position summary
Get an aggregated summary of positions and a snapshot of unrealized PnL and notional value for a specified account(s).
Get account history
Get historical snapshots of account summaries for the specified account.
Paper Trading Accounts
Paper trading accounts allow users to test strategies and practice trading without real money. Each user automatically has access to a default paper account with the format PAPER:{email}. Users can create up to 2 additional paper accounts.
Enable paper trading (GraphQL)
Enable paper trading for the authenticated user through the GraphQL API. This creates the default paper account if it doesn't exist.
Open paper account
Create a new paper trading account for the authenticated user.
Request Parameters:
account_name(optional): Custom name for the paper accountIf not specified, creates/accesses the default account
PAPER:{email}When specified, creates account as
PAPER:{email}:{account_name}
usd_balance_cents(optional): Initial balance in USD centsIf not specified, uses default balance ($100,000)
Note: Users can have 1 default account plus up to 2 additional named accounts. Contact Architect for access to additional accounts.
Reset paper account
Reset the cash balance in a paper account.
Request Parameters:
account: Account identifier (UUID or name)Accepts:
PAPER:{email},PAPER:{email}:{name}, or account UUID
usd_balance_cents(optional): Balance to reset to in USD centsIf not specified, resets to default balance
Error Handling
Common error scenarios and solutions:
Account Limit Exceeded
Error when trying to create more than three paper accounts
Solution: Contact Architect for increased limits, support[at]architect.co
Account Not Found
Specified account doesn't exist for reset operations
Verify account name/ID is correct
Ensure account was created before attempting operations
Last updated