Additional FIX Session Parameters

The features below can be set up as an additional parameter for your LP FIX connector(-s): 

1. Order Aggregation.

For the trade session only. If true,  then when multiple order fills arrive in TradeRequest message they are aggregated to 1 fix message and are sent to Liquidity Provider. If set to false, each order fill are sent to Liquidity Provider as a separate NewOrderSingle message.

  • Parameter name: AllowOrderAggregation
  • Type: Boolean
  • Value Example: True / False

2. Quote/Trade session working hours.

This parameter helps inform Your Bourse monitoring system when the FIX connection will be down or quote stream unavailable, etc. 

  • Parameter name: WorkingHours
  • Type: String
  • Value Example: Sun 20:00-24:00,Mon 00:00-24:00,Tue 00:00-24:00,Wed 00:00-24:00,Thu 00:00-24:00,Fri 00:00-22:00

3. Account mappings.

This parameter allows sending certain orders marked out in API data to different accounts on LP side. In the example below, orders with tags 100, 200, 300, 400 are sent to LP accounts ACC001, ACC002, ACC003, ACC004 respectively.

  • Parameter name: ApiData_0_Account
  • Type: String
  • Value Example: 100:ACC001,200:ACC003,300:ACC003,400:ACC004

4. Reset Sequence Number.

Through this parameter, you can configure FIX tag 141 (ResetSequenceNumber).

  • Parameter name: ResetSequenceNumber
  • Type: Boolean
  • Value Example: True / False

5. Other Client ID Tag. 

This parameter value specifies the FIX tag number. When sending new_order_single message the following information will be sent under the indicated tag number: <client_id> 

  • Parameter name: OtherClientIdTag
  • Type: Integer
  • Value Example: 1

6. Full Other Client ID Tag. 

This parameter value specifies the FIX tag number. When sending new_order_single message the following information will be sent under the indicated tag number : <sender_id>_<client_id> 

  • Parameter name: FullOtherClientIdTag
  • Type: Integer
  • Value Example: 109

7. B-Book liquidity multiplier.

This parameter allows to increase available liquidity streamed to end client (B-Book liquidity). It is configured on quote session level and requires FIX connector restart.

  • Parameter name: BBOOK_LIQUIDITY_MULTIPLIER_<market_depth_level>
  • Type: Integer
  • Value Example: BBOOK_LIQUIDITY_MULTIPLIER_<3>, where 3 is the order number of the order book layer

8. Symbol multiplier.

Change order quantity (tag 38) by specified value. Needed when there is a mismatch between broker and LP contract sizes. For quote session it divides the quantity by specified value. For trade session it multiplies the quantity by specified value.

  • Parameter name: <symbol>_MULTIPLIER
  • Type: Double
  • Value Example: 10
    When Liquidity Provider sends 100 000 EURUSD as TOB to Matching Engine, the MetaTrader will show 10 000 EURUSD as TOB. When MetaTarder sends 100 000 EURUSD to Matching Engine as trade volume, a Liquidity Provider  will receive 1 000 000 EURUSD.

9. Symbol Infinite Volume.

Disable liquidity check for specified symbols. Only for the quote session.

  • Parameter name: <symbol>_INFINITE_VOLUME
  • Type: Integer
  • Value Example: 1

    1 - Liquidity check is not done from the first till the last price layers
    2 - Liquidity check is not done for the last price layer only

10. Infinite Volume (default parameter)

Disable liquidity check for all the symbols. Only for the quote session.

  • Parameter name: INFINITE_VOLUME
  • Type: Integer
  • Value Example: 1

    1 - Liquidity check is not done from the first till the last price layers
    2 - Liquidity check is not done for the last price layer only

11. Quote Delivery Timeout

Specifies a number of milliseconds from quote SendingTime (tag 52) till ‘now’ considered as ‘normal’. The parameter is checked when the quote is received. If (‘now’ - SendingTime) is bigger than QUOTE_DELIVERY_TIMEOUT specified value, then the quote is treated as 'too old' and rejected with disconnection. Otherwise, the quote accepted. In ms.

  • Parameter name: QUOTE_DELIVERY_TIMEOUT
  • Type: Integer
  • Value Example: 1000

12. Quote Lifetime with Delete

Specifies a number of milliseconds from quotes last update time till ‘now’ considered is ‘normal’. The parameter is checked every second for every symbol for the Liquidity Provider. If (‘now’ - last update time) is bigger than QUOTE_LIVETIME_WITH_DELETE specified value, then all the quotes for this LP for the checked symbol are removed. In ms.
The accuracy of the check is about one second, hence only the value more than 1000 ms should be specified.

  • Parameter name: QUOTE_LIVETIME_WITH_DELETE
  • Type: Integer
  • Value Example: 60000

13. Test Request Interval

Specifies an interval in seconds of sending TestRequest message by session. The parameter is checked every second. If (‘now’ - last TestRequest was sent time) is bigger than TEST_REQUEST_INTERVAL specified value, and this value is > 0, then TestRequest is immediately sent. In seconds.
If not specified or 0, no TestRequest message is sent. 

  • Parameter name: TEST_REQUEST_INTERVAL
  • Type: Integer
  • Value Example: 15

14. Position Data Reporting.

This parameter enables position data reporting via Data Collector every 1 hour. Needs Margin Monitoring to be enabled.

  • Parameter name: EnableLiquidityProviderPositionReporting
  • Type: Boolean
  • Value Example: True / False

15. Splitting trade to Liquidity Provider multiple accounts

With this functionality it is possible to split trade to multiple trades (at the same liquidity provider) and setting different account tag values to those trades.

  • Parameter name: TradeSplitConfiguration
  • Type: String
  • Value Example: 1001,125,44444:50=ABC,50=DCV|455:60=ABC,40=DCV
    In the example above, all trades from MT4/MT5 accounts 1001,124, and 44444 will be split between two LP accounts ABC and DCV in proportion 50% to 50%. And all trades from MT4/MT5 account 455 will be split between two LP accounts ABC and DCV in proportion 50% to 50%.