Insilico Terminal Documentation

https://docs.google.com/document/d/1l_nyoNzMTdSEXweLwxMOPgGRD_xMvdeWEKLDaT4LwdQ/

Author: azi

Created: July 15th 2021

Updated: Aug 3rd 2021

Contents

1. Introduction

2. Description of UI elements

  • Page Header

    • Nuke Orders

    • Nuke Positions

    • Settings

    • Account Menu

  • Page Footer

    • Displacement & Latency

  • Main Page (draggable resizable elements)

    • Interactive Chart

    • Orderbook

    • Trades

    • Instruments

    • Activity

    • Orders

    • Positions

    • Terminal CLI (beta)

  • Execution Side Panel

    • Limit Tab

      • Limit

      • Stop

      • Click Placement

      • Chase

      • Scale

    • Market Tab

      • Market

      • Stop

      • Swarm

      • TWAP

    • Margin Control and Leverage

    • Instrument Statistics

3. Future development

4. Known issues

5. General information

1. Introduction

The general aim of the Terminal is to function as a drop-in replacement for the official exchange trading interface. The Terminal aims to provide a superset of the capabilities found therein. It is designed to be simple and intuitive with an uncluttered interface.

Furthermore, via testing and feedback from users, Terminal development aims to modify and expand its own capabilities to best suit traders’ requirements, ergo; make stuff people find genuinely useful.

2. Description of UI elements

UI elements can be shown/hidden by clicking on the ‘cog’ button on the bottom right corner of the screen which reveals a slide-out configuration panel.

Here the experimental Terminal CLI element can be added.

Notifications

The Terminal has a notification system to display useful feedback to the user such as when an operation has completed or there is an error. These can be found in the top right of the page.

Page Header

Nuke Orders (orange button); Pressing once cancels every outstanding order for every instrument as quickly as possible. Note; cancellation priority is given to the currently selected instrument. Confirmation is provided when complete.

Nuke Positions (red button); Pressing once closes all open positions on every instrument and every side (e.g. ‘hedged’ linear contracts on Bybit). Confirmation is provided when complete.

“Settings” top menu option; Account (API key) management, multiple keys are allowed (see below). Please make sure Order and Position management is enabled on the API key.

Account Switcher; drop-down menu on the top-right of the page. Use to switch between connected accounts (API keys)

Page Footer

Displacement statistic; Shows the time displacement between your browser and the exchange. If negative, your system clock is behind the exchange’s clock. This has no bearing on trading speed / performance.

Latency statistic; Shows the live connection speed to the exchange expressed in milliseconds. A measure of the time it takes a user’s command to reach the exchange trading engine. Lower figures are desirable.

Main Page

Interactive Chart

The chart provides a practical subset of “TradingView” style functionality. It can be dragged, resized and zoomed in much the same way.

For performance reasons, a small snapshot of recent pricing data is provided. The data is updated live (per tick) and can be switched to a number of common presentation resolutions; 1min, 5min, 15min, 1H, 4H, 1D. The Resolution button in the Chart title bar toggles a toolbar of these options on/off.

The Chart’s main function is to provide visual representation of open orders, stops and positions.

Interactivity

Drag & Drop Users are able to click and drag orders to a different price. Note that if e.g. a buy order is dropped above the current price - and it is not marked “Post Only” - then it will have crossed the spread and will execute immediately as a market order.

Cancel Individual orders can be cancelled via the [ X ] button on the order label. Note there is no confirmation warning provided, orders are cancelled immediately.

Price Autofill Clicking on the chart will fill any selected “Price” textbox with the clicked price. This is useful for example when quickly placing a limit order instead of typing the price in manually.

Orderbook

Shows live stack of asks and bids on the selected instrument. Shows the user’s resting (limit) orders in the book at price with a green or red arrow. Abbreviated values for size can be selected via the k/M button e.g. “1.24 M” rather than “1,240,000”.

Update speed can be selected by the title bar menu; Realtime (0ms), 100ms, 250ms, 500ms, 1 second. Recommended a choice of either 100ms or 250ms, any faster may result in a UI performance penalty (depending on hardware/browser).

The dimmed (background) colored volume bars aim to represent the balance and ratio of liquidity provision on either side of the book.

Trades

Shows recent trades for the currently selected instrument. Notional value is always displayed in the quote currency (e.g. USD). A title bar button shows the minimum size of trades to show, clicking this button will allow adjustment of this minimum via a slider bar.

Instruments

Simple instrument selector showing recent traded price, 24h price change and volume. Columns are sortable.

Activity

This panel provides an at-a-glance summary of users’ current trading/execution activity. Additionally provides details (e.g. current price, size etc.) and an option to cancel the activity.

This is useful to be aware of longer running operations such as TWAP or Limit Chase whose status may be buried elsewhere in the UI’s background.

Orders

List of current orders and stops for the current instrument only organized by status. Open orders may be cancelled individually from this list. Selecting “all” shows open orders for all instruments on the account. Most columns are sortable.

Positions

All open positions for all instruments. Close button will reduce the position completely via a market order.

Positions Interactivity

Clicking a position’s Entry price or Size will auto-fill the value into the appropriately selected input box. E.g. when creating a limit order, click the limit “Price” input box, click the position Entry price and it will be filled automatically. Same for Size.

Terminal CLI (beta)

For quicker trading, a command line interface (CLI) is available. Not all of the Terminal features are supported yet, but for those it does; it expands on the capability of the default graphical UI experience.

Often, when specifying sizes or numbers, users can use a percentage e.g. 30% or relative numbers e.g. +100, -25

General command examples

Example Command

Description

nuke positions

nuke p

Nuke all positions

nuke orders

nuke o

Nuke all orders

switch <instrument>

e.g. switch ethusd

e.g. switch btcusdt

Switch to the given instrument

balance

bal

Show total and available balance(s)

max

Largest order size possible given available balance, margin and current price

account list

Show available accounts

account <number>

Switch to the numbered account

clear

Clear the text console

Simple Ordering examples

buy <size>

sell <size>

e.g. buy 10

e.g. buy 25%

Market buy or sell

> Market buy 10 contracts

> Market buy 25% of available size

buy <size> at <price>

sell <size> at <price>

e.g. sell 10000 at 51999

e.g. buy 25% at 31000

Place a limit order for the given size at the specified price

> Sell 10,000 contracts at $51,999

> Buy 25% of available size at $31,000

buy <size> best

sell <size> best

Enter the size at the best price in the orderbook (quote)

Close Position examples

close

Close position on the current instrument completely

close <instrument>

Close position on a specific instrument completely

close <side>

e.g. close long

Close specific side of the current instrument (only useful for “hedged” positions)

close <size>

e.g. close 10000

e.g. close 33%

Close a specific portion of the position

> Reduce position by 10,000 contracts

> Reduce position by 33%

Cancel Orders examples

cancel

Cancel all orders for the current instrument

cancel <side>

e.g. cancel buys

e.g. cancel sells

Cancel all buys or all sells

cancel top <number>

cancel bottom <number>

e.g. cancel top 3

e.g. cancel bottom 25%

Cancel top or bottom orders by price, side is irrelevant

> Cancels the top three highest priced orders

> Cancels a quarter of the lowest priced orders

cancel first <number>

cancel last <number>

e.g. cancel first 5

e.g. cancel last 50%

Cancels orders by time of placement

> Cancel the earliest five orders

> Cancels half of the latest placed orders

cancel stops

cancel buy stops

cancel sell stops

Cancel stops, all of them or cancelled by side

Scale Order examples

scale buy <size> into <count> from <price> to <price>

scale sell <size> into <count> from <price> to <price>

e.g. scale buy 100 into 10 from 31000 to 32000

Place count orders of a given total size between the two prices (order of prices not important)

> Place 10 buy orders between the two prices totalling 100 contracts

Appending cubic will use a cubic distribution (price) to place the orders bunched towards the current traded price

Using icubic will do the inverse; bunch orders away from the current price

scale buy <size> into <count> from <price> to <price> cubic

scale sell <size> into <count> from <price> to <price> icubic

e.g. scale sell 1000 into 25 from 51999 to 50000 cubic

e.g. scale buy 20000 into 10 from 31250 to 32000 icubic

Chase Order examples

chase buy <size>

chase sell <size>

Start a limit chase for the given side and size terminating only on fill or cancel

chase cancel

chase cancel keep

Cancel a running chase. Specify ‘keep’ to keep the order in the orderbook

chase sell <size> reduce

chase buy <size> reduce

Chase using a reduce order, requires an open position

chase buy <size> to <length>

chase sell <size> to <length>

e.g. chase buy 1000 to 0.5%

e.g. chase sell 20000 to 31500

e.g. chase buy 15000 to +100

Start a limit chase terminating at the given length which can be a price, a percentage or a number of USD

Chase up to +0.5% from the entry price

Chase down to $31,500 specifically

Chase up to 100 USD from the entry price

TWAP, Swarm, Triggers examples: not currently supported.

Execution / Ordering Side Panel

There are two selectable tabs by order type: Limit and Market and a drop-down sub menu under each to select a specific operation. They are;

Limit: Limit order, Stop, Mouse Placement, Chase, Scale

Market: Market order, Stop, Swarm, TWAP

For convenience, included underneath every view in this panel and for the current instrument are; Total and Available Balance, Margin Control/Leverage and Instrument Statistics

“Size” Input / Slider bar

This input control is present on every order type, dragging the slider bar to 100% represents the largest size order that can be placed given the available balance, current leverage and execution price (price estimated in the case of market orders).

For inverse futures (perpetual) instruments the Size input represents contracts. For linear instruments, it is the quantity of the specific instrument traded.

For convenience, an equivalent conversion is provided above the input box.

“Stop” Switch

Present on many of the order types. This control is a convenience to quickly place a market stop whilst executing an entry order. There are two modes; absolute price (use +/- 0.5% for quick setting) or relative price expressed as a percentage.

This control also shows Account Risk (projected loss) as a percentage to aid risk management.

Buy / Sell Buttons

Shows quantity and price, additionally shows estimated liquidation price when using isolated margin (Cross liquidation estimate not supported currently).

Margin / Leverage Control

Always present on the Execution panel. For Bybit, press the Confirm button after changing leverage / type. For FTX, the change is immediate. Note Bybit has independent leverage settings for Long and Short positions.

Instrument Statistics

Shows information for any open position(s) for this instrument. Additionally; last traded price, open interest, funding etc.

“Limit” Tab

“Limit” menu item

Place a regular single limit order.

Input a non-zero Size and Price. For quick ordering, toggle the “Best Bid/Ask” switch which will automatically enter the order either side of the spread (depending on Buy or Sell) note this will also enter as a “Post Only” to mitigate taker fees.

Switches:

  • Post -- Post Only, ensure order enters as maker

  • Reduce -- when executed, this will reduce a position’s size (requires position)

  • TP -- Take Profit order. A convenience, places a taker exit order at the given price. Also calculates account growth if hit.

  • Stop -- described at the start of this documentation section

Select the Price input box and click on the chart to quickly fill with the price automatically.

“Stop” menu item

Place a stop limit order. Select Trigger Price or Limit Order Price and click the chart to quickly fill these with the price.

When the trigger price is hit, a limit order will be entered into the orderbook at the given limit order price.

Switches

  • Close -- Marks this as a “close on trigger” order

  • Reduce -- Can only reduce your open position (not available on Bybit Inverse)

  • Post -- Post Only order

Trigger Price Source determines whether the Last traded, Mark or Index price triggers the stop limit order.

“Click Placement” menu item

A convenient scalping tool. Choose a Size Each and then place orders of this size with a single click using the chart. The Terminal is able to automatically determine if the order is a buy or a sell.

Switch options are described elsewhere.

“Chase” menu item

Places a limit order at the best bid or ask and continually adjust its price to follow the quote until the order is cancelled, filled, or a maximum chase ‘distance’ is reached.

Note: only one chase can be executed at a time.

Chase To sets the maximum acceptable adverse price for your order. For example, if choosing 0.5% with an initial entry of 10,000 the chase function continually adjusts the order price up to 10,000 + 0.5% = 10,050 (in case of a buy order). For convenience the red and green boxes below preview the maximum possible adverse price for each side.

Switches

  • Until Fill/Cancel -- Infinite chase. “Chase To” price is disabled and the order will continue to adjust until the operation is cancelled by the user or the order is filled

  • Reduce -- detailed elsewhere

  • Stop -- detailed elsewhere

“Scale” menu item

Scales multiple orders across a price range. Also called “Ladder” orders.

Total Size is distributed across the number of Total Orders. For example if Total Size = 50 and Total Orders = 10, there will be 10 orders placed of size 5.

Select the two prices (numerical order not important) these can also be filled automatically by clicking on the chart.

Total Orders -- minimum of 2, maximum of 100

Switches described elsewhere

“Market” Tab

“Market” menu item

Simple market order, immediate execution. Switch options described elsewhere.

“Stop” menu item

Market stop order. When the Trigger Price is hit, a market order for the given Size will execute. Price, as with all other price inputs can be selected automatically by clicking on the chart.

Switches

  • Reduce -- (only available on Bybit Linear USDT instruments) indicates this market order is Reduce Only and will not increase the size of your position

  • Close -- indicates this is a “close on trigger” to close the position

Trigger Price Source determines whether the exchange’s Last, Mark or Index price is used to evaluate the trigger.

“Swarm” menu item

Fragments a large market order into smaller pieces in order to reduce the slippage typically incurred in a single block order.

Swarm takes a given Total Size and splits the size into a number of Total Lots and executes them in parallel as fast as possible.

Switches

  • Irregular Lots -- use to split the Total Size into random sized pieces rather than create numerous orders of the same size. This can be useful to mask detection.

  • Reduce -- create reduce only orders

“TWAP” menu item

Time Weighted Average Price execution of a large order. A Total Size is divided into the given number of Total Lots which are then executed one by one across the given Total Time at regular intervals (“Order Frequency”).

There is a maximum of 12 hours and a minimum of 5 minutes.

This is a long running process, you may continue trading using the Terminal’s other functions and monitor the TWAP progress in the Activity panel.

TWAP is cancellable at any moment.

Note: only one “TWAP” may execute at once and closing the Terminal will end the process.

3. Future Development

Triggers created and monitored on the Terminal side (rather than stored on the exchange) offer a wealth of specialized trading options.

For example; a price trigger, when hit, could begin a TWAP or a Chase. Or we could use a position trigger to close a position automatically when profit >= 2%

Terminal Text Input a console for entering trading commands via text input is under development. Some traders may occasionally prefer this method for more fine grained control and expansion of execution options.

4. Known issues

As of July 24th 2021

Chart - sometimes “gaps” occur on price candles. This is currently being investigated and will be fixed.

5. General information

System is hosted in Frankfurt, Germany. Multi-region options are a possibility which would connect users to their nearest geographic datacenter.

Servers are load-balanced and horizontally scalable with performance monitoring available.