# Define the Algorithm

The Algorithm area is where you set up basic parameters of the algo. Fields shaded pink are required.

Numbered descriptions below correspond to the numbered fields in the image above.

1. Select the action, BUY or SELL.
2. Enter the total order quantity, for example 1,000,000.
3. Define the size component for each increment. For example, you may want to trade the 1,000,000 share order in 500-share increments.
4. Specify the timing of order submission for the components, in seconds, minutes, or hours. For example, you may want to accumulate 1,000,000 shares in 500 share increments every 30 seconds.
5. Select the order type. The fields to set the price depend on the order type you select. For stock orders, choose from:

• Market - the order will attempt to fill at the current market price.
• Limit - set a limit price with an optional offset amount which must be met or bettered for the order to fill.
• Relative - Set an optional offset amount, and specify a cap. The quote adjusts automatically based on your criteria as the market moves.
• RPI (Retail Price Improvement) - For stocks only. This order type is similar to a Relative order but requires an offset of higher than zero.
6. Select time in force.

7. Set order price to ...(for RELATIVE orders) For BUY orders, use the bid plus any amount. For SELL, use the ask minus any amount. To use only the bid/ask with no offset you must enter “0.” This field is only visible for REL orders only and works with the following field:
8. ...but not higher than - For RELATIVE orders, this is the price cap, which works in conjunction with the price calculation set in the previous field.
- For LMT orders, the field is “Set limit price to:...”
- For MKT this field does not display.
Choose from the following calculations to ensure the limit price will not be set higher than (for a buy) or lower than (for a sell):

• None - for REL orders only. There is no cap on the price.
• Value - opens a field to set an absolute limit price.
• Mark Price - this is a static value shown in parentheses plus or minus an offset. This price will not move with the order.
• Bid - bid plus/minus an optional offset amount. Enter a negative value to effect a minus offset.
• Ask - ask plus/minus an optional offset amount. Enter a negative value to effect a minus offset.
• Last - the last traded price plus/minus an optional offset amount. Enter a negative value to effect a minus offset.
• VWAP - the VWAP plus/minus an optional offset amount. Enter a negative value to effect a minus offset.
• Mov VWAP - the moving VWAP (of the current instrument ) over the past [specified time period] plus/minus an optional offset amount. Enter a negative value to effect a minus offset.
• Mov Avg - the moving average (of the current instrument ) over the past [specified time period] plus/minus an optional offset amount. Enter a negative value to effect a minus offset.
• Exp Mov Avg - the exponential moving average (of the current instrument ) over the past [specified time period] plus/minus an optional offset amount. Enter a negative value to effect a minus offset.
• My Last Trade - the price of the last trade in the algo, shown as the Last Trade Price in the order Summary block. Note that this value cannot be used for the limit price alone since it would have no price for the first trade.
• Relative to size traded - calculates the price cap as: user-defined base price minus user-defined offset value per number of shares relative to the total size traded in the algo, which is reflected in the Shares bought field of the algo Summary block. For example, if the values are: \$5.50 - .02 per 100 shares, the cap price for the first 100-share order where Size Traded = 0 would be \$5.50. Assuming the trade continues to execute in 100-share increments, the price cap would changes as follows: Size Traded = 100 cap = \$5.48; Size Traded = 200 cap = \$5.46; Size Traded = 300 cap = \$5.44.
• Relative to position - calculates the price cap the same as Relative to size traded except that the calculation is relative to the position as specified in the Account window and the Position column, while the size traded is relative to what happens only in the Accumulate/Distribute algo.
9. Enter the value that corresponds to the selection above.
10. For Relative and Limit orders, click and to add more price conditions to the “but not higher than/not lower than” price capping calculation. When you add multiple price-bounding conditions, a new “Greatest of/Least of” selection appears for you to ensure the order price will not be higher(lower) than the greatest of/least of Condition A and Condition B and Condition C etc.
11. Start time - by default, the start time is set to the current time, or to the next open if the markets are currently closed. Click in the field to set a new start time, but note that the algo will not start until you hit the Start button.
12. End time - by default, the end time is set to closing time of the current day, or to the next close is the algo is started outside of regular trading hours. Click in the field to set a new end time.
13. Modify the time zone if desired.
14. Wait for current order to fill before submitting next order - if checked, the next component will be held until the current quantity fills. The countdown until the Time of next order stops while the algo waits for the current order to fill. Once it fills, the next order is submitted if the specified time interval has elapsed.
15. Catch up in time - if checked and the algo falls behind, the next order will be placed immediately after the current order fills, disregarding the time interval. This process will repeat until the algorithm has caught up. Missed orders are tracked in the algo Summary block.

Note:  After one order fills, there is always a delay of two seconds before the next order is submitted.

16. Randomize time period by +/- 20% - if checked, the time interval you specified will be increased or decreased randomly by up to 20% in either direction, to help keep the order from being noticed in the market. For example, if your defined time interval is 40 seconds, randomizing allows the algo to submit orders at intervals of 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47 or 48 seconds.
17. Randomize size by +/- 55% - if checked, the increment size you specified will increase or decrease randomly by up to 55% (rounded to the nearest 100) in either direction, to help keep the order from being noticed in the market. For example, if your defined increment is 500 shares, randomizing allows the algo to submit orders in random increments of 200, 300, 400, 500, 600, 700 or 800 shares.
18. Allow this order to be filled outside of regular trading hours - if checked order may fill outside regular trading hours.
19. If the bid/ask is ____ or higher - for a buy order, if the current offer size is greater than or equal to the size entered here AND the price is the same or better than the entered price, the algo will take the entire size, or as much as will not exceed the total order quantity. This order is submitted as IOC (Immediate-or-cancel).