TSLab
TSLab.proSupportTSLab LiveTSVerse
Eng
Eng
  • TSLab trading platform
  • For newbies
    • A beginner's guide
      • Purchasing a license key for a data provider
      • An example of connecting text quotes
      • Example of connecting a data provider to a broker / exchange
      • An example of creating a script in TSLab
      • An example of creating a trading algorithm in TSLab
  • Installing TSLab
    • TSLab Installation Guide
      • System requirements
      • TSLab Installation manual
    • Update TSLab
      • Preparing for update
      • Release build
      • Nightly build
    • Restarting the TSLab program
    • TSLab Changelog
      • TSLab 2.1 Changelog
      • TSLab 2.2 Changelog
        • 2.2.26.0 - 2024/01/31
        • 2.2.25.0 - 2024/01/17
        • 2.2.24.0 - 2024/12/04
        • 2.2.23.0 - 2024/09/19
        • 2.2.22.0 - 2024/08/30
        • 2.2.21.0 - 2024/05/17
        • 2.2.20.0 - 2024/05/15
        • 2.2.19.0 - 2024/02/21
        • 2.2.18.0 - 2024/02/09
        • 2.2.17.0 - 2023/11/16
        • 2.2.16.0 - 2023/10/20
        • 2.2.15.0 - 2023/10/13
        • 2.2.14.0 - 2023/08/11
        • 2.2.13.0 - 2023/05/12
        • 2.2.12.0 - 2023/02/28
        • 2.2.11.0 - 2022/12/15
        • 2.2.10.0 - 2022/10/27
        • 2.2.9.0 - 2022/09/16
        • 2.2.7.0 - 2022/06/23
        • 2.2.5.0 - 2022/04/29
        • 2.2.3.0 - 2022/04/01
        • 2.2.2.0 - 2021/12/29
  • Data providers
    • Cryptocurrency exchanges
      • Binance Cryptocurrency Exchange
        • Registration on Binance
          • Registration on Binance Exchange website
          • Configure Binance Wallet
          • Creating a Binance API Key for TSLab
          • Binance. Transferring USDT from wallet to wallet without commission
        • Registration on TSLab [Binance]
          • Account registration on the TSLab website [Binance]
          • Creating a free Binance Data Provider for TSLab
        • Setting up a Binance Data Provider in TSLab
        • TSLab Binance Edition
          • Starting the program
          • Configuring the Binance Data provider
      • Bitget Cryptocurrency Exchange
        • Registration on the Bitget official website
        • Creating a Free Bitget Data Provider
        • Configuring the Bitget Data Provider in TSLab
      • ByBit Cryptocurrency Exchange
        • Registration on the ByBit website
        • Creating a free ByBit data provider
        • Configuring the ByBit Data Provider in TSLab
      • Deribit Cryptocurrency Exchange
        • Deribit data provider settings
        • Deribit. Frequently asked questions and useful information
        • Deribit. Possible problems and solutions
        • Deribit Margin Requirements Calculation
        • An example of a ready-made script for Deribit
      • Kucoin Cryptocurrency Exchange
        • Registration on the KuCoin official website
        • Creating an API key on the KuCoin website
        • Issuing a free license for KuCoin Data Provider
        • Setting up the KuCoin data provider in TSLab
      • OKX Cryptocurrency Exchange
        • Setting up an OKX account
          • Registration on the OKX website
          • OKX API Key creation
          • Issuing a free license for OKX Data Provider
          • Setting up the OKX data provider in TSLab
          • OKX demo account
        • TSLab OKX Edition
          • First launch of TSLab OKEx Edition
          • Configuring the OKEx data provider
          • Trading in TSLab [OKEx]
          • OKEx Demo
    • Historical Data
      • YahooFinance
      • Offline data provider in CSV format
      • An example of connecting text quotes
      • Text files with historical data
    • Interactive Brokers
      • Getting Started with Interactive Brokers Data Provider
        • Installing and configuring the Trader Workstation (TWS) terminal
        • Installing and configuring the IB Gateway terminal
      • Features of working with Interactive Brokers data provider
      • Known issues for Interactive Brokers Data Provider
      • Loading instruments in a package
  • Working with the program
    • Main menu
      • File
        • Program Settings
      • View
        • Chart
          • Features of working with the Chart in TSLab
          • Chart Controls
        • Depth of Market
        • Quotes
        • All Trades
      • Data
        • Data Providers window
        • Add online data provider
        • Add offline data provider
      • Lab
        • Scripts window
          • Script Container
      • Trading
        • Accounts window
        • Positions window
        • My trades window
        • My orders window
          • Move orders and deals to an agent
        • Autotrading Control Center window
          • Agent window
          • Agent trading settings
            • Event recalculations
            • Slippage
          • "Forget errors" of the agent
        • Orders manager
          • Linking a manually completed order to an agent
        • Agent Control Center window
      • Tools
        • Data backup and recovery
        • Notifications manager
          • Notifications Manager Filters
          • Reference List of Service Message Numbers
          • Example of setting up notifications for Gmail
        • Export to Excel
    • Common interface
      • Status bar
      • Tab
      • Workspace
      • Spreadsheets
    • Visual editor
      • Toolbar
        • Compress and Decompress Blocks
      • List of visual blocks
        • Service Elements
        • Cycles
        • TSChannel
      • The syntax of the Formula, Boolean expression and String expression blocks.
    • Autotrading Control Center
      • Agent trade settings
        • Agent trade settings - Placing orders
        • Agent trading settings - Script execution
        • Agent trading settings - Events
    • TSLab API
      • API Introduction
        • Visual Studio Installation
        • First script (API)
        • First Indicator (API)
        • Script Debugging
        • Logging
      • Writing scripts on the API
        • Trading Instrument Data
        • Working with positions
        • List of deals
        • The order queue
        • Standard Indicators and Handlers
        • Script parameters
        • Caching
        • Local and global cache
        • Multiple Tools
      • Writing indicators on the API
        • Stream indicator
        • Bar indicator
        • Pre-processed indicator
        • Indicator with multiple calculations
      • Additional features
        • The ability to create your own optimizers *
        • C ++ / CLI script
        • API Control Panel
        • Result from script
        • * Оптимизация. Пул массивов.
      • Examples
        • Get script results
        • Get script parameters
        • Get script and agent settings
        • Get position balance (net worth)
        • An example of a strategy Breakout of the Donchian channel
        • Example of a Moving Average Crossover strategy
        • Indicator example
        • How to speed up the processing of a script on the API
        • Links to examples
      • Question - Answer
        • HandlerParameter Attribute
    • Optimization
      • Insufficient load on a multicore processor
  • Examples of scripts and indicators
    • Examples of algorithms and indicators
    • Examples of implementing strategies in TSLab
      • A trading system based on indicator CCI
      • A trading system based on Standard Deviation
      • A trading system based on Aroon
      • A trading system based on ADX and DI technical indicators
      • A trading system based on the RSI indicator
      • Example of a trading strategy without parameters
  • TSLab website
    • TSLab Support Service
      • Memory dump of TSLab application
      • TSLab program log files
Powered by GitBook
LogoLogo

Мы в соцсетях

  • Группа в Telegram
  • Новости TSLab
  • Vkontakte
  • YouTube канал TSLab Live

Наши веб-сайты

  • TSLab
  • Служба поддержки
On this page
  • Selecting a security (contract)
  • Adding Futures
  • Adding Options
  • Manage limits in lots
  • Interactive Brokers Commission
  • Placing orders outside the trading session on the exchange
  • Setting up a SMART data provider
  • How to download instruments from the CBOE exchange

Was this helpful?

Export as PDF
  1. Data providers
  2. Interactive Brokers

Features of working with Interactive Brokers data provider

Last updated 2 years ago

Was this helpful?

Selecting a security (contract)

While working through the Interactive Brokers data provider, the TSLab program does not have the ability to receive a list of available securities (contracts).

To start working with a security (contract), you need to enter the ticker of the security (contract) in the appropriate field of the "Manage Contracts" window, which can be accessed from the Interactive Brokers data provider settings. In the same window, you must specify:

  • the name of the market (either in manual mode or select from the list of available ones)

  • the type of security (contracts).

As additional contract parameters, you can specify the contract currency and contract expiration in the corresponding fields of the window.

Adding Futures

You can add all futures for the underlying asset. To do this, you need to specify:

  • Ticker;

  • Market;

  • Currency;

  • Type (futures);

  • Expiration may not be specified.

For example: MSFT, ONE, USD, Futures.

After the necessary properties of a security (contract) are specified, you can add the security to the list of cached contracts for further use using the "Add contract" button.

Adding Options

To add options, you must specify the expiration date, since there are a lot of options. Select the type of Option (Call or Put).

After the necessary properties of a security (contract) are specified, you can add the security to the list of cached contracts for further use using the "Add contract" button.

Alternatively, in order for the security to be recognized by the TSLab program, you must place and immediately cancel an order for the security you are interested in using the TWS terminal. Thus, the name of the security will be remembered in the list of cached contracts in the TSLab program.

Manage limits in lots

The Interactive Brokers API used by the TSLab program does not transmit lot size information. Accordingly, to buy 1 lot containing, for example, 100 shares, you must specify 100 in the agent's settings.

Unfortunately, the Interactive Brokers API we use does not transmit lot size information. Therefore, if one lot is set in the agent's settings, the agent will buy one share, not one lot. Accordingly, to purchase one lot = 100 shares, 100 lots must be specified in the agent's settings. The same goes for the ticket manager.

Interactive Brokers Commission

To test algorithms on stocks, use the "Relative commission with minimum" block.

  • In the block, set the parameter "Minimum commission" = 1. The broker does not charge a fee for the volume of the transaction, and each transaction, with any volume, is 1$

  • The "Commission, %" block parameter can be used to approximate slippage in trades.

  • "Margin" is indicated in % per annum. Accounting is only for shorts. Specify its size with the broker.

Placing orders outside the trading session on the exchange

The IB broker supports placing orders outside of the trading session on the exchange. This functionality is not fully supported by TSLab. Therefore, when placing an application outside the session, the response to confirm the application may take longer than the specified amount of waiting for a response in the Program settings.

After the timeout expires, the program will place the request again, thus there will be a double execution.

Solution

To prevent this situation with the Interactive Brokers data provider, it is necessary to organize the algorithms so that they do not place orders outside of trading hours. If it is not possible to do this, then it is recommended to organize a connection to TWS, taking into account the request waiting timeout.

In TSLab, open the Program Settings window.

File -> Program settings -> Trading -> Order timeout

The value of the Order timeout field must be greater than the difference between the trading session start time and the broker connection time.

We do not recommend placing orders outside the exchange, obviously the broker executes such orders either rarely or never. Also, in a few milliseconds, the broker can send an update on an order placed outside of trading time, that the order is CANCELLED, and then it is executed.

Accordingly, the same problem arises with double execution. The order has been canceled, so the program must place a new one, according to the signals.

Setting up a SMART data provider

If you set the "Use SMART always" setting in the data provider's settings, then instruments from some exchanges, such as MEXI, cannot be loaded, since MEXI is not available in the SMART market. You can create multiple data providers. Using different API IDs. There is no special configuration required for TWS.

How to download instruments from the CBOE exchange

First data provider with SMART disabled
Second data provider with SMART enabled