TradeCondition (FIX tag 277)

MultipleValueStringFIX 4.4FIX 4.2FIX 5.0 SP2

TradeCondition (tag 277) is a MultipleValueString field defined in FIX 4.4, FIX 4.2 and FIX 5.0 SP2. It appears in 2 message types, always optionally. It is an enumerated field with 17 defined values.

At a glance

Tag
277
Name
TradeCondition
Datatype
MultipleValueString (String)
Dialects
FIX 4.4, FIX 4.2 and FIX 5.0 SP2
Messages
2
Valid values
17

What the specification says

FIX 4.4

Space-delimited list of conditions describing a trade

FIX 4.2

Space-delimited list of conditions describing a trade

FIX 5.0 SP2

Type of market data entry.

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

A real message using tag 277

MarketDataSnapshotFullRefresh · FIX 4.4
TagFieldWire valueMeaning
8BeginStringFIX.4.4
9BodyLength93
35MsgTypeWMarket Data-Snapshot/Full Refresh
49SenderCompIDBOARTEAM
56TargetCompIDCOUNTERPARTY
34MsgSeqNum2
52SendingTime20240101-12:00:00.000
268NoMDEntries2 entries2repeating group
269MDEntryType0Bid
277TradeConditionACash (only) Market
269MDEntryType0Bid
277TradeConditionACash (only) Market
10CheckSum068
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
ACash (only) MarketCASH / Cash / CASH_MARKETFIX 4.4, FIX 4.2, FIX 5.0 SP2
BAverage Price TradeAVERAGE_PRICE_TRADE / AveragePriceTradeFIX 4.4, FIX 4.2, FIX 5.0 SP2
CCash Trade (same day clearing)CASH_TRADE / CashTradeFIX 4.4, FIX 4.2, FIX 5.0 SP2
DNext Day (only) MarketNEXT_DAY / NextDay / NEXT_DAY_MARKETFIX 4.4, FIX 4.2, FIX 5.0 SP2
EOpening / Reopening Trade DetailOPENING / Opening / OPENING_REOPENING_TRADE_DETAILFIX 4.4, FIX 4.2, FIX 5.0 SP2
FIntraday Trade DetailINTRADAY_TRADE_DETAIL / IntradayTradeDetailFIX 4.4, FIX 4.2, FIX 5.0 SP2
GRule 127 Trade (NYSE)RULE_127_TRADE / Rule127TradeFIX 4.4, FIX 4.2, FIX 5.0 SP2
HRule 155 Trade (Amex)RULE_155_TRADE / Rule155TradeFIX 4.4, FIX 4.2, FIX 5.0 SP2
ISold Last (late reporting)SOLD_LAST / SoldLastFIX 4.4, FIX 4.2, FIX 5.0 SP2
JNext Day Trade (next day clearing)NEXT_DAY_TRADE / NextDayTradeFIX 4.4, FIX 4.2, FIX 5.0 SP2
KOpened (late report of opened trade)OPENED / OpenedFIX 4.4, FIX 4.2, FIX 5.0 SP2
LSellerSELLER / SellerFIX 4.4, FIX 4.2, FIX 5.0 SP2
MSold (out of sequence)SOLD / SoldFIX 4.4, FIX 4.2, FIX 5.0 SP2
NStopped Stock (guarantee of price but does not execute the order)STOPPED_STOCK / StoppedStockFIX 4.4, FIX 4.2, FIX 5.0 SP2
PImbalance More Buyers (Cannot be used in combination with Q)IMBALANCE_MORE_BUYERSFIX 4.4, FIX 5.0 SP2
QImbalance More Sellers (Cannot be used in combination with P)IMBALANCE_MORE_SELLERSFIX 4.4, FIX 5.0 SP2
ROpening PriceOPENING_PRICEFIX 4.4, FIX 5.0 SP2
SBargain Condition (LSE)BARGAIN_CONDITIONFIX 5.0 SP2
TConverted Price IndicatorCONVERTED_PRICE_INDICATORFIX 5.0 SP2
UExchange LastEXCHANGE_LASTFIX 5.0 SP2
VFinal Price of SessionFINAL_PRICE_OF_SESSIONFIX 5.0 SP2
WEx-pitEX_PITFIX 5.0 SP2
XCrossedCROSSEDFIX 5.0 SP2
YTrades resulting from manual/slow quoteTRADES_RESULTING_FROM_MANUAL_SLOW_QUOTEFIX 5.0 SP2
ZTrades resulting from intermarket sweepTRADES_RESULTING_FROM_INTERMARKET_SWEEPFIX 5.0 SP2
aVolume OnlyVOLUME_ONLYFIX 5.0 SP2
bDirect PlusDIRECT_PLUSFIX 5.0 SP2
cAcquisitionACQUISITIONFIX 5.0 SP2
dBunchedBUNCHEDFIX 5.0 SP2
eDistributionDISTRIBUTIONFIX 5.0 SP2
fBunched SaleBUNCHED_SALEFIX 5.0 SP2
gSplit TradeSPLIT_TRADEFIX 5.0 SP2
hCancel StoppedCANCEL_STOPPEDFIX 5.0 SP2
iCancel ETHCANCEL_ETHFIX 5.0 SP2
jCancel Stopped ETHCANCEL_STOPPED_ETHFIX 5.0 SP2
kOut of Sequence ETHOUT_OF_SEQUENCE_ETHFIX 5.0 SP2
lCancel Last ETHCANCEL_LAST_ETHFIX 5.0 SP2
mSold Last Sale ETHSOLD_LAST_SALE_ETHFIX 5.0 SP2
nCancel LastCANCEL_LASTFIX 5.0 SP2
oSold Last SaleSOLD_LAST_SALEFIX 5.0 SP2
pCancel OpenCANCEL_OPENFIX 5.0 SP2
qCancel Open ETHCANCEL_OPEN_ETHFIX 5.0 SP2
rOpened Sale ETHOPENED_SALE_ETHFIX 5.0 SP2
sCancel OnlyCANCEL_ONLYFIX 5.0 SP2
tCancel Only ETHCANCEL_ONLY_ETHFIX 5.0 SP2
uLate Open ETHLATE_OPEN_ETHFIX 5.0 SP2
vAuto Execution ETHAUTO_EXECUTION_ETHFIX 5.0 SP2
wReopenREOPENFIX 5.0 SP2
xReopen ETHREOPEN_ETHFIX 5.0 SP2
yAdjustedADJUSTEDFIX 5.0 SP2
zAdjusted ETHADJUSTED_ETHFIX 5.0 SP2
AASpreadSPREADFIX 5.0 SP2
ABSpread ETHSPREAD_ETHFIX 5.0 SP2
ACStraddleSTRADDLEFIX 5.0 SP2
ADStraddle ETHSTRADDLE_ETHFIX 5.0 SP2
AEStoppedSTOPPEDFIX 5.0 SP2
AFStopped ETHSTOPPED_ETHFIX 5.0 SP2
AGRegular ETHREGULAR_ETHFIX 5.0 SP2
AHComboCOMBOFIX 5.0 SP2
AICombo ETHCOMBO_ETHFIX 5.0 SP2
AJOfficial Closing PriceOFFICIAL_CLOSING_PRICEFIX 5.0 SP2
AKPrior Reference PricePRIOR_REFERENCE_PRICEFIX 5.0 SP2
0CancelCANCELFIX 5.0 SP2
ALStopped Sold LastSTOPPED_SOLD_LASTFIX 5.0 SP2
AMStopped Out of SequenceSTOPPED_OUT_OF_SEQUENCEFIX 5.0 SP2
ANOfficial Closing Price (duplicate enumeration - use 'AJ' instead)OFFICAL_CLOSING_PRICEFIX 5.0 SP2
AOCrossed (duplicate enumeration - use 'X' instead)CROSSED_1FIX 5.0 SP2
APFast MarketFAST_MARKETFIX 5.0 SP2
AQAutomatic ExecutionAUTOMATIC_EXECUTIONFIX 5.0 SP2
ARForm TFORM_TFIX 5.0 SP2
ASBasket IndexBASKET_INDEXFIX 5.0 SP2
ATBurst BasketBURST_BASKETFIX 5.0 SP2
AVQuote spreadOUTSIDE_SPREADFIX 5.0 SP2
1Implied TradeIMPLIED_TRADEFIX 5.0 SP2
2Marketplace entered tradeMARKETPLACE_ENTERED_TRADEFIX 5.0 SP2
3Multi-asset class multileg tradeMULT_ASSET_CLASS_MULTILEG_TRADEFIX 5.0 SP2
4Multileg-to-Multileg TradeMULTILEG_TO_MULTILEG_TRADEFIX 5.0 SP2

Where tag 277 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.2FIX 5.0 SP2Where in the message
MarketDataIncrementalRefreshXOptionalOptionalOptionalinside the MDIncGrp component
MarketDataSnapshotFullRefreshWOptionalOptionalOptionalinside the MDFullGrp 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 277 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 tradeCondition = message.fields[277]?.raw;// e.g. "A" — Cash (only) Market// The dictionary also carries the labels:const label = fix.dictionary  .fieldByTag(277)  ?.enumValues?.find((e) => e.value === tradeCondition)  ?.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