Skip to main content
New York
Chicago
London
Paris
Kyiv
Sydney
Tokyo
Dubai
Shanghai
Sao Paulo
Madrid

Accumulation / Distribution Algorithm for Stocks in the Trader Workstation Platf

More
#32 by Andrey Rimsky
The Accumulation/Distribution Algorithm was originally introduced as a way to pass large stock orders to make them harder to find later in the market.

This advanced interface allows the trader to efficiently and simultaneously manage multiple algorithm orders alone.

Can be used for any assets traded with us.

Custom order sizes and gaps, along with other attributes, help keep large orders undetected. Even if they are discovered, it will be difficult to take advantage of such a situation.

The available templates allow you to quickly and easily create multiple orders of the accumulation/distribution algorithm.


 
Algorithm definition

Open the algorithm window from the "New Window" drop-down menu in the Mosaic interface. At the bottom of the window, select "More advanced tools" and then "Accumulation/Distribution".
The algorithm field is where you set the basic parameters for your algorithm. The fields indicated in pink are mandatory.


 
1. Specify the BUY or SELL action.

2. Enter the total order quantity, for example 1,000,000.

3. Determine the component (pitch) of each component, for example, 500.
4. Specify the time to transfer components in seconds, minutes, or hours.
5. Select an order type. The fields for setting the price depend on the type of order you have chosen. For stock orders, select from:Select the expiration time: Good Till Canceled (GTC) or Day (DAY).

Limit - set a limit price with an amount offset (optional) that must be reached or exceeded in order for the order to be filled.

Market - an attempt to execute an order at the current market price.

Relative - Use this order type to add liquidity to the market by placing a bid or offer that is much more aggressive than the current best bid and offer. Set the offset amount (optional) and refine the limit. As the market moves, the algorithm will automatically adjust based on the specified criteria.

Retail Price Improvement or RPI - Similar to a relative order, except that the price offset MUST be greater than zero.
6. Select the expiration time: Good Till Canceled (GTC) or Day (DAY).
7. Set the price at the ... level (for RELATIVE/RPI orders) in case of BUY orders, use a Multilevel bid of any amount (relative orders can have a zero offset). For SELL orders, use the ask minus any amount. This column is displayed only for REL orders and works with the following field:
8. Above (for RELATIVE/RPI orders) is the price limit that works in parallel with the price calculation set in the previous field
9. For LMT orders, the "Set limit price for: ..." field
For MKT orders, this field is not displayed.
Choose from the following calculations: (Enter a negative value for minus offset) Click "and" to add more price terms if possible to calculate a "but not higher than/not lower than" price limit. When you add multiple price cap conditions, a new "higher of/lower of" field will appear to ensure that the order price will not be higher (lower) than the higher/lower value of conditions A, B, and C.

No - only for REL orders. There is no price limit.

Cost - opens a column for entering the absolute limit price.

Bid - bid Multi-level/minus the amount of possible offset.

Ask - fsk Multi-level / minus the amount of possible offset.

Last - the price of the last transaction Multi-level/minus the amount of possible shift.

VWAP - the value of VWAP Multilevel/minus the amount of possible offset.

slip VWAP - the value of the moving VWAP (for the current contract) for the last [specified time period] Tiered/minus the amount of possible offset.

slip avg. - the value of the moving average (for the current contract) for the last [specified time period] Multilevel/minus the amount of possible offset.

Exponential slip avg. - the value of the exponential moving average (for the current contract) for the last [specified time period] Multilevel/minus the amount of possible offset.

My message trade - the price of the last trade according to the algorithm, shown as the price of the last trade in the "Summary" section. Please note that this value cannot be used to specify a limit price, as there will be no price for the first trade in this case.

Relative to Number of Units Bought/Sold - Calculates the price limit as: the user-specified base price minus the entered offset value per number of shares in relation to the total size traded with the algorithm and displayed in the "Summary" section in the "Units Bought" column. For example, if the values are: $5.50 - .02 per 100 shares, then the price limit for the order of the first 100 shares (where trade size = 0) will be $5.50. Assume that the trade continues and is executed in units of 100 shares. The price limit in this case will change as follows: trade size = 100 limit = $5.48; trade size = 200 limit = $5.46; trade size = 300 limit = $5.44.

Relative to position - calculates the price limit in the same way as in relation to the size of the transaction, except that the calculation is relative to the position, as indicated in the "Account" window and in the "Position" column, and the size of the transaction is only relative to what happens when accumulation/distribution algorithm.
10. Click "and" to add more price conditions, if possible, to calculate the "but not higher than/not lower than" price limit. When you add multiple price cap conditions, a new "higher of/lower of" field will appear to ensure that the order price will not be higher (lower) than the higher/lower value of conditions A, B, and C.
11. Start time - by default, the start time is set to the current or next open time (if the markets are currently closed). Click in the field to enter a new start time, but note that the algorithm will not work until you click the "Start" button.
12. End Time - By default, the end time is set to the close of the current day or the next trading session if the algorithm is run outside of trading hours. Click in the field to enter a new end time.
13. Time zone - if necessary, set a different start time.
14. Wait for the execution of the current order before submitting the next one - if the checkbox is checked, the next component will be held until the current amount is triggered. The countdown to the next order stops while the algorithm waits for the execution of the current order. As soon as it is executed, the next order will be sent if the time interval specified for it has expired.
15. Stick to the time schedule - if the checkbox is checked and the algorithm is lagging behind, then the next order will be placed immediately from the moment the current order is executed, regardless of the time interval. This procedure will be repeated until the algorithm returns to its time schedule. Lost orders are included in the "Summary" section of the algorithm.
After the execution of one order, there is always a small 2-second delay before the next one is transmitted.
16. Randomize time interval by +/- 20% - if checked, the time interval you specified will be randomly increased or reduced by 20% maximum in both directions in order to make the order less visible on the market.
17. Randomize size by +/- 55% - if checked, the step size you specify will be randomly increased or decreased by 55% maximum (rounding up to the nearest 100) in both directions in order to make the order less visible in the market.
18. Allow execution of this order outside of the exchange session - if checked, the order can be executed outside of trading hours.
19. Accept the entire offer if it has a size ... and a price ... or better - for a buy order, if the current size is greater than or equal to the size entered in this field, then the algorithm will accept the entire size or the maximum size that does not exceed the total order quantity. Such an order is transmitted as an Immediate-or-cancel or IOC (execute immediately or cancel) order.

Defining algorithm conditions

All conditions are optional, but if you set any requirement, then the fields that you must complete in order to fulfill this condition will be marked in pink.
Please note that the more conditions you specify, the more difficult it will be for your order to be filled in full or on time.


 
The order always terminates if any of the conditions you set becomes incorrect. Use these options to refine how the algorithm should behave after it terminates:

Reject irrevocably if one or more conditions become false

Renew the order if all conditions become true again
To clear the condition parameters, click the "x" at the end of the line. The "x" icon only appears if you have entered any data in the field.
1. Price - specify the range within which the contract price must remain in order for the order to continue to work.
2. News - news notes will not affect price fluctuations when this value is specified in minutes. As long as there is no news for the time period you specified, the algorithm works. News is viewed from the providers you have installed on TWS, including Google news, Yahoo! and Reuters subscriptions.
3. Position - acts as a position constraint. If the position condition is violated, the TWS platform will not place an order or execute any order that would result in such a violation.
4. Moving averages for this contract - defines the moving average criteria for the current contract. Check for the following for the current contract: the value of the moving VWAP, moving average, exponential moving average or last trade in the past [specified time period] is at least [specified percentage] more or less than another moving average (for the current contract) for the [specified period time]. To clear the options, click the "x" at the end of the line.
5. Moving Averages for - Compare two setting moving average criteria, including moving VWAP, moving average, exponential moving average or latest. Use the same or two different contracts for the same or different time periods. Specify the underlying asset and set the parameters.
6. The following two fields work together to compare the price change of two stocks over a period of time based on the difference between the stock price and its moving average value. The algorithm performs calculations based on the data you enter. Enter a character. Enter the percentage to be reached for the settlement difference between the two stocks.

Algorithm transfer and correction

Use the buttons at the bottom of the conditions area to control the algorithm.



Once all fields are filled in, you can activate the algorithm.
1. Preview view - click to update the order line and display the order view window.
2. Place - to transfer the order. In addition, if you are adjusting any order parameters, click to make those changes to the algorithm. For example, if you decrease the step size from 500 to 300, this change will not be taken into account until you click the Place button.
3. Save - saves the order for its transmission in the future.
4. Restore - click to restore the original settings instead of the changes that have not yet been applied. For example, by clicking the Revert button, you can undo your change. After applying the change (clicking the Apply button), the restore option is no longer available.
5. Cancel order - cancels the order.
6. Start - starts the algorithm. If you stop the algorithm manually, click Start to resume from where you left off.
7. Stop - stops the algorithm. This button will be active after the algorithm starts.
8. Reset - if the algorithm is stopped due to its completion or manually, then this reset button will start the algorithm from the beginning. If you prefer to resume the algorithm from where it left off, use the "Start" button.
9. Status text - this note informs you about what is happening on the current screen of the algorithm.
 

Please Log in or Create an account to join the conversation.

Time to create page: 0.259 seconds

Share