Allocation of Partial Fills

Title:

How are executions allocated when an order receives a partial fill because an insufficient quantity is available to complete the allocation of shares/contracts to sub-accounts?

 

Overview:

From time-to-time, one may experience an allocation order which is partially executed and is canceled prior to being completed (i.e. market closes, contract expires, halts due to news, prices move in an unfavorable direction, etc.). In such cases, IB determines which customers (who were originally included in the order group and/or profile) will receive the executed shares/contracts. The methodology used by IB to impartially determine who receives the shares/contacts in the event of a partial fill is described in this article.

 

Background:

Before placing an order CTAs and FAs are given the ability to predetermine the method by which an execution is to be allocated amongst client accounts. They can do so by first creating a group (i.e. ratio/percentage) or profile (i.e. specific amount) wherein a distinct number of shares/contracts are specified per client account (i.e. pre-trade allocation). These amounts can be prearranged based on certain account values including the clients’ Net Liquidation Total, Available Equity, etc., or indicated prior to the order execution using Ratios, Percentages, etc. Each group and/or profile is generally created with the assumption that the order will be executed in full. However, as we will see, this is not always the case. Therefore, we are providing examples that describe and demonstrate the process used to allocate partial executions with pre-defined groups and/or profiles and how the allocations are determined.

Here is the list of allocation methods with brief descriptions about how they work.

·         AvailableEquity
Use sub account’ available equality value as ratio. 

·         NetLiq
Use subaccount’ net liquidation value as ratio

·         EqualQuantity
Same ratio for each account

·         PctChange1:Portion of the allocation logic is in Trader Workstation (the initial calculation of the desired quantities per account).

·         Profile

The ratio is prescribed by the user

·         Inline Profile

The ratio is prescribed by the user.

·         Model1:
Roughly speaking, we use each account NLV in the model as the desired ratio. It is possible to dynamically add (invest) or remove (divest) accounts to/from a model, which can change allocation of the existing orders.

 

 

 

Basic Examples:

Details:

CTA/FA has 3-clients with a predefined profile titled “XYZ commodities” for orders of 50 contracts which (upon execution) are allocated as follows:

Account (A) = 25 contracts

Account (B) = 15 contracts

Account (C) = 10 contracts

 

Example #1:

CTA/FA creates a DAY order to buy 50 Sept 2016 XYZ future contracts and specifies “XYZ commodities” as the predefined allocation profile. Upon transmission at 10 am (ET) the order begins to execute2but in very small portions and over a very long period of time. At 2 pm (ET) the order is canceled prior to being executed in full. As a result, only a portion of the order is filled (i.e., 7 of the 50 contracts are filled or 14%). For each account the system initially allocates by rounding fractional amounts down to whole numbers:

 

Account (A) = 14% of 25 = 3.5 rounded down to 3

Account (B) = 14% of 15 = 2.1 rounded down to 2

Account (C) = 14% of 10 = 1.4 rounded down to 1

 

To Summarize:

A: initially receives 3 contracts, which is 3/25 of desired (fill ratio = 0.12)

B: initially receives 2 contracts, which is 2/15 of desired (fill ratio = 0.134)

C: initially receives 1 contract, which is 1/10 of desired (fill ratio = 0.10)

 

The system then allocates the next (and final) contract to an account with the smallest ratio (i.e. Account C which currently has a ratio of 0.10).

A: final allocation of 3 contracts, which is 3/25 of desired (fill ratio = 0.12)

B: final allocation of 2 contracts, which is 2/15 of desired (fill ratio = 0.134)

C: final allocation of 2 contract, which is 2/10 of desired (fill ratio = 0.20)

The execution(s) received have now been allocated in full.

 

Example #2:

CTA/FA creates a DAY order to buy 50 Sept 2016 XYZ future contracts and specifies “XYZ commodities” as the predefined allocation profile. Upon transmission at 11 am (ET) the order begins to be filled3 but in very small portions and over a very long period of time. At 1 pm (ET) the order is canceled prior being executed in full. As a result, only a portion of the order is executed (i.e., 5 of the 50 contracts are filled or 10%).For each account, the system initially allocates by rounding fractional amounts down to whole numbers:

 

Account (A) = 10% of 25 = 2.5 rounded down to 2

Account (B) = 10% of 15 = 1.5 rounded down to 1

Account (C) = 10% of 10 = 1 (no rounding necessary)

 

To Summarize:

A: initially receives 2 contracts, which is 2/25 of desired (fill ratio = 0.08)

B: initially receives 1 contract, which is 1/15 of desired (fill ratio = 0.067)

C: initially receives 1 contract, which is 1/10 of desired (fill ratio = 0.10)

The system then allocates the next (and final) contract to an account with the smallest ratio (i.e. to Account B which currently has a ratio of 0.067).

A: final allocation of 2 contracts, which is 2/25 of desired (fill ratio = 0.08)

B: final allocation of 2 contracts, which is 2/15 of desired (fill ratio = 0.134)

C: final allocation of 1 contract, which is 1/10 of desired (fill ratio = 0.10)

 

The execution(s) received have now been allocated in full.

Example #3:

CTA/FA creates a DAY order to buy 50 Sept 2016 XYZ future contracts and specifies “XYZ commodities” as the predefined allocation profile. Upon transmission at 11 am (ET) the order begins to be executed2  but in very small portions and over a very long period of time. At 12 pm (ET) the order is canceled prior to being executed in full. As a result, only a portion of the order is filled (i.e., 3 of the 50 contracts are filled or 6%). Normally the system initially allocates by rounding fractional amounts down to whole numbers, however for a fill size of less than 4 shares/contracts, IB first allocates based on the following random allocation methodology.

 

In this case, since the fill size is 3, we skip the rounding fractional amounts down.

 

For the first share/contract, all A, B and C have the same initial fill ratio and fill quantity, so we randomly pick an account and allocate this share/contract. The system randomly chose account A for allocation of the first share/contract.

 

To Summarize3:

A: initially receives 1 contract, which is 1/25 of desired (fill ratio = 0.04)

B: initially receives 0 contracts, which is 0/15 of desired (fill ratio = 0.00)

C: initially receives 0 contracts, which is 0/10 of desired (fill ratio = 0.00)

 

Next, the system will perform a random allocation amongst the remaining accounts (in this case accounts B & C, each with an equal probability) to determine who will receive the next share/contract.

 

The system randomly chose account B for allocation of the second share/contract.

A: 1 contract, which is 1/25 of desired (fill ratio = 0.04)

B: 1 contract, which is 1/15 of desired (fill ratio = 0.067)

C: 0 contracts, which is 0/10 of desired (fill ratio = 0.00)

 

The system then allocates the final [3] share/contract to an account(s) with the smallest ratio (i.e. Account C which currently has a ratio of 0.00).

A: final allocation of 1 contract, which is 1/25 of desired (fill ratio = 0.04)

B: final allocation of 1 contract, which is 1/15 of desired (fill ratio = 0.067)

C: final allocation of 1 contract, which is 1/10 of desired (fill ratio = 0.10)

 

The execution(s) received have now been allocated in full.

 

Available allocation Flags

Besides the allocation methods above, user can choose the following flags, which also influence the allocation:

·         Strict per-account allocation.
For the initially submitted order if one or more subaccounts are rejected by the credit checking, we reject the whole order.

·         “Close positions first”1.This is the default handling mode for all orders which close a position (whether or not they are also opening position on the other side or not). The calculation are slightly different and ensure that we do not start opening position for one account if another account still has a position to close, except in few more complex cases.


Other factor affects allocations:

1)      Mutual Fund: the allocation has two steps. The first execution report is received before market open. We allocate based onMonetaryValue for buy order and MonetaryValueShares for sell order. Later, when second execution report which has the NetAssetValue comes, we do the final allocation based on first allocation report.

2)      Allocate in Lot Size: if a user chooses (thru account config) to prefer whole-lot allocations for stocks, the calculations are more complex and will be described in the next version of this document.

3)      Combo allocation1: we allocate combo trades as a unit, resulting in slightly different calculations.

4)      Long/short split1: applied to orders for stocks, warrants or structured products. When allocating long sell orders, we only allocate to accounts which have long position: resulting in calculations being more complex.

5)      For non-guaranteed smart combo: we do allocation by each leg instead of combo.

6)      In case of trade bust or correction1: the allocations are adjusted using more complex logic.

7)      Account exclusion1: Some subaccounts could be excluded from allocation for the following reasons, no trading permission, employee restriction, broker restriction, RejectIfOpening, prop account restrictions, dynamic size violation, MoneyMarketRules restriction for mutual fund. We do not allocate to excluded accountsand we cancel the order after other accounts are filled. In case of partial restriction (e.g. account is permitted to close but not to open, or account has enough excess liquidity only for a portion of the desired position).

 

 

Footnotes:

1.        Details of these calculations will be included in the next revision of this document.

2.        To continue observing margin in each account on a real-time basis, IB allocates each trade immediately (behind the scenes) however from the CTA and/or FA (or client’s) point of view, the final distribution of the execution at an average price typically occurs when the trade is executed in full, is canceled or at the end of day (whichever happens first).

3.       If no account has a ratio greater than 1.0 or multiple accounts are tied in the final step (i.e. ratio = 0.00), the first step is skipped and allocation of the first share/contract is decided via step two (i.e. random allocation).

 

Overview of Accumulate / Distribute Algorithm

Overview: 

Accumulate/Distribute is a sophisticated trading algorithm which allows one to buy or sell large orders by splitting the trade into multiple orders with the goal of reducing visibility and market impact.

When to Use
This order type is geared towards traders of large position blocks as well as high frequency traders and is intended to run unattended while logged into the TWS.
 
How to Locate
The Accumulate/Distribute algorithm can be accessed from the TraderWorkstation by selecting the Trading and then Accumulate/Distribute menu options at the top of the page or it can be added to the trading tool bar menu by clicking on the Add More Buttons icon.
 
Order Set Up
Once the trader has defined the instrument and action (buy or sell), the following parameters are to be specified:
 
  1. Total Quantity – defines the aggregate order size (e.g., shares, contracts);
  2. Trade Increment – defines the unit (e.g., shares, contracts) size for each component order;
  3. Time Increment – defines the period of time (seconds, minutes or hours) between the submission of a component order and the submission of the following order;
  4. Order Type – may select from market, limit or relative. A market order will be executed at the ask price and should only be used where, for example, a stock is highly liquid with significant bid-ask sizes. Limit and Relative order types require that the trader specify additional order relationships and the choices are numerous. The execution price, for example, may be specified as being relative to a fixed value, bid, ask or last price, VWAP, moving average or last trade. These choices may be increased or decreased by an offset factor and multiple conditions may be established. For example, one may wish to create a relative order type to match the bid price plus an offset factor of $0.01 and to ensure that they don’t lift the ask if the spread is $0.01, add a condition that the bid be no less that $0.02 beneath the ask price.
  5. How to Operate – if the trader does not check the box titled “Wait for current order to fill before submitting next order” then orders which do not meet the price conditions will continue to accumulate in accordance with the established time increment, the unexecuted orders will be aggregated into one or more potentially sizable orders at the exchange. If this box is checked, then the more restrictive the buying conditions, the greater the likelihood that the algorithm will fall behind its schedule of buying or selling at every ‘X’ interval.  If this box is checked the trader may then check the box titled “Catch up in time”. When that box has been checked and should the algorithm fall behind, the next orders will be placed immediately after their predecessor fills until such time the algorithm has caught up.
  6. Randomization – check boxes are provided to allow for a +/- 20% randomization in the time increment and a +/- 55% randomization in the trade increment. Accordingly, in the case of a 30 second time increment, this would allow for randomization of between 24 and 36 seconds between orders and in the case of a 500 share trade increment, this would allow for randomization of between 200 and 800 shares (rounded to the nearest round lot) per order. Randomization serves to minimize the likelihood of others detecting your order.
  7. RTH – a check box is provided which will allow the order to be filled outside of regular trading hours.
  8. Take up Offer Size – if a limit or relative order type is selected, the trader may input an order size which if bid (in the case of a sell order) or offered (in the case of a buy order) the trader would be willing to take in its entirety, up to the remaining portion of the total order quantity (satisfies the price conditions).
Managing the Trade
The Accumulate/Distribute algorithm also allows for conditions to be established which, if not met, will cause the algorithm to either stop permanently or resume when the conditions are again satisfied. These include the following:
 
  1. Price Range - traders may specify a price range outside of which they do not want to buy the stock;
  2. News – the trader may stop the algorithm for some period of time if there is news on the stock, for example;
  3. Position - traders may stop the algorithm based upon their position in the stock; For example, a trader running multiple algorithms one to buy the stock and another to sell in an attempt to trade the stock back and forth for a profit may decide to suspend one side if the position becomes substantially imbalanced;
  4. Stock Path – a trader, for example, may wish to suspend the algorithm if a given moving average, say the 10-minute VWAP is not at least as high as another average, say the 50-day moving average. This feature enables you to set up algorithms to trade chart points even when you are not looking at the chart at that moment;
  5. Stock Path for Multiple Symbols – this condition is similar to the last except that it calls for two symbols. Here you can put in any symbol and compare some data point regarding that symbol (e.g., 10-minute VWAP, etc.) to the same or a different data point regarding the second symbol. These comparative conditions can apply to different symbols or to the same symbol.   For example, you could specify that you want to buy a certain stock only if it has been in a continuous uptrend. So in addition to the 10-minute VWAP being higher than the 50-day moving average, you would also like the 10-day moving average to be higher than the 30-day moving average on this stock.
Other Considerations
Acceptable inputs for this algorithm include:
  1. Products – any product offered by IB (stocks, options, ETFs, bonds, futures, Forex) other than mutual funds;
  2. Order Type – market, limit or relative.

IMPORTANT NOTE

This algo will only operate when the trader is logged into the TWS.  If the trader has been logged out prior to the algo completing (either by user action or by the automated nightly restart), a message will appear upon the next log in which will allow for re-activation of the algo.

Overview of the Scale Trader Algorithm

Overview: 

The ScaleTrader is a sophisticated trading algorithm which allows one to enter a large quantity order that is executed in a series of increments or components, with each component being executed at a progressively better price.

When to Use
The use of this algorithm is well suited to situations where a stock is trading at or near the bottom of a trading range and the trader is looking to average down, buying into a declining market. Alternatively, it may be used on the opposite side when the trader is looking to sell into the top of the trading range, perhaps scaling out of a long position. In either situation, the Scale Trader algorithm also allows the trader to scalp the market, submitting opposite profit taking orders against the original order.
 
How to Locate
The Scale Trader can be accessed from the TraderWorkstation by selecting the Trading and then Scale Trader menu options at the top of the page or it can be added to the trading toolbar menu by clicking on the Add More Buttons icon.
 
Order Set Up
Once the trader has defined the instrument and action (buy or sell), five parameters will need to be specified. Traders will also need to define the order type and time in force. These five parameters for a stock purchase (sale) would be as follows:
 
  1. Total Order Size (TOS) – the total number of shares the trader is willing to purchase (sell) as the price falls (increases);
  2. Initial Component Size (ICS) – the number of shares to be purchased (sold) at the Starting Price;
  3. Subsequent Component Size (SCS) – the additional number of shares to be purchased (sold) at each Price Increment (at successively lower prices in the case of a purchase and higher in the case of a sale). If a SCS is not entered, the ICS will be used for all component orders.
  4. Starting Price (SP) – the price at which you are willing to purchase (sell) the Initial Component Size
  5. Price Increment (PI) – in the case of a purchase (sale), this is the decrease (increase) in price at which each successive component order is to be executed.
Based upon the inputs provided to those parameters, the Scale Trader application will calculate a Top Price (TP) and a Bottom Price (BP) which, depending upon the buy or sell action selected, will either determine the price at which the last order will be executed (BP for purchases and TP for sales) or be relevant only if the same scale is used to close or restore the size of the position (TP for purchases and BP for sales). Adjustments made to either of these two factors will be reflected in the PI and their calculations are as follows:
 
  1. TP = (((ICS/SCS) -1) * PI) + SP
  2. BP = SP – (((TOS - ICS)/SCS) * PI
Note that once a product symbol has been entered a price chart will be displayed to assist in specifying the parameters. The algorithm will not be activated until the Transmit button has been clicked and once transmitted will run indefinitely until stopped or changed or it encounters conditions where it stops. It's important to note that this particular algo will continue to run even if the trader is not logged in to the TWS.
 
Example
Assume a GTC limit order is entered into the Scale Trader to buy 1,000 shares of hypothetical stock ABC having a NBBO of $19.95 - $20.00 at a starting price of $20.00 with 500 more shares purchased at every $0.05 down, resulting in a maximum position of 4,000 shares. The five parameters for this order would be as follows:
 
  1. TOS = 4,000;
  2. ICS = 1,000;
  3. SCS = 500;
  4. SP = $20.00
  5. PI = $0.05
This order would be then be scaled into 7 components consisting of one at 1,000 and 6 at 500 each. The first component is submitted at $20.00 and after it fills the next component (500) would be submitted at $0.05 lower. That order would wait until marketable and once it has been filled the next component will be submitted. This pattern continues until all components have been filled or the order has been cancelled.
 
Managing the Trade
  1. Profit taking orders – the Scale Trader may be set to send an offsetting order to take advantage of periodic price surges or if the trader has reached a specified profit objective. This feature may be enabled by checking the box titled “Create profit taking order” and specifying the Profit Offset. Using the example above and a Profit Offset of $1.00, once the ICS was filled at $20.00 and an SCS submitted at $19.95, two profit orders would also be submitted, one for 500 shares at $21.00 and another for 500 shares at $21.05. It should be noted that profit orders are scaled to the SCS regardless of the size of the ICS and that if the ICS > SCS then the profit order price is determined using the PI along with the Profit Offset. 
  2. Restore size after taking profit – if using the profit taking orders feature, the trader can enable the repurchase of shares sold at a profit at the price they were originally bought at by checking the box titled “Restore size after taking profit”. This feature remains active whenever the price is within the range of TP + Profit Offset and BP. Using the example above, if order to sell 500 shares at $21.00 was executed this fill quantity would be put back into the original order at $20.00 and the order submitted at $19.95 would be cancelled.
  3. Restart Scale Trader & Restart Scale Trader with Filled Component Size – these features allow traders using the profit taking order and restore size features to restart the algorithm if stopped, helping to resume the order starting from the point at which the scaled sequence left off.
  4. Auto Price Adjustment – selecting this check box allows for an increase or decrease in the starting price automatically at stated time intervals (e.g., increase $0.01 every hour)
  5. Scale Trader Page – provides a view of the real-time status of scale orders, including filled and total quantity, filled, remaining, and total value, and the percent filled for each scale. Accessible via the Page and then Create Scale Trader Page menu options.
  6. View Scale Progress - right-click on the scale order line and select View Scale Progress. This will open a window displaying the complete scale price ladder, the Open/Filled component list for the parent scale order, and the Open/Filled component list for the child profit orders.
Other Considerations
Acceptable inputs for this algorithm include:
  1. Products – any product offered by IB other than mutual funds (e.g., stocks, options, ETFs, bonds, futures, Forex);
  2. Order Type - limit or relative (relative not offered for combination orders)
  3. Time in Force – Day, Good-til-Cancel or Day-til-Cancel. May also specify if order is allowed to be filled outside of regular trading hours, if executions may be routed and executed during pre-open session and whether to ignore opening auction.

 

Assets eligible to be transferred through ACATS

Instruments handled by the ACATS system include the following asset classes: equities, options, corporate bonds, municipal bonds, mutual funds and cash. It should be noted; however, that ACATS eligibility does not guarantee that any given security will transfer as each receiving broker maintains its own requirements as to which asset classes as well as securities within a particular asset class it will accept.

Account holders are encouraged to use the Contract Search link on IB’s homepage to assess transfer eligibility prior to initiating a full account transfer request.  In the case of mutual funds, please click here for a list of fund families and funds offered by IB.

Syndicate content