Model Portfolios and the API

View as MarkdownOpen in Claude

Advisors can use Model Portfolios to easily invest some or all of a client’s assets into one or multiple custom-created portfolios, rather than tediously managing individual investments in single instruments.

More about Model Portfolios

The TWS API can access model portfolios in accounts where this functionality is available and a specific model has previously been setup in TWS. API functionality allows the client application to request model position update subscriptions, request model account update subscriptions, or place orders to a specific model.

Model Portfolio functionality not available in the TWS API:

  • Portfolio Model Creation
  • Portfolio Model Rebalancing
  • Portfolio Model Position or Cash Transfer

To request position updates from a specific model, the function [IBApi::EClient::reqPositionsMulti](/tws-api/doc/account-portfolio-data/positions-by-model/request-positions-by-model) “Requests position subscription for account and/or model Initially all positions are returned…”) can be used: [Position Update Subscription by Model](/tws-api/doc/account-portfolio-data/positions-by-model/receive-positions-by-model)

To request model account updates, there is the function [IBApi::EClient::reqAccountUpdatesMulti](/tws-api/doc/account-portfolio-data/account-update-by-model/requesting-account-update-by-model “Requests account updates for account and/or model. ”), see: [Account Value Update Subscriptions by Model](/tws-api/doc/account-portfolio-data/account-update-by-model/receiving-account-updates-by-model)

To place an order to a model, the IBApi.Order.ModelCode field must be set accordingly, for example:

1modelOrder = Order()
2modelOrder.account = "DF12345"
3modelOrder.modelCode = "Technology" # model for tech stocks first created in TWS
4self.placeOrder(self.nextOrderId(), contract, modelOrder)