ProductInfoRequest
Note
For a more in depth documentation, you should check the comments from the protobuf file.
Purpose
Used to get all Exchanges, GlobalMarketSectors, ProductTypes, OptionTypes, TradingSessions, StrategyTypes, FutureTypes, ProductFamilys and Products.
Warning
Before sending an InstrumentDefinitionRequest, the client must send a ProductInfoRequest
.
After sending a ProductInfoRequest request, the client will be automatically subscribed to asynchronous ProductsInfo. If the details of a Product or a ProductFamily are changed or a new Product or ProductFamily is added, the server will send that as an asynchronous message.
Note
At the moment, we only send asynchronous messages only when a Product or ProductFamily is updated or added. In the future, we might send the other things from the ProductInfoResponse.
QST internal product hierarchy
Example
The central elements of our security definitions are the product families. A product family typically includes a flagship future product along with one or multiple option products that have the flagship future as their underlying. A product family may also include one or multiple strategy products, such as a calendar spread strategy product, a butterfly strategy product, etc.
Product families are assigned to exchanges and each product family is included in a global market sector, such as: Agriculture, Currency, Energy, etc.
Each product has multiple instruments:
Each instrument of a future product typically represents a trading month.
Each instrument of an option product represents a strike price for a certain trading month.
Each instrument of a future strategy product represents a combination of specific trading months (named instrument legs) that are bought and/or sold together as part of the strategy.
Each instrument of an option strategy product represents a combination of specific trading months and strike prices that are bought and/or sold together as part of the strategy.
Request example
const payload = {
request_id: 3,
product_info: {
}
}
Responses
Valid
Warning
An important field from the Product
message is price_exponent
. This is the default exponent that the client should use for all prices that don’t contain an exponent in the AsyncQuotes messages. The per-product exponent applies to all the product’s instrument (that is all the trading months and all the strike prices of that product).
The server will respond with a ProductInfoResponse
that contains:
1 or more exchanges
0 or more global market sector
0 or more trading sessions
0 or more product types
0 or more option types
0 or more strategy types
0 or more future types
0 or more product families
0 or more products.
Error
In some scenarios, the server might respond with an ErrorMessage
with the following error message:
No products found
This message will be received in these scenarios:
User has no rights to any exchanges
No products were found for the exchanges that the user has rights
Server error