SenderCompId
, login
and password
specified in the Logon
message.Symbol | Lot size | Price step |
---|---|---|
BTCUSD | 0.01 BTC | 0.01 |
BTCEUR | 0.01 BTC | 0.01 |
LTCBTC | 0.1 LTC | 0.00001 |
LTCUSD | 0.1 LTC | 0.001 |
LTCEUR | 0.1 LTC | 0.001 |
DSHBTC | 1 DSH | 0.00000001 |
ETHBTC | 0.001 ETH | 0.000001 |
ETHEUR | 0.001 ETH | 0.0001 |
NXTBTC | 1 NXT | 0.00000001 |
BCNBTC | 100 BCN | 0.0000000001 |
XDNBTC | 100 XDN | 0.0000000001 |
DOGEBTC | 1000 DOGE | 0.000000001 |
XMRBTC | 0.01 XMR | 0.000001 |
QCNBTC | 0.01 QCN | 0.000001 |
FCNBTC | 0.01 FCN | 0.000001 |
LSKBTC | 1 LSK | 0.0000001 |
LSKEUR | 1 LSK | 0.0001 |
STEEMBTC | 0.001 STEEM | 0.00001 |
STEEMEUR | 0.001 STEEM | 0.0001 |
SBDBTC | 0.001 SBD | 0.00001 |
DASHBTC | 0.001 DASH | 0.000001 |
XEMBTC | 1 XEM | 0.00000001 |
EMCBTC | 0.1 EMC | 0.00000001 |
SCBTC | 100 SC | 0.000000001 |
ARDRBTC | 1 ARDR | 0.000000001 |
ZECBTC | 0.001 ZEC | 0.000001 |
WAVESBTC | 0.01 WAVES | 0.0000001 |
There are two FIX end-points that use different network addresses (ipv4:port):
Client should use proper endpoint. Behavior in case of receiving wrong message is not specified. Client could possibly be disconnected or receive Reject messages in case of using an incorrect endpoint.
In case of severe fault the FIX session could be forcibly reset.
In this case Client will receive ResetSeqNo
flag from server and should synchronize its state by MassStatusRequest.
There are restrictions on internal order placement timeouts. In case of fault Client will receive Reject with the specific reason “Too late to enter”.
There are two pseudo-states that could be returned only by sending OrderStatusRequest or OrderMassStatusRequest:
Please note:
Consider the following diagram:
FIX session has no persistence.
Supports the following application-level messages:
From Client to FIX gateway:
From FIX gateway to Client:
Client will receive ExecutionReports for orders that are placed with the same SenderCompID
.
Supports the following application-level messages:
From Client to FIX gateway:
From FIX gateway to Client:
Tag | Name | Values | Comments |
---|---|---|---|
8 | BeginString | FIX.4.4 | |
9 | BodyLength | ||
35 | MsgType | 0 - Heartbeat 1 - Test Request 2 - Resend Request 5 - Logout A - Logon D - NewOrderSingle F - Order Cancel Request H - Order Status Request V - Market Data Request AF - Mass Status Request AN - Request For Positions |
|
49 | SenderCompID | Should be in the login_SenderCompID |
|
56 | TargetCompID | ME | |
34 | MsgSeqNum | ||
43 | PossDupFlag | ||
52 | SendingTime | @Snt |
Tag | Name | Values | Comments |
---|---|---|---|
10 | CheckSum |
Tag | Name | Values | Comments |
---|---|---|---|
112 | TestReqID | this Heartbeat is a response to TestRequest |
Tag | Name | Values | Comments |
---|---|---|---|
112 | TestReqID |
Tag | Name | Values | Comments |
---|---|---|---|
7 | BeginSeqNo | ||
16 | EndSeqNo |
Tag | Name | Values | Comments |
---|---|---|---|
45 | RefSeqNum | ||
371 | RefTagID | ||
58 | Text | optional |
Tag | Name | Values | Comments |
---|---|---|---|
123 | GapFillFlag | N (default), Y | |
371 | RefTagID | ||
123 | GapFillFlag | ||
36 | NewSeqNo |
Tag | Name | Values | Comments |
---|---|---|---|
58 | Text | optional | could contain a reason for server-initiated logout |
Tag | Name | Values | Comments |
---|---|---|---|
98 | EncryptMethod | 0 | |
108 | HeartBtInt | ||
553 | Username | ||
554 | Password | ||
ResetSeqNumFlag | optional, default=N | ||
10001 | CancelOnDisconnect | Y or N, optional, default:N | cancel all orders for a specific SenderCompID on disconnect |
Tag | Name | Values | Comments |
---|---|---|---|
55 | Symbol | e.g. “BTCUSD |
Tag | Name | Values | Comments | |
---|---|---|---|---|
453 | NoPartyIDs | 1 | ||
448 | PartyID | user id |
Tag | Name | Values | Comments |
---|---|---|---|
262 | MDReqID | ||
281 | MDReqRejReason | 0 | |
58 | Text | optional | could contain a reason |
Tag | Name | Values | Comments |
---|---|---|---|
262 | MDReqID | ||
Instrument | (component) | ||
268 | NoMDEntries | (repeating group) | |
269 | > MDEntryType | 0 - Bid 1 - Offer |
|
270 | > MDEntryPx | ||
271 | > MDEntrySize |
Tag | Name | Values | Comments |
---|---|---|---|
262 | MDReqID | ||
268 | NoMDEntries | (repeating group) | |
279 | >MDUpdateAction | 0 - New | in case of level removal MDEntrySize will be 0 |
269 | >MDEntryType | 0 - Bid 1 - Offer 2 - Trade |
|
> Instrument | (component) | ||
270 | > MDEntryPx | ||
271 | > MDEntrySize |
Subscribe:
Tag | Name | Values | Comments |
---|---|---|---|
262 | MDReqID | ||
263 | SubscriptionRequestType | 0 - Snapshot 1 - Snapshot and updates |
|
264 | MarketDepth | 0 - Full Book 1 - Top Of Book |
|
267 | NoMDEntryTypes | (repeating group) | |
269 | >MDEntryType | 0 - Bid 1 - Offer 2 - Trade |
|
146 | NoRelatedSym | (repeating group) | |
> Instrument | (component) |
Unsubscribe:
Tag | Name | Values | Comments |
---|---|---|---|
262 | MDReqID | ||
263 | SubscriptionRequestType | 2 - Disable previous Snapshot + Update Request (Unsubscribe) |
Tag | Name | Values | Comments |
---|---|---|---|
37 | OrderID | (Repeating group), size = 1 | |
11 | ClOrdID | <= 32 characters | |
41 | OrigClOrdID | filled for ExecutionReport initiated by OrderCancelRequest | |
790 | OrdStatusReqID | ExecType=I | |
17 | ExecID | ||
150 | ExecType | 0 - New 4 - Canceled 8 - Rejected C - Expired F - Trade (partial fill or fill) I = Order Status |
|
39 | OrdStatus | 0 - New 1 - Partially filled 2 - Filled 4 - Canceled 8 - Rejected C - Expired 6 - Pending Cancel A - Pending New |
Pending Cancel and Pending New could be sent if ExecType=I |
103 | OrdRejReason | 1 - Unknown symbol 2 - Exchange closed 4 - Too late to enter 5 - Unknown Order 6 - Duplicate Order (e.g. dupe ClOrdID (11)) 11 - Unsupported order characteristic 15 - Unknown account(s) 99 - Other |
if Rejected |
1 | Account | ||
Instrument | (component) | ||
54 | Side | 1 - Buy 2 - Sell |
|
60 | TransactTime | ||
38 | OrderQty | ||
40 | OrdType | 1 - Market 2 - Limit |
|
44 | Price | for limit orders | |
32 | LastQty | for Trades | |
31 | LastPx | for Trades | |
851 | LastLiquidityIn | for Trades | |
151 | LeavesQty | ||
14 | CumQty | ||
6 | AvgPx | ||
584 | MassStatusReqID | Mass status request identifier. Present if Order_Mass_Status_Request (35=AF) is used. | |
912 | LastRptRequested | N - There is at least one more execution report Y = This is last execution report |
Present if Order_Mass_Status_Request (35=AF) is used |
Tag | Name | Values | Comments |
---|---|---|---|
11 | ClOrdID | @ID | |
Parties | (component), size=1 | ||
1 | Account | ||
Instrument | (component) | ||
54 | Side | 1 - Buy 2 - Sell |
|
60 | TransactTime | ||
38 | OrderQty | ||
40 | OrdType | 1 - Market 2 - Limit |
|
44 | Price | ||
59 | TimeInForce | 0 - Day (or session) 1 - Good Till Cancel (GTC) 2 = Immediate or Cancel (IOC) 4 = Fill or Kill (FOK) 6 - Good Till Date (GTD) |
|
126 | ExpireTime | UTCTimestamp | for GTD orders |
18 | ExecInst | optional, ‘o’ from FIX5.0 (cancel on disconnect) | |
10001 | CancelOnDisconnect | optional Y N (default) |
Tag | Name | Values | Comments |
---|---|---|---|
37 | OrderID | If CxlRejReason=”Unknown order”, specifies “NONE” | |
11 | ClOrdID | ||
41 | OrigClOrdID | ||
39 | OrdStatus | If CxlRejReason = “Unknown Order”, specifies Rejected | |
434 | CxlRejResponseTo | ||
102 | CxlRejReason |
Tag | Name | Values | Comments |
---|---|---|---|
41 | OrigClOrdID | ||
11 | ClOrdID | ||
Instrument | (component) | ||
1 | Account | ||
54 | Side | ||
60 | TransactTime |
Behavior:
Tag | Name | Values | Comments |
---|---|---|---|
11 | ClOrdID | @ID | |
790 | OrdStatusReqID | @StatReqID | |
1 | Account | ||
Instrument | (component) | ||
54 | Side | 1 - Buy 2 - Sell |
Tag | Name | Values | Comments |
---|---|---|---|
584 | MassStatusReqID | ||
585 | MassStatusReqType | 7 - Status for all orders | |
1 | Account | (required) |
Tag | Name | Values | Comments |
---|---|---|---|
710 | PosReqID | ||
724 | PosReqType | 0 - Positions | |
263 | SubscriptionRequestType | 0 - Snapshot | |
453 | NoPartyIDs | size=0 | |
1 | Account | in account_ format | |
581 | AccountType | 8 = Joint Backoffice Account (JBO) | |
15 | Currency | currency code | |
715 | ClearingBusinessDate | YYYYMMDD | ignored, use now date |
60 | TransactTime | YYYYMMDD-HH:MM:SS | ignored, use now |
Tag | Name | Values | Comments |
---|---|---|---|
721 | PosMaintRptID | 0 | |
710 | PosReqID | ||
728 | PosReqResult | 0 - Valid request 1 - Invalid or unsupported request |
|
715 | ClearingBusinessDate | 19810711 | no info |
453 | NoPartyIDs | (repeating group) size=0 | |
1 | Account | ||
581 | AccountType | 8 = Joint Backoffice Account (JBO) | |
15 | Currency | ||
720 | SettlPrice | 0.0 | no info |
731 | SettlPriceType | 1 = Final | |
734 | PriorSettlPrice | 0.0 | no info |
702 | NoPositions | (repeating group) size=0 | |
753 | NoPosAmt | (repeating group) size=1 | |
707 | > PosAmtType | CASH | a |
708 | > PosAmt | account balance or 0 in case of error | |
58 | Text | optional “15(Currency)” “1(Account)” “710(PosReqID)” |
contains incorrect tag in case of wrong message |