Page tree
Skip to end of metadata
Go to start of metadata
Icon

Starting from version 51, OrderStatusRequest no longer sends a Business Message Reject if the order is not found or the order does not belong to the account. Instead of a Business Message Reject, an Execution Report is sent. For more information, see Order Reports > Order Status Request on this page.

Icon

Starting from version 1.2.52 OrderMassStatusRequest sends only active orders.

Configuration

If processing of reports via FIX 4.4 in OMS is necessary you need to do the following changes:

  1. You need MessageAcceptor Service. Deploy it.
  2. There is a file 'acceptor.ini' in MessageAcceptor. There you should change values of such properties to turn on support FIX 4.4:
    1. DataDictionary=FIX44.xml in both sections [Default] and [Session]
    2. BeginString=FIX.4.4 in [Session] section
  3. You need to add FIX44.xml (located here "~\Branches\dev\src\Etna.Trading\FixDictionaries\FIX44.xml") to MessageAcceptor Service folder near assemblies.
  4. You need Etna.Trading.Messages44.dll to be located in MessageAcceptor Service folder.
  5. In OMS app.config add <section name="reportsAcceptorConfig" type="Etna.Trading.Oms.Execution.MessageAcceptorConfigurationSection, Etna.Trading.Oms"/> inside <sectionGroup name="components" ...></sectionGroup> section.
  6. And include <reportsAcceptorConfig configSource="config\Oms\Oms.ReportsAcceptor.config" />  inside <components>...</components>.
  7. There is a line <messageSender id="reportsAcceptor" endpoint="reportsSenderClient" asyncMessageDelivery="true"> in "~config\Oms\Oms.ReportsAcceptor.config". We need the value of endpoint attribute. Here the value is "reportsSenderClient", so add <endpoint name="reportsSenderClient" address="net.tcp://{{messageAcceptorServiceIpAddress}}:8013" binding="netTcpBinding" bindingConfiguration="netTcpBinding_IMessageSender" contract="Etna.Trading.IMessageSender" /> inside <client></client> in OMS app.config.
  8. And make sure you have the same port of MessageAcceptor Service in it's config and port in endpoint "reportsSenderClient".

Optional settings

For environments where options start with @ symbol (non OSI format) is implemented OMS_MG_C2_UpdateCommercialAt setting. If you need to remove @ from option symbols you should set OMS_MG_C2_UpdateCommercialAt=True in Setting table using System Settings tab in BackOffice or using insert this setting to db.

Description

User Reports

OMS recives Collateral Inquiry (link) message. It includes:

  • MsgType (35) (required) = BB
  • Account (1) (required) - Clearing Id
  • CollInquiryID (909) (required) - Request id

OMS responds with Collateral Inquiry Ack (link) message:

  • CollInquiryID (909) - request id

  • CollInquiryStatus (945) - 4 (Rejected) if account not found by clearing id; 0 (Accepted) if found

If account was found, then OMS sends Collateral Report (link) message:

  • Account (1) - Clearing Id

  • TotalNetValue (900) - Balance.equityTotal

  • CollRptID (908) - uniq report id
  • CollInquiryID (909) - request id

  • CollStatus (910) - 3 (Accepted)

Orders Reports

OMS recives:

  1. Order Status Request (link) message
    • MsgType (35) (required) = H
    • Account (1) (required)

    • DeliverToCompID (128) (required for C2 clients)

    • ClOrdID (11) (required) - Order.ClientId

    • Side (54) (required)
    • Symbol (55) (required)
    • OrdStatusReqID (790) (required)
    • SecurityDesc (107)

    • SecurityExchange (207)

    • SecurityType (167)


When order is not found or order doesn't belong to Account (1) OMS responds with Execution Report with:

  • Account (1)
  • ClOrdId (11)
  • OrdRejReason (103) = 5 (Unknown_Order)
  • OrdStatusReqID (790)
  • ExecType (150) = l (Order_Status)
  • Text (58) = Order not found. ClOrdId: {ClOrdId}
  1. Order Mass Status Request (link) message

    • MsgType (35) (required) = AF

    • Account (1) (required)

    • DeliverToCompID (128) (required for C2 clients)

    • MassStatusReqID (584) (required)
    • MassStatusReqType (585) (required) = (only these supported):

      • 1 - Status for orders for a security - Symbol (55) or SecurityType (167) goes required

      • 2 - Status for orders for an Underlying security - UnderlyingSymbol (311) or UnderlyingSecurityType (310) goes required
      • 7 - Status for all orders
    • Side (54)

    • Symbol (55)

    • SecurityDesc (107)

    • SecurityType (167)
    • SecurityExchange (207)

    • UnderlyingSecurityDesc (307)
    • UnderlyingSecurityExchange (308)

    • UnderlyingSecurityType (310)

    • UnderlyingSymbol (311)

OMS responds with Execution Report (link) on each active(for OrderMassStatusRequest) order, that matched with criteria.

Position Reports

OMS recives Request For Positions (link) message:

  • MsgType (35) (required) = AN

  • Account (1) (required)

  • TransactTime (60)(requried) = CurrentDate
  • AccountType (581) (required) = 1 - Account is carried on customer Side of Books
  • PosReqID (710) (requried)

  • ClearingBusinessDate (715) (required) = date in past

  • PosReqType (724) (required) = 0 - Positions (only one supported)
  • SubscriptionRequestType (263) (optional):
    • 0 - Snapshot

    • 1 - Snapshot + Updates (Subscribe)
    • 2 - Disable previous Snapshot + Update Request (Unsubscribe)
  • Symbol (55)

  • SecurityDesc (107)
  • SecurityType (167)

  • SecurityExchange (207)
  • NoUnderlyings <FIELDGROUP> (711):
    • UnderlyingSymbol (311)
    • UnderlyingSecurityType (310)
    • UnderlyingSecurityExchange (308)

    • UnderlyingSecurityDesc (307)

OMS responds with Request For Position Ack (link) message:

  • Account (1)
  • AccountType (581)
  • PosReqID (710)
  • PosMaintRptID (721)
  • TotalNumPosReports (727)
  • PosReqResult (728)
  • PosReqStatus (729)

Than OMS sends Position Report (link) message on each found position, that matched with criteria.

  • Account (1)

  • Symbol (55)

  • SecurityDesc (107)

  • SecurityType (167)

  • SecurityExchange (207)

  • SubscriptionRequestType = Snapshot (263)
  • UnderlyingSecurityDesc (307)

  • UnderlyingSecurityExchange (308)

  • UnderlyingSecurityType (310)

  • UnderlyingSymbol (311)

  • AccountType (581)

  • NoPositions <FIELDGROUP> (702):

    • PosType (703) = ALC (Allocation Trade Qty)

    • LongQty (704)

    • ShortQty (705)

    • PosQtyStatus (706) = 1 (Accepted)

  • PosReqID (710)

  • ClearingBusinessDate (715)

  • PosMaintRptID (721)

  • PosReqType = Positions (724)
  • TotalNumPosReports (727)
  • PosReqResult (728)

 

OMS_MG_C2_UpdateCommercialAt
  • No labels