Skip to content

Commit

Permalink
add topic twap
Browse files Browse the repository at this point in the history
  • Loading branch information
c9s committed Dec 25, 2021
1 parent 442afe8 commit da1b0f5
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions doc/topics/twap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
## TWAP Order Execution

Yes, bbgo supports TWAP order execution. If you have a large quantity order want to execute,
you can use this feature to update your order price according to the first bid/ask price in the order book.


### Usage

```
bbgo execute-order --session binance --symbol=BTCUSDT \
--side=sell \
--target-quantity=100.0 \
--slice-quantity=0.01 \
--stop-price=58000
```

The above command will sell 100 BTC in total and for each slice it places a limit sell order with 0.01 BTC, and only place the sell order when price is above 58000.

```
bbgo execute-order --session max --symbol=USDTTWD --side=sell --target-quantity=1000.0 --slice-quantity=100.0 --stop-price=28.90
```

`--symbol=SYMBOL` is the symbol of the market, the symbol should be in upper-case, for example, `USDTTWD` or `BTCUSDT`

`--side=SIDE` is the side of your order. can be `buy` or `sell`.

`--target-quantity=TARGET_QUANTITY` is the final quantity you want to buy/sell.

`--slice-quantity=SLICE_QUANTITY` is the slice quantity per order. for example, if you have targetQuantity=100.0 and sliceQuantity=10.0, then the order will be split into 10 orders.

`--stop-price` the highest/lowest price of your order. for example, the current best bid/ask price is 28.65 and 28.70,
if your stop price for BUY is `28.60`, your BUY order will stay at price `28.6` and won't be updated.
if your stop price for SELL is `28.75`, your SELL order will stay at price `28.75` and won't be updated.

`--price-ticks` the incremental tick spread of the price. for example, the current best bid/ask price is 28.00 and 28.10,
the single tick of the USDT/TWD symbol is 0.01,
if you set `--price-ticks=2`, then the order executor will use 28.00 + 0.01 * 2 for your BUY order, and use 28.10 - 0.01 * 2 for your SELL order.

`--deadline` the deadline duration of your order execution, if time exceeded the deadline time, then the rest quantity will be sent as a market order.

0 comments on commit da1b0f5

Please sign in to comment.