Instrument

An Instrument is the entity that represents something to be traded in MarketGrid. In order for an Instrument to trade it must be listed on a Market_ to produce an InstrumentMarket_. Each Instrument may be traded simultaneously on one or more Markets, each such instance being an InstrumentMarket_.

Metadata

  • Base Table Class: Static
  • Default Size: 1000

Fields

NameTypeSize (bytes)Description
IdInteger (signed)8The unique identifier of this Instrument.
StatusSet of Status4
ShortNameString24The short text identifier of this Instrument.
NameString48The long text identifier of this Instrument.
ExternalFKInteger (unsigned)8FK for this record in external system that generated it
FeeBasisOne of FeeBasis1
FeeBuyInteger (signed)8
FeeSellInteger (signed)8
MinFeePerOrderBuyInteger (signed)8
MinFeePerOrderSellInteger (signed)8
ExternalAccountProviderForeign key to ExternalAccountProvider8This is a reference to the ExternalAccountProvider table. It is keyed by the ExternalAccountProvider column in this table to the Id column in the ExternalAccountProvider table.
ExternalCodeString24The short text identifier of this Instrument.
InstrumentTypeOne of InstrumentType1
InstrumentGroupForeign key to InstrumentGroup8An InstrumentGroup is used to group Instrument_ instances into logical sets, such as Equities or Currencies, to facilitate the setting of common parameters and rules across each InstrumentGroup.
SectorForeign key to Sector8Sectors are the primary mechanism for the economic classification of the Instruments that are modelled in the system. A Sector is a collection of Instruments that usually share a common underlying economic characteristic that makes grouping them convenient for a number of purposes.
SessionForeign key to Session8The Sessions that define the matching algorithms that may be used for Products are maintained in this table.
OrderTypeSet of OrderType4
LotSizeInteger (unsigned)4An InstrumentMarket may trade in lots, where a lot is a fixed number of units of the InstrumentMarket. LotSize defines the number of units per lot for an InstrumentMarket. If an InstrumentMarket trades in single units, the LotSize is 1. Prices are always on a per-lot basis. This value determines the LotSize for the instances of this Instrument.
HiddenMaxRatioInteger (signed)8For hidden quantity orders, the maximum ratio of the total quantity of an order to the hidden quantity. For example, if HiddenMaxRatio is 10 then an order with a total quantity of 10,000 lots may not have a hidden quantity less than 1,000 lots.
PriceStepSetForeign key to PriceStepSet8Defines the valid price steps for the Instrument. This Trading Rule is a reference to a PriceStepSet instance that defines the steps that apply at each price level for the Instrument.
QuantityStepSetForeign key to QuantityStepSet8Defines the valid quantity steps for the Instrument. This Trading Rule is a reference to a QuantityStepSet instance that defines the steps that apply at each price level for the Instrument.
PriceDecimalsInteger (unsigned)1The number of decimal places that should be used when interpreting prices for this Instrument. Prices within MarketGrid are stored and communicated as integers with fixed numbers of decimals. This field specifies how many digits are to the right of the decimal point. For example, a price of 10350 with PriceDecimals set to 2 means 103.50.
QuantityDecimalsInteger (unsigned)1The number of decimal places that should be used when interpreting quantities for this Instrument. Quantities within MarketGrid are stored and communicated as integers with fixed numbers of decimals. This field specifies how many digits are to the right of the decimal point. For example, a quantity of 12345 with QuantityDecimals set to 3 means 12.345.
ValueDecimalsInteger (unsigned)1The number of decimal places that should be used when interpreting the value of this Instrument. Values within MarketGrid are stored and communicated as integers with fixed numbers of decimals. This field specifies how many digits are to the right of the decimal point. For example, a value of 1150000 with ValueDecimals of 2 means 11,500.00.
MinQuantityInteger (signed)8The minimum quantity permitted for this Instrument.
MaxQuantityInteger (signed)8The maximum quantity permitted for this Instrument.
MinValueInteger (signed)8
MaxValueInteger (signed)8
MinNegotiatedDealVolumeInteger (signed)8
MaxNegotiatedDealVolumeInteger (signed)8
MinNegotiatedDealValueInteger (signed)8
MaxNegotiatedDealValueInteger (signed)8
ScaleInteger (signed)8A scaling factor for distribution of the traded Value today for this Instrument through the API. Value will be scaled (divided by) this field, if it is non-zero.
ListDateInteger (signed)4The date on which this Instrument was listed.
TradeStartDateInteger (signed)4The date on which this Instrument did or will start trading.
TradeStopDateInteger (signed)4The last date on which this Instrument will be available for trading.
DelistDateInteger (signed)4The date on which this Instrument will be delisted
TaggedFlagSet of TaggedFlag1
TrackHoldingsInteger (unsigned)1Whether holdings should be tracked for this Instrument
CanShortSellInteger (unsigned)1Is it permissible to short sell this Instrument
CanResellTodayInteger (unsigned)1Is it permissible to sell a position that is the result of a trade executed today.
TrackCashInteger (unsigned)1
CanUseTodaysCashInteger (unsigned)1
RecalculationTimerInteger (signed)4Represents time as an integer in HHMMSS format.
CloseTimerMinInteger (signed)4Represents time as an integer in HHMMSS format.
CloseTimerMaxInteger (signed)4Represents time as an integer in HHMMSS format.
MinVintageInteger (unsigned)4A year in YYYY format.
MaxVintageInteger (unsigned)4A year in YYYY format.
HoldingMustExistInteger (unsigned)1When this attribute is set, a holding record must already exist before an order can be created (either a Buy or Sell)
BaseInstrumentInteger (unsigned)1
MinPriceInteger (signed)8
MaxPriceInteger (signed)8
PriceZeroAllowedInteger (unsigned)1
PriceNegativeAllowedInteger (unsigned)1
BillingCodeString24The short text identifier of this Instrument.
FeeTypeOne of FeeType1
FeeMakerInteger (signed)8
FeeTakerInteger (signed)8
MinFeePerOrderMakerInteger (signed)8
MinFeePerOrderTakerInteger (signed)8
MaxFeePerTradeBuyInteger (signed)8
MaxFeePerTradeSellInteger (signed)8
MaxFeePerTradeMakerInteger (signed)8
MaxFeePerTradeTakerInteger (signed)8
MatchingPriorityTypeOne of MatchingPriorityType1If set to 1, indicates that for this InstrumentMarket, Market Maker orders will be placed at head of each order book (by price).
OrderPriceLimitUpLTPInteger (signed)8
OrderPriceLimitUpRefInteger (signed)8
OrderPriceLimitDownLTPInteger (signed)8
OrderPriceLimitDownRefInteger (signed)8
CircuitBreakerUpLTPInteger (signed)8
CircuitBreakerUpRefInteger (signed)8
CircuitBreakerDownLTPInteger (signed)8
CircuitBreakerDownRefInteger (signed)8
MetaDataString1024MetaData blob for pass-through to external systems.
AllowHoldingReservationInteger (unsigned)1
UpdateNumberInteger (unsigned)8A number that records every change that happens to a record. It is primarily used to avoid write after read problems when an intermediate write has changed the originally read record.
OwnerUserForeign key to User8The Id of the User that owns this Instrument.
OwnerGroupForeign key to Group8The Id of the Group that owns this Instrument.
OwnerFirmForeign key to Firm8The Id of the Firm that owns this Instrument.
CreateUserForeign key to User8The Id of the User that created this Instrument.
CreateTimestampInteger (unsigned)8The time at which this Instrument was created.
UpdateUserForeign key to User8The Id of the User that last updated this Instrument.
UpdateTimestampInteger (unsigned)8The time at which this Instrument was last updated.

Foreign Keys

The following diagram shows the tables that have a foreign key link to the Instrument table. All Table nodes can be clicked to take you to that table's definition page.

graph LR;
	Enterprise-->|SettlementCurrency|Instrument
	click Enterprise "/marketgrid/developer/model/tables/Enterprise"
	Firm-->|SettlementCurrency|Instrument
	click Firm "/marketgrid/developer/model/tables/Firm"
	Auction-->|Instrument|Instrument
	click Auction "/marketgrid/developer/model/tables/Auction"
	SettlementClass-->|Instrument|Instrument
	click SettlementClass "/marketgrid/developer/model/tables/SettlementClass"
	AuctionAccount-->|Instrument|Instrument
	click AuctionAccount "/marketgrid/developer/model/tables/AuctionAccount"
	Account-->|SettlementCurrency|Instrument
	click Account "/marketgrid/developer/model/tables/Account"
	Holding-->|Instrument|Instrument
	click Holding "/marketgrid/developer/model/tables/Holding"
	HoldingTransaction-->|Instrument|Instrument
	click HoldingTransaction "/marketgrid/developer/model/tables/HoldingTransaction"
	BankTransaction-->|Instrument|Instrument
	click BankTransaction "/marketgrid/developer/model/tables/BankTransaction"
	ExchangeRate-->|Currency1|Instrument
	ExchangeRate-->|Currency2|Instrument
	click ExchangeRate "/marketgrid/developer/model/tables/ExchangeRate"
	Fee-->|Instrument|Instrument
	Fee-->|SettlementInstrument|Instrument
	click Fee "/marketgrid/developer/model/tables/Fee"
	InstrumentGroup-->|BaseInstrument|Instrument
	click InstrumentGroup "/marketgrid/developer/model/tables/InstrumentGroup"
	InstrumentMarket-->|Instrument|Instrument
	InstrumentMarket-->|Currency|Instrument
	InstrumentMarket-->|SettlementCurrency|Instrument
	click InstrumentMarket "/marketgrid/developer/model/tables/InstrumentMarket"
	Market-->|DefaultCurrency|Instrument
	Market-->|DefaultSettlementCurrency|Instrument
	click Market "/marketgrid/developer/model/tables/Market"
	SessionTime-->|Instrument|Instrument
	click SessionTime "/marketgrid/developer/model/tables/SessionTime"
	OrderBook-->|Currency|Instrument
	click OrderBook "/marketgrid/developer/model/tables/OrderBook"
	Order-->|Currency|Instrument
	Order-->|SettlementCurrency|Instrument
	Order-->|FeeCurrency|Instrument
	Order-->|LimitCurrency|Instrument
	click Order "/marketgrid/developer/model/tables/Order"
	OrderNotional-->|SettlementCurrency|Instrument
	click OrderNotional "/marketgrid/developer/model/tables/OrderNotional"
	Trade-->|Currency|Instrument
	click Trade "/marketgrid/developer/model/tables/Trade"