Note: Oct 29, 2018 - Spot execution algo is now available on our mobile app (ver. 2.1.8).
What is Algo Order?
Algo order is a set of instructions for placing a trade at predefined price and volume. All logic of the algo orders is fixed and well-explained in the document. Instructions will be carried out according to the defined parameters. OKEx will not manually interfere the execution process of the order.
Algo trading tools allow users to enter trade information in advance to save time from execution when the right moment arrives. Users may also use algorithmic trading tools as reminders of the day's trading strategy, to avoid bad executions due to the distractions from the live market.
Algo orders will not be executed if the conditions pre-set are not met. Also, our system will not place a hold on the funds of user's account if an algo order is made. However, the algo order triggered will be canceled if the account does not have sufficient funds for its execution.
Auto-cancellation of spot algo orders: Any open spot algo orders will be canceled automatically the next day at 16:59:59 (CET, UTC+1). Example: a user created a TWAP order at 14:00:00 Jan 15, but it remained untriggered as the conditions set were not met. So, the TWAP order was cancelled automatically at 16:59:59 Jan 16 (CET, UTC+1).
By using our algorithmic trading tools, you understand and agree to our Algo Trading Agreement.
Trigger order is a trading instruction with pre-defined parameters by a customer. When the last traded price has reached the trigger price, our system will send the trading instruction into the order book.
For example, the last traded price of BTC is 9,600 USDT. If a user believes that the price will continue surging up if it breaches the resistance at 10,000 USDT, he may place a trigger order with the following parameters:
Trigger price: 10,000 USDT
Order price: 10050 USDT
Volume: 1.5 BTC
Our system will then automatically send a limit order with the above parameters to the order book when the last traded price reaches 10,000 USDT. This would save the user's time from monitoring the market.
Trail orders allows user to set in advance strategy for significant swings in the market. When the last price reaches maximum (or minimum) market price after trail order is submitted (1±user-defined callback rate), this triggers the order to be executed on the market.
Case 1: BTC current price is19,000 US dollars. The user believes the overall market trend remains bearish but the price will rebound later. The user would like to execute a buy order BTC when 1) the market rebounding rate exceeds the pre-set "callback rate" and 2) the market price exceeds the predefined trigger price.
The user can place a trail order as follows:
Assuming the market swings as follow:
BTC market price fell from 19,000 US dollars and reached the lowest point at 17,800 US dollars. And the price rebounds back to 17,999 US dollars. Hence the market returned 1.11% from the dip [(17999-17800)/17800] = 1.11%
Trail order would NOT be sent because:
- Market rebound rate (which is 1.11%) > user-defined callback rate (which is 1%). => condition matched
- Market Price (17999) < User-defined trigger price (18000) => condition unmatched
In summary, trail order would only be sent in the following conditions:
- Buy Order = 1)Market lowest price <=Trigger Price AND 2) Market rebound >=callback
Sell Order = 1)Market highest price >=Trigger Price AND 2) Market rebound <= callback
An iceberg order is an algorithmic order type allowing users to avoid place a large order while avoiding slippage. An iceberg order automatically breaks up a user´s large order into multiple smaller orders. These orders will be placed on the market according to the latest best bid and ask price as well as the parameters set by the user. When one of the smaller orders has completely filled, or the latest market price has deviated significantly from the price of the current order, a new order will be placed automatically.
Case 1: A user would like to buy 1,000 BTC and does not want to increase the cost so he/she place an iceberg order:
The system will automatically place an iceberg order. The amount of each order will be 90% - 110% of the single order average. The order price will be the latest buy price* (1-price variance). Once the order completely filled, a new order will be placed. When the last market price exceeds 2*(order variance), the previous order would be cancelled and a new one will be placed.
When the amount traded equals the total order amount, the iceberg trade has been filled. When the last market price exceeds the highest buy price of 20,000 US Dollars, the iceberg order would be temporarily halted. After the price falls down to 20,000 US Dollars, the iceberg order would be recommenced.
4、Time-weighted average price (TWAP)
Time-weighted average price (TWAP) is the average price of an instrument over a specified time. TWAP is a strategy that will attempt to execute an order which trades in slices of order quantity at regular intervals of time as specified by users. The purpose of TWAP is to minimize the market impact on basket orders.
Example 1: User would like to buy 1000 BTC and place an order as TWAP.
Assuming the order book as below:
Assuming the user set the Price Variance as 1%, the Max Buy Limit Price is thus set as $18,726.93 * (1 + 1.00%) = $18,914.19. System would then compute the current aggregated sell quantities posted in the order in which the price is lower than mentioned $18,914.19 (which is 415+374+500+2+13=1304). Subsequently the system would take a reference on user-defined sweep ratio so to determine the sliced order size, in this case, which is 65.2BTC (1304*5%).
The sliced limit buy order would be posted at $18914.19 for 65.2BTC.
All unfilled order quantities would not be posted as pending order but would be cancelled. Order would be resent according to user-defined time intervals with an updated price and quantities.
In case the sliced order price reaches the max/min price limit defined by the user, the order would be sent at the max/min price as defined. Said order would be automatically cancelled should there be no matched price in the market.
In case the sliced order quantities reaches the max/min order quantity defined by the user, the order would be sent at the user-defined quantity accordingly.