Trade
Overview
TT Platform
Description
Task
Browser Access
Description
Task
Videos
TT Desktop
Description
Task
Videos
Reference
Workspace Windows
Description
Task
Videos
Widgets
Description
Task
Preferences
Description
Viewing Market Data
Time and Sales
Task
Reference
Description
Depth
Description
Task
Reference
Market Grid
Description
Task
Videos
Reference
Product Grid
Description
Task
Reference
Spread Matrix
Description
Task
Videos
Reference
Position in Queue (PIQ)
Basic Order Entry
TT Order Types
Description
Task
Videos
Reference
Case Studies
TT Premium Order Types
Description
Task
Reference
Order Ticket
Description
Task
Use Cases
Reference
MD Trader®
Description
Task
Videos
Reference
Order Profiles
Description
Task
Reference
Routing Rules
Description
Task
Blocktrader
Description
Task
Videos
Reference
Trading Crypto on TT
Description
Task
Videos
Reference
Trading on B3
Order Management
Order Book
Description
Task
Reference
Floating Order Book
Description
Task
Reference
Fills
Description
Task
Reference
Positions
Description
Task
Reference
Orders and Fills
Description
Task
Reference
Audit Trail
Description
Task
Reference
Audit Query
Description
Task
Reference
Account List
Description
Task
Videos
Reference
Position Manager
Description
Task
Reference
Alert Manager and Alert Viewer
Description
Task
Videos
Reference
Account & User Restrictions
Description
Task
Reference
Balances
Description
Task
Reference
TT® OMS
Care Orders
Description
Task
Videos
Reference
Lock and Release
Description
Task
Bulking
Description
Task
Videos
Stitching and Splitting
Description
Task
Combining
Description
Task
Order Passing
Description
Task
Use Cases
Order Exceptions
Description
Task
Options
Options Risk
Description
Task
Videos
Reference
QuikStrike
Description
Task
TT Uncovered 3.0
Description
Task
TT Uncovered 2.0
Description
Task
Volatility Calculator
Description
Task
Expiration Manager
Description
Task
Watchlist
Description
Task
Videos
Reference
Options Risk Matrix
Description
Task
Videos
Reference
Options on TT
Description
Videos
Strategy Creation
Description
Task
Use Cases
Reference
Counterparty Manager
Description
Task
RFQ with Counterparties
Description
Task
RFQ Viewer
Description
Task
Videos
Reference
Electronic Eye
Description
Task
Videos
Reference
Vol Curve Manager
Description
Task
Use Cases
Videos
Reference
Options Trade Monitor
Description
Task
Videos
Reference
Options Chain
Description
Task
Use Cases
Videos
Reference
Spread Trading
Autospreader
Description
Task
Use Cases
Videos
Reference
Autospreader Rules
Description
Task
Videos
Reference
Hedge Manager
Description
Task
Videos
Reference
Trading in Yield
Description
Task
Use Cases
Reference
Aggregator
Description
Task
Videos
Reference
Algo Trading
Algo Dashboard
Description
Task
Videos
Reference
Template Manager
Description
Task
Order Management Algos (OMAs)
Autotrader
Description
Task
Reference
Videos
Excel integration with TT
Description
Task
Videos
Reference
Market-Making Algos
Analytics
Charts
Description
Technical Indicators
Task
Videos
Reference
Trader Analytics
Description
Task
Reference
ADL
ADL Overview
Introduction to ADL
Description
Task
Videos
Reference
ADL Basic Concepts
Description
Task
Reference
Building your first algo
Lessons
Advanced concepts
Description
Task
Case Studies
Jump blocks
Group blocks
Virtualized blocks
Library blocks
Trading Blocks
Discrete blocks
Arithmetic blocks
Basic blocks
Logic blocks
Miscellaneous blocks
Setup
Setup Overview
Getting Started
Description
Task
Videos
Reference
Supported Order Types and TIFs
Company Administration
Connections
Description
Task
Videos
Reference
Accounts
Description
Task
Videos
Use Cases
Reference
Users
Description
Task
Videos
Reference
Company
Description
Task
Reference
Order Tag Defaults
Description
Task
Account Administrators
Description
Task
TT Premium Services
Description
Task
TT Access
Description
Task
Advanced Features
Description
Risk Management
Risk Administration
Description
Task
Risk Limits
Description
Task
Videos
Reference
Pre-Trade Portfolio Risk
Description
Task
Reference
Order Cross Prevention
Description
Task
Videos
KRM Limits
Description
Task
TT® OMS
TT OMS Administration
Description
Task
Use Cases
Reference
Exchanges: Americas
FMX
Description
Task
NFI
Task
Nodal
Description
Task
MX
Description
Task
MIAX_FUT_NY
Description
Task
MIAX_FUT_CH
Description
Task
MexDer
Description
Task
ICE
Description
Task
Goldman Sachs Commodity Blocks (GSCB)
Description
Task
Referece
FMX_USTF
Description
Task
B3
Description
Task
Fenics
Description
Task
EBS Market
Description
Task
EBS Direct
Description
Task
Dealerweb
Description
Task
CME
Description
Task
CFE
Description
Task
Cboe FX
Description
Task
Reference
CBOE
Description
Task
Exchanges: EMEA
ICE_L
Description
Task
WSE
Description
Task
Nord Pool
Description
Task
Reference
NASDAQ_NED
Description
Task
NDAQ_EU
Description
Task
MEFF
Description
Task
LSE
Description
Task
LME NTP
Description
Task
LME
Description
Task
JSE
Description
Task
ATHEX
Description
Task
GFO-X
Description
Task
Euronext
Description
Task
Eurex
Description
Task
Videos
Eris
Description
Task
EPEX SPOT
Description
Task
Reference
EEX
Description
Task
DGCX
Description
Task
BIST
Description
Task
Exchanges: Asia/Pacific
ABX
Description
Task
ASX
Description
Task
FEX
Description
Task
HKEx
Description
Task
JPX
Description
Task
NSE
Description
Task
NZX
Description
Task
SGX
Description
Task
SGX GIFT
Description
Task
TAIFEX
Description
Task
TFEX
Description
Task
TFX
Description
Task
CoinFLEX
Task
Exchanges: Crypto
Coinbase
Description
Task
Kraken
Description
Task
FIX Support
FIX Ruleset
Description
Task
FIX Sessions
Description
Task
Secondary Accounts
Description
Task
Monitor
TT Mobile
TT Backtesting
APIs
TT REST API 2.0
Getting Started
API Reference
TT REST API 2.0 (UAT)
Getting Started
API Reference
TT .NET SDK
Getting started with TT .NET SDK
Creating the application framework
Working with instruments
Subscribing for market data
More about prices
An in-depth look at the Price class
Working with orders and fills
Handling trade subscriptions
Working with trade subscriptions
Working with Algos
Algo Server
TT Order Types
TT Premium Order Types
Advanced Concepts and Options
Appendix
TT CORE SDK
Getting Started with TT Core SDK
Creating Application Framework
Working With Instruments
Subscribing for Market Data
Working with Orders and Fills
Creating a TT Application Server
Appendix
TT Trade Surveillance
Overview
Using TT Trade Surveillance
Cluster View
Core Models
Market Abuse Models
Cross Product Models
Spoofing Models
Improperly Matched Trade Models
Market Rate Models
Trading Behaviors Models
Miscellaneous Models
Configurable Models
Reports
Reference
TT FIX Services
TT FIX General
Getting Started
FIX Message Structure
Session messages
TT FIX Order Routing
Overview
TT FIX message conversations
Supported application messages
TT FIX Market Data
Overview
TT FIX message conversations
Supported application messages
TT FIX Drop Copy Out
Overview
TT FIX Message Conversations
Supported application messages
Compliance Feed messages
TT FIX Drop Copy In
Overview
Supported application messages
TT FIX Gateway
Getting Started
FIX Message Structure
Components
Session messages
Price Gateway Messages
Order Gateway Messages
TT FIX Recovery
Overview
FIX Recovery Methods
Supported application messages
Compliance Feed Messages
MiFID II Support

Fetching a single instrument

Steps for fetching a single instrument

To fetch a single Instrument, you:

Instantiating the InstrumentLookup class

The InstrumentLookup class provides several overloaded constructors that let you identify instruments using different sets of criteria. These are listed below along with code snippets showing their use.

Synchronous fetch

Once an InstrumentLookup object has been created, you can simply call the Get() method to perform a synchronous lookup of the instrument as shown below. Note that although this is normally fairly quick, your execution thread will be blocked until this action is complete.

Asynchronous fetch

If you prefer not to be blocked, you can register a callback function to be called once the fetching has been completed as shown below.

After the GetAsync() method of the InstrumentLookup instance is called, TT .NET SDK performs a lookup for the instrument based on the inputs that it are given. Whether the instrument is found or not, the specified event handler method is called. The following code snippet illustrates the structure of this event handler.

Cleaning up

When you shut down your application, you should detach all event handlers and call the Dispose() method for each instance of the InstrumentLookup class as follows:

Fetching all instruments for a given product

To fetch all instruments for a single product, you:

Instantiating the InstrumentCatalog class

The InstrumentCatalog class provides several constructors that let you identify a product using specific criteria.

The following code snippet shows how to instantiate an InstrumentCatalog object for the CME ES Future product.

Note

Synchronous fetch

Once an InstrumentCatalog object has been created, you can simply call the Get() method to perform a synchronous lookup of the product’s instruments as shown below. Note that although this is normally fairly quick, your execution thread will be blocked until this action is complete.

Asynchronous fetch

If you prefer not to be blocked, you can register a callback function to be called once the fetching has been completed as shown below.

After the GetAsync() method of the InstrumentCatalog instance is called, TT .NET SDK performs a lookup for the instruments based on the inputs that it is given. Whether the instruments were found or not, the specified event handler method is called. The following code snippet illustrates the structure of this event handler.

Cleaning up

When you shut down your application, you should detach all event handlers and call the Dispose() method for each instance of the InstrumentCatalog class as follows:

Introduction to Strategy Creation

TT .NET SDK provides the ability to construct exchange-tradable, user-defined strategies and then submit them to the exchange to be listed. The legs of these strategies can be options, futures, or spreads depending on the exchange.

For an overview of creating strategies in TT, refer to the Strategy Creation Overview in the Trade help.

Note: Currently, TT .NET SDK supports creating strategies on the same exhanges as the Strategy Creation widget except for LME and FEX.

The following code snippet shows the creation of a simple two leg strategy. In this sample, we set the following parameters for the strategy:

Markets

All markets supported by TT are listed in the MarketId enumeration.

Note: The market name for Autospreader instruments is “ASE” and the market name for Aggregator instruments is “AGGREGATOR”.

You can also access the full list of markets supported by TT via the MarketCatalog member variable of the TTAPI class. The MarketCatalog class has a member variable named Markets which is a Dictionary of Market instances.

The Market class provides several public members, including:

The MarketCatalog also provides the ability to register for changes to the IsTradingEnabled flag. The following code snippet demonstrates how to register for these event notifications.

All product types supported by TT are listed in the ProductType enumeration.

Note: The product type for Autospreader and Aggregator instruments is “Synthetic”.

The Product class offers a static function that allows you to convert from a string to enumerated value.

Products

Fetching all products for a given market

To fetch all products for a given market, you:

Instantiating the ProductCatalog class

The ProductCatalog class provides the following constructors that let you identify a market using specific criteria.

The following code snippet illustrates how to instantiate this class using a MarketId.

Synchronous fetch

Once an ProductCatalog object has been created, you can simply call the Get() method to perform a synchronous lookup of the products as shown below. Note that although this is normally fairly quick, your execution thread will be blocked until this action is complete.

Asynchronous fetch

If you prefer not to be blocked, you can register a callback function to be called once the fetching has been completed as shown below.

After the GetAsync() method of the ProductCatalog instance is called, TT .NET SDK performs a lookup for the products based on the market that it is given. Whether the products were found or not, the specified event handler method is called. The following code snippet illustrates the structure of this event handler.

Cleaning up

When you shut down your application, you should detach all event handlers and call the Dispose() method for each instance of the ProductCatalog class as follows:

About the Product class

The Product class provides the data as it relates to a given product. Its members include:

The ProductKey struct is a simple collection of the product’s descriptive information. Its constructors and members include:

Note that the ProductId is only populated if the instance is constructed as a result of a product fetch via the ProductCatalog class.

Searching Instruments by Query text

Steps for searching instruments by Query

To search for an Instrument, you must perform the following tasks:

Instantiating the InstrumentSearcher class

The InstrumentSearcher class provides several ways via constructors that let you search instruments by text query using different sets of filters. These are listed below along with code snippets showing their use.

Once an InstrumentSearcher object has been created, you can simply call the Get() method to perform a synchronous search of the instruments as shown below.

Note: Although this process normally completes fairly quickly, your execution thread will remain blocked until this action completes.

Asynchronous fetch

You can register a callback function to be called once the searching has been completed as shown below.

Note: This approach allows the execution thread to remain unblocked.

After the GetAsync() method of the InstrumentSearcher instance is called, TT .NET SDK performs a search for the instrument based on the given inputs. Whether the instrument is found or not, the specified event handler method is called. The following code snippet illustrates the structure of this event handler.

Cleaning up

When you shut down your application, you should detach all event handlers and call the Dispose() method for each instance of the InstrumentSearcher class as follows:

The Instrument class

The Instrument class provides the data as it relates to a given tradable entity. Its members include:

The InstrumentDetails class provides all of the detailed properties of an instrument. Some of its members include:

The InstrumentKey struct is a simple collection of the instrument’s descriptive information. Its constructors and members include:

Note that the InstrumentId is only populated if the instance is constructed as a result of a product fetch via the InstrumentCatalog or InstrumentLookup class.

The ProductDataEvent enumeration

The ProductDataEvent enumeration defines all of the possible reasons that a lookup of the instrument will succeed or fail. These include:

Enum value Description Valid for…
Found Instrument was found Asynchronous and synchronous fetching
RequestFailed General failure to fetch instrument (asynchronous fetching) Asynchronous and synchronous fetching
NotAllowed User is not configured for permissions for this instrument’s market Asynchronous and synchronous fetching
ThrottleExceeded The throttling limit for instrument fetch operations has been exceeded Asynchronous and synchronous fetching
InvalidRequest Request was malformed Asynchronous and synchronous fetching
NotFound Instrument was not found Asynchronous and synchronous fetching
InstrumentCreated Instrument, such as an exchange traded spread / strategy, that was first reported as NotFound was created by the exchange Asynchronous fetching only
InstrumentUpdated Instrument information, such as tick size, was updated Asynchronous fetching only
InstrumentDeleted Instrument was deleted by the exchange Asynchronous fetching only
ProductCreated Product that was first reported as NotFound was created by the exchange Asynchronous fetching only
ProductUpdated Product information was updated Asynchronous fetching only
ProductDeleted Product was deleted by the exchange Asynchronous fetching only
MarketUpdated Markets available (MarketId enumeration) for trading changed Asynchronous fetching only
AlgoCreated New user-defined algo was uploaded Asynchronous fetching only
AlgloUpdated User-defined algo information was updated Asynchronous fetching only
AlgoDeleted User-defined algo was deleted Asynchronous fetching only

Working with instruments

The Market class represents a tradable market, the TT .NET SDK class represents a tradable product and the Instrument class represents a tradable entity. You cannot create these objects directly. Instead, you must submit a request to fetch this data. By using this model, TT .NET SDK ensures that an instrument’s details are valid before subscribing for prices or submitting orders.

Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Strictly Necessary Cookies

Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.

Analytics

This website uses Google Analytics to collect anonymous information such as the number of visitors to the site, and the most popular pages.

Keeping this cookie enabled helps us to improve our website.

Marketing

This website uses the following additional cookies:

(List the cookies that you are using on the website here.)