ExecInst (FIX tag 18)

MultipleValueStringFIX 4.4FIX 4.2

ExecInst (tag 18) is a MultipleValueString field defined in FIX 4.4 and FIX 4.2. It appears in 11 message types, always optionally. It is an enumerated field with 40 defined values.

At a glance

Tag
18
Name
ExecInst
Datatype
MultipleValueString (String)
Dialects
FIX 4.4 and FIX 4.2
Messages
11
Valid values
40

What the specification says

Instructions for order handling on exchange trading floor. If more than one instruction is applicable to an order, this field can contain multiple instructions separated by space.

Descriptions are quoted from the FIX Orchestra sources under the Apache 2.0 licence.

A real message using tag 18

NewOrderSingle · FIX 4.4
TagFieldWire valueMeaning
8BeginStringFIX.4.4
9BodyLength116
35MsgTypeDOrder – Single
49SenderCompIDBOARTEAM
56TargetCompIDCOUNTERPARTY
34MsgSeqNum2
52SendingTime20240101-12:00:00.000
11ClOrdIDORD-10042
18ExecInst1Not held
54Side1Buy
60TransactTime20240101-12:00:00.000
40OrdType1Market
10CheckSum205
Edit and decode it yourself

Shown with | separators for readability. On the wire FIX uses SOH (0x01), an invisible control byte — and because BodyLength and CheckSum are computed over the actual bytes, the two forms have different checksums. Both are valid and both decode here.

Open in the full decoder →

Generated from the FIX 4.4 dictionary and verified at build time: it parses and validates with no issues. Open the decoder to try your own message.

Valid values

A value outside this list is not a parse error — the message still decodes — but validate() reports it as validate/value-not-in-enum.

ValueMeaningSymbolic nameDialects
1Not heldNOT_HELD / NotHeldFIX 4.4, FIX 4.2
2WorkWORK / WorkFIX 4.4, FIX 4.2
3Go alongGO_ALONG / GoAlongFIX 4.4, FIX 4.2
4Over the dayOVER_THE_DAY / OverTheDayFIX 4.4, FIX 4.2
5HeldHELD / HeldFIX 4.4, FIX 4.2
6Participate don't initiatePARTICIPATE_DONT_INITIATE / ParticipateDoNotInitiateFIX 4.4, FIX 4.2
7Strict scaleSTRICT_SCALE / StrictScaleFIX 4.4, FIX 4.2
8Try to scaleTRY_TO_SCALE / TryToScaleFIX 4.4, FIX 4.2
9Stay on bidsideSTAY_ON_BIDSIDE / StayOnBidSideFIX 4.4, FIX 4.2
0Stay on offersideSTAY_ON_OFFERSIDE / StayOnOfferSideFIX 4.4, FIX 4.2
ANo cross (cross is forbidden)NO_CROSS / NoCrossFIX 4.4, FIX 4.2
BOK to crossOK_TO_CROSS / OKToCrossFIX 4.4, FIX 4.2
CCall firstCALL_FIRST / CallFirstFIX 4.4, FIX 4.2
DPercent of volume "(indicates that the sender does not want to be all the volume on the floor vs. a specific percentage)"PERCENT_OF_VOLUME / PercentOfVolumeFIX 4.4, FIX 4.2
EDo not increase - DNIDO_NOT_INCREASE / DoNotIncreaseFIX 4.4, FIX 4.2
FDo not reduce - DNRDO_NOT_REDUCE / DoNotReduceFIX 4.4, FIX 4.2
GAll or none - AONALL_OR_NONE / AllOrNoneFIX 4.4, FIX 4.2
HReinstate on System Failure (mutually exclusive with Q)REINSTATE_ON_SYSTEM_FAILUREFIX 4.4
IInstitutions onlyINSTITUTIONS_ONLY / InstitutionsOnlyFIX 4.4, FIX 4.2
JReinstate on Trading Halt (mutually exclusive with K)REINSTATE_ON_TRADING_HALTFIX 4.4
KCancel on Trading Halt (mutually exclusive with L)CANCEL_ON_TRADING_HALTFIX 4.4
LLast peg (last sale)LAST_PEG / LastPegFIX 4.4, FIX 4.2
MMid-price peg (midprice of inside quote)MID_PRICE_PEG / MidPricePegFIX 4.4, FIX 4.2
NNon-negotiableNON_NEGOTIABLE / NonNegotiableFIX 4.4, FIX 4.2
OOpening pegOPENING_PEG / OpeningPegFIX 4.4, FIX 4.2
PMarket pegMARKET_PEG / MarketPegFIX 4.4, FIX 4.2
QCancel on System Failure (mutually exclusive with H)CANCEL_ON_SYSTEM_FAILUREFIX 4.4
RPrimary peg (primary market - buy at bid/sell at offer)PRIMARY_PEG / PrimaryPegFIX 4.4, FIX 4.2
SSuspendSUSPEND / SuspendFIX 4.4, FIX 4.2
UCustomer Display Instruction (Rule11Ac1-1/4)CUSTOMER_DISPLAY_INSTRUCTION / CustomerDisplayInstructionFIX 4.4, FIX 4.2
VNetting (for Forex)NETTING / NettingFIX 4.4, FIX 4.2
WPeg to VWAPPEG_TO_VWAP / PegToVWAPFIX 4.4, FIX 4.2
XTrade AlongTRADE_ALONGFIX 4.4
YTry to StopTRY_TO_STOPFIX 4.4
ZCancel if Not BestCANCEL_IF_NOT_BESTFIX 4.4
aTrailing Stop PegTRAILING_STOP_PEGFIX 4.4
bStrict Limit (No Price Improvement)STRICT_LIMITFIX 4.4
cIgnore Price Validity ChecksIGNORE_PRICE_VALIDITY_CHECKSFIX 4.4
dPeg to Limit PricePEG_TO_LIMIT_PRICEFIX 4.4
eWork to Target StrategyWORK_TO_TARGET_STRATEGYFIX 4.4
TFixed Peg to Local best bid or offer at time of orderFixedPegToLocalBestBidOrOfferAtTimeOfOrderFIX 4.2

Where tag 18 appears

Requiredness is a property of the message, not of the field: the same tag can be optional in one message and conditionally required in another.

MessageMsgTypeFIX 4.4FIX 4.2Where in the message
CrossOrderCancelReplaceRequesttOptionaldirectly on the message body
ExecutionReport8OptionalOptionaldirectly on the message body
MarketDataIncrementalRefreshXOptionalOptionalinside the MDIncGrp component
MarketDataSnapshotFullRefreshWOptionalOptionalinside the MDFullGrp component
MultilegOrderCancelReplaceACOptionaldirectly on the message body
NewOrderCrosssOptionaldirectly on the message body
NewOrderListEOptionalOptionalinside the ListOrdGrp component
NewOrderMultilegABOptionaldirectly on the message body
NewOrderSingleDOptionalOptionaldirectly on the message body
OrderCancelReplaceRequestGOptionalOptionaldirectly on the message body
TradeCaptureReportAEOptionalinside the TrdCapRptSideGrp component

Wire format

Several values in one field, separated by spaces. Decoders return an array. @boarteam/fix splits the value on its delimiter and returns an array of strings.

Read tag 18 in TypeScript

decode.tsts
import { createFixEngine } from "@boarteam/fix";import { dictionary } from "@boarteam/fix-dict-fix44";const fix = createFixEngine(dictionary);const { message, issues } = fix.parse(raw);const execInst = message.fields[18]?.raw;// e.g. "1" — Not held// The dictionary also carries the labels:const label = fix.dictionary  .fieldByTag(18)  ?.enumValues?.find((e) => e.value === execInst)  ?.description;

Other MultipleValueString fields

Decode this in your own code

The same engine that produced the decoded example above is an Apache-2.0 npm package with zero runtime dependencies. It runs in Node and in the browser, and parse() returns problems as data instead of throwing.

npm i @boarteam/fix @boarteam/fix-dict-fix44