The Order Server and Fill Server on TT Gateways 7.16.8 or higher support risk-checking on a user account basis. This risk checking is done in addition to the risk limits enforced per direct trader MGT (Member-Group-Trader ID) by the client trading application. Both the MGT risk limits and user account risk limits are defined using TT User Setup 7.4.8 or higher (refer to the Account-Based Risk Feature Guide).
Account-based risk is not currently supported on the Eurex Gateway. All other TT Gateways support account-based risk in version 7.16.8.
Account-Based Risk Support at Startup
In order to ensure positions are calculated correctly, the Order Server and Fill Server on TT Gateways 7.16.8 or higher are dependent on each other at startup.
The following sequence diagram shows the flow of data for supporting account-based risk on the TT Gateway at startup:
- At TT Gateway startup, the Order Server attempts to locate an active TT User Setup server. If TT User Setup is active, the Order Server connects to the server. If TT User Setup is inactive, the TT Gateway will not start.
- If the Order Server is connected to TT User Setup 7.4.8 or higher, the Order Server downloads all applicable account-based risk and account group data from TT User Setup. If an earlier version is detected, the Order Server will proceed with the startup process without the account-based risk credentials.
- The Fill Server requests fills from the Order Server.
- The Order Server sends all fills to the Fill Server.
- After the fill download is complete, the Order Server requests current positions and SODs per account from the Fill Server. This request only occurs at startup (i.e., it does not occur if the Fill Server is restarted).
- The Fill Server sends an updated snapshot of all current position data, which includes manual and confirmed fills. When the position download is complete, the Order Server goes active and then the Fill Server goes active; both servers appear Green in Guardian (the Order Server will not move to an Active state unless the Fill Server is running, and the Fill Server will not move to an Active state unless the Order Server is running). The TT Gateway starts and connects to the exchange.
If you have changed the Order Server and Fill Server start times in ttchron.ini to something other than the default times, you should review those times to ensure both the Order Server and Fill Server start before the beginning of the next trading session.
In the TT system, the clearing account number is typically entered using the Account # field (e.g., in X_TRADER), but depending on the exchange, TT may require you to enter it into the FFT2 or FFT3 fields instead (refer to the table below). To address these exceptions, and to normalize reporting and risk-checking of clearing accounts, the TT Gateway populates the clearing account into a Risk Account field. This field will be displayed on orders and fills in TT applications.
The account that will ultimately end up as the Risk Account field is the account you create in TT User Setup and configure for risk checking.
|For this Exchange...||The Risk Account that Risk Checking is Applied to...|
|BrokerTec, BVMF, CFE, CME/CBOT, Eurex, MEFF, MX, NYSE Liffe, NYSE Liffe US, OSE, SFE, SGX, TFX, TSE, TOCOM||Account #|
|ICE||Account # (SMA orders), FFT2 (LMA orders)|
For BVMF, only DMA Traders are required to enter an account number in either the Account # (DMA trader ID) or FFT3 (DMA trader’s firm ID) in X_TRADER. Only the Account # field will be risk checked.
For exchanges that do not require an account number, an account number can still be used and risk checked. If omitted, however, the trader’s order may be rejected if he is not allowed to send orders with undefined accounts (a TT User Setup setting).
The BVMF, MEFF, SFE, and SGX Gateways support “omnibus account” functionality. The gateway does not risk-check the omnibus accounts entered in FFT2 or FFT3. The gateway will risk check based on the Account# field. To risk-check an omnibus account, you must group individual trader accounts into an account group and apply risk checking at the account group level.
One or more accounts can be configured as one account group, but a single account can only exist in one account group at a given time. By default, every account defined using TT User Setup 7.4.8 is assigned to an account group.
If an omnibus or individual account doesn’t belong to an account group in TT User Setup, the user-level setting determines whether the order is either rejected or accepted and not risk-checked by the TT Gateway.
Risk limits can be configured for either an account or the account group, but not both (i.e., limits cannot be configured for accounts in an account group). For orders submitted using accounts in a group with defined limits, the Order Server combines the positions of each account for risk checking and applies the group limits to each account.
When a client submits an order that includes an account, the TT Gateway checks the order against the limits of the account. If the account belongs to an account group, the TT Gateway risk checks based on the combined positions and working orders of all the accounts in the group. This is independent of the user or MGT risk checking.
If required by the exchange, users enter their clearing account number on orders submitted via X_TRADER or other client trading APIs (e.g., FIX Adapter). In the TT system, the clearing account number is typically entered using the Account # field in X_TRADER, but it can be entered using the FFT2 or FFT3 fields instead, depending on which exchange handles the order. TT Gateways use this clearing account number to populate the Risk Account field.
Working Orders for Changed Accounts
Some exchanges support changing accounts on working orders. When a user attempts to change the account on a working order, the TT Gateway rechecks the order against the limits of the proposed account or its account group before allowing the change.
For example, if a working order is changed from account "A" to account "B," the gateway applies risk checks to account "B" and rejects the order if it causes account "B" to exceed its position limit. This is similar to how risk limits are enforced on a per order basis (i.e., a change to an order quantity could get rejected if it would exceed a position limit).
Working Orders without Accounts
If account-based risk is enabled on the TT Gateway while orders without an account are working, then those working orders are not included in risk calculations. To include these orders in account-based risk, cancel and replace them with orders that contain risk-checked accounts. An alternative, if the exchange supports it, is to add/change accounts on working orders. Changing accounts does not affect their position in the queue.
For exchanges where the account number is not required, risk-checked accounts can still be added.
Accounts that are not defined in TT User Setup are considered undefined. If an undefined account is used, the user settings in TT User Setup determine whether or not the user can submit orders for that account. If a user is not configured to send orders on undefined accounts, then the TT Gateway rejects the order. Delete actions for orders without accounts are supported despite the user level setting so that old GTC orders can be deleted.If an order with an undefined account is accepted by the gateway, then the gateway still tracks the position. For example, if the account is added later to TT User Setup, then risk checking on the Order Server includes fills generated before the account existed in TT User Setup.
If no clearing account value is entered in X_TRADER, the gateway treats this as an undefined account.
If the gateway rejects an order because it would exceed the risk limit on an account, both the audit trail for the user who entered the order and the log file for the gateway will include a rejection message. The rejection messages indicate whether an account, user, or MGT limit was breached.
Configuring Account-Based Risk on the TT Gateway
The TT Gateway automatically calculates positions based on the Auto-Calculate-SOD parameter. By default in 7.16.8 or higher, Auto-Calculate-SOD is set to false. When the parameter is enabled, the Fill Server performs automatic calculation of previous session positions when it detects a scheduled session change. The path to the parameter in the Aconfig utility is: AConfig.Core.Server.Exchange-Specific.[ExchIds].Fill-Server.Auto-Calculate-SOD
Fill Server: Account-Based Start of Day (SOD) Records
To support account-based risk on TT Gateway 7.16.8 or higher, the Fill Server does the following to manage Start-of-Day (SOD) records:
- Calculates positions per account including fill modifications and manual fills.
- Sends position changes to the Order Server for risk checking, which includes maximum order size, position, and margin checks. Position changes also include fill modifications, changes to account groups, and the publishing of manual fills and SOD records.
- Ignores SOD records without account numbers assigned when Auto-Calculate-SOD is enabled. After account numbers are added to these SOD records, their positions will be included by Auto-Calculate-SOD at the next session rollover and will be risk-checked by the TT Gateway.
Upgrade Considerations: Auto-Calculate-SOD Users
If you enable auto-calculate-SOD after an upgrade or currently have auto-calculate-SOD enabled, SOD records created without accounts before the upgrade will not be included in the account-based risk check. The records will still be checked against MGT-based risk settings, and Auto-SOD will continue to re-generate the records every day.
SOD records that occur after upgrading to 7.16.8 that do not contain an account number will not be updated to include fills that contain an account number. New SOD records containing an account number will be generated going forward. Users will see both the old SOD records without an account, as well as the new SOD records with an account. Added together, these SOD records will still give an accurate representation of the user’s overall position.
If you want positions represented by SOD records without accounts to be included in account-based risk checks after an upgrade, you must delete these SOD records and manually add them back with risk accounts assigned using X_RISK 7.12.3. After account numbers are added to these SOD records, the positions will be included in the account based SOD records generated by Auto-Calculate-SOD at the next session rollover and risk-checked by the TT Gateway.