1. Algo Order
Algo orders are sets of instructions for placing trades according to predetermined logic. The logic of all available algo order types is explained in this document. Order submission is carried out according to user-defined parameters. OKCoin does not manually interfere with the execution of algo orders.
Some algo trading tools allow users to enter trade information in advance, and save execution time when predetermined market conditions are in place. Some traders use algorithmic execution tools to help them stick to their trading strategy, and avoid poor executions.
Algo orders will not be executed if pre-set conditions are not met. Also, our system does not place a hold on user account funds when an algo order is made. However, triggered algo orders will be canceled if the account does not have sufficient funds for its execution.
By using our algorithmic trading tools, you understand and agree to our Algo Trading Agreement.
Stop-Limit is a set of instructions for placing a trade order at predefined parameters. When the latest market price reaches the trigger price, the system will automatically place order according to the pre-set price and amount.
When a Stop-Limit is triggered, if the user's account balance is lower than the order amount, the system will automatically place order according to the actual balance. If the user's account balance is lower than the minimum trading amount, order cannot be placed.
Case 1 (Take-profit):
The user buys BTC at USDT 6,600 and believes that it will drop when it reaches USDT 6,800, he can open a Stop-Limit order at USDT 6,800. When the price reaches USDT 6,800, the order will be triggered. If the user has 8 BTC balance, which is lower than the order amount (10 BTC), the system will automatically post an order of 8 BTC to the market. If the user's balance is 0.0001 BTC and the minimum trading amount is 0.001 BTC, the order cannot be placed.
Case 2 (Stop-loss):
The user buys BTC at USDT 6,600 and believes that it will continue to drop below USDT 6,400. To avoid further loss, user can sell his order at USDT 6,400 when the price drop to USDT 6,400.
Case 3 (Take-profit):
BTC is at USDT 6,600 and the user believes that it will rebounce at USDT 6,500. In order to buy BTC at a lower cost, when it drops below USDT 6,500, buy order will be placed.
Case 4 (Stop-loss):
BTC is at USDT 6,600 and the user believes that it will continue to rise to over USDT 6,800. To avoid paying for BTC at a higher cost above USDT 6,800, when BTC rises to USDT 6,802, order will be placed as the BTC price has fulfilled the order requirement of USDT 6,800 or above.
3. Trail Order
Trail orders allow users to execute trades dependent on predefined swings in the market. When market price reaches a defined maximum (or minimum), and retraces a specified amount, a limit order is submitted (1 ± user-defined callback rate).
When a Trail order is triggered, if the user's account balance is lower than the order amount, the system will automatically place order according to the actual balance. If the user's account balance is lower than the minimum trading amount, order cannot be placed.
Case 1: BTC current price is 1,900 USD. The user believes the market trend remains bearish but the price will rebound later. The user would like to execute a buy order BTC when 1) the market rebound exceeds the pre-set "Callback Rate" and 2) the market price exceeds the predefined trigger price.
The user can place a trail order with the following parameters:
Assuming the market swings as follow:
BTC market price fell from 1,900 USD and reached the lowest point at 1,780 USD. And the price rebounds back to 1,799 USD. Hence the market returned 1.1% from the dip [(1799-1780)/1780] = 1.1%
Trail order would NOT be sent because:
- Market rebound rate (which is 1.1%) > user-defined callback rate (which is 1%) -> condition matched.
- Market Price (1799) < User-defined trigger price (1800) -> condition unmatched.
In summary, trail order would only be sent in the following conditions:
- Buy Order = 1) Market lowest price < or = Trigger Price AND 2) Market rebound > or = Callback
- Sell Order = 1) Market highest price > or = Trigger Price AND 2) Market rebound < or = Callback
4. Iceberg Order
An iceberg order is an algorithmic order type allowing users to avoid displaying a large quantity order. An iceberg order automatically breaks up a 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 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.
Case 1: A user would like to buy 1,000 BTC and does not want to impact the market, so they place an iceberg order:
The system will automatically place a slice of the order. The amount of each order slice will be 90% - 110% of the defined average amount. 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 USD, the iceberg order would halt temporarily. If the price falls to 20,000 USD, the iceberg order would be begin again.
5. 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 executes an order in slices and at regular intervals of time as specified by users. The purpose of TWAP is to minimize market impact.
Example 1: User would like to buy 1,000 BTC and places an order as TWAP:
The order slice limit price is determined as follows. For buy order, best bid*(1 + price variance %), and for sell order, best ask*(1 - price variance %).
The system references the user-defined sweep ratio to determine the size of order slices. Sliced order sizes equal the available liquidity under the price limit multiplied by the sweep ratio.
All unfilled order quantities would not be posted as pending order but would be cancelled. A new order would then 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. The order would be automatically cancelled should there be no matched price in the market.